J2EE 课程设计实训项目——《蓝梦网上商城》——系统UML状态图的设计
J2EE 课程设计实训项目——《蓝梦网上商城》——在系统表示层页面中应用OSCache缓存技术
J2EE 课程设计实训项目——《蓝梦网上商城》——在系统表示层页面中应用OSCache缓存技术1.1.1应用OSCache缓存框架改善系统运行性能(实现页面中的动态内容的缓存)1、添加OSCache的系统包文件到本项目中(1)主要的jar包文件:oscache-2.3.2.jar和commons-logging.jar文件(已经在前面加入过,则不再需要)(2)最后为下面的结果状态2、将oscache.properties、oscache.tld放入WEB-INF\class目录中(1)导入这两个文件(2)最后为下面的状态3、修改web.xml文件以增加下面的内容,增加对OSCache提供的taglib的支持(1)对于JSP1.2的Web应用系统为下面的状态<taglib><taglib-uri>oscache</taglib-uri><taglib-location>/WEB-INF/classes/oscache.tld</taglib-location> </taglib>(2)对JSP2.0的Web应用,则不再需要了上面的设置注意:可以在IDE中通过帮助来获得我们的JSP版本。
4、在需要缓存的页面中添加下面的内容(1)对于JSP1.2的Web应用系统为下面的状态<%@ taglib uri="oscache" prefix="cache" %>(2)对于JSP2.0的Web应用系统为下面的状态<%@ taglib uri="/WEB-INF/classes/oscache.tld" prefix="cache" %> (3)根据应用的要求添加对应的标签<cache:cache key="allTitleInfoList" refresh="false" scope="session"> //页面中待缓存的动态数据</cache:cache>5、测试上面的缓存的页面效果。
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统需求分析与建模实例
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统需求分析与建模实例1.1.1网上购物系统业务流程分析1、可行性研究的前提由于近几年互联网形态下的外部大的市场环境日趋成熟,从而对传统产业的影响不可忽视。
目前我国的大中城市,电脑和网络的应用已经非常普遍,互联网的迅速崛起便催生出网上购物,这一新兴购物方式。
随着经济的发展和人们思想意识的逐渐开放,更多的人加入到买电脑上网的行列。
网上购物人群迅速扩大,各种网络设施的完善,经济的持续发展及人们生活水平的提高,网上购物已逐渐成为人们习惯性的行为。
其次,网络正在冲击着人们的传统消费习惯和思维、生活方式。
越来越多的人们逐渐习惯于到网上查找信息,当他产生某种需求到网上查找相关产品和企业信息时就成了潜在的客户,当信息能满足他的需要的时候,便成为了该应用系统的客户。
2、网上购物业务流程概述顾客首先访问网上购物网站,浏览网页。
接着如果是新用户就登录注册界面,输入相关信息进行注册,立刻成为用户。
老用户就直接登录界面。
注册成为会员后,就能够享受到商场提供的各种方便的服务,可以利用商品查询的功能,快捷地查询到自己需要购买的商品,为顾客实现不出门也能方便快捷地了解到自己需要购买的商品的价格,生产日期。
找到自己需要购买的商品以后,就可以进行购物了。
在需要购买的商品点击购买按扭,进入订货界面,进行订货。
客户可以查询自己的订单,看看是否交易成功。
成功后就进行付款,最后可以选择继续购买还是注销退出,实现网上购物整个活动过程。
3、用户购物子系统用例图1.1.2网上购物系统业务功能分析《网上购物系统》的建构主要分为两部分:前台客户功能和后台管理功能。
整个系统将实现以下功能。
1、前台客户功能1)用户注册2)用户登录3)用户信息修改4)商品查询5)购物车6)订单查询7)用户留言8)结账2、后台管理功能1)商品维护2)查看用户3)查看留言3、前台业务功能分析4、后台业务功能分析1.1.3系统各个用例的事件流建模1、用户模块——用户登录子功能模块(1)功能解释后台管理登录时,要求检验用户名、密码、校验码。
J2EE 课程设计实训项目——《蓝梦网上商城》——系统详细设计说明书(第3部分)
J2EE 课程设计实训项目《蓝梦网上商城》系统详细设计说明书编写人(签字):日期:年月日用户方项目代表(签字):日期:年月日开发方项目代表(签字):日期:年月日质量保证代表(签字):日期:年月日1目录第1章引言···············································································错误!未定义书签。
1.1编写目的 ········································································错误!未定义书签。
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统概要设计说明书
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统概要设计说明书1.1.1任务概述1、目标在这个飞速发展的时代,高转速生活让人们倍感学习、工作的压力,越来越多的人不愿甚至不能把时间和精力花费在逛街购物上,为了迎合大众的需求,“网上购物”应运而生。
“网上购物”,这个逐渐流行的购物方式已经为越来越多的人所接受。
不论是腰缠万贯的大富翁、时尚的白领丽人还是普通的工薪阶层,都可以通过网络购买心怡的商品。
网上购物就是把传统的商店直接“搬”回家,利用Internet直接购买自己需要的商品或者享受自己需要的服务。
专业地讲,它是交易双方从洽谈、签约以及贷款的支付、交货通知等整个交易过程通过Internet、web和购物界面技术化的B to C(Busines to Consumer 企业到个人)模式一并完成的一种新型购物方式,是电子商务的一个重要组成部分。
而我们所设计并构建的,就是一个这样的虚拟商城。
它拥有友好的界面,可以让顾客通过简单的提示方便自如地操作整个购物过程。
注册后,通过简单的点击,便可浏览、订购顾客所需要的商品,还可以选择不同的方式邮寄、付款。
另外,我们还设有人工答疑解惑系统,顾客如果存在自己无法解决的问题,便可直接与在线的工作人员沟通,在工作人员的帮助下更好的完成购物过程。
此外,用户方需要具备的条件包括:一台运行良好的电脑,其操作系统为Windows及以上版本、Linux,该电脑安装有网络浏览器,接有Internet网络。
2、运行环境(1)操作系统操作系统为Windows及以上版本、Linux。
(2)可以在任意Internet网页浏览器上运行。
(3)无测试支持软件。
3、需求概述网上购物系统是一个大型服装专卖购物网站,采取邮局汇款、邮寄物品或者送货上门、货到付款(仅限北京、天津、上海)两种购买方式。
用户在线查询各种商品,选择欲购物品放入购物车,待确认购物车后即发送购买清单。
交易从用户查看货品信息、选择物品、发出订单以及商城交货通知等整个交易过程通过Internet、web和购物界面技术化的B to C(busines to consumer企业到个人)模式一并完成,实现电子商务。
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统需求分析与建模实例
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统需求分析与建模实例1.1.1网上购物系统业务流程分析1、可行性研究的前提由于近几年互联网形态下的外部大的市场环境日趋成熟,从而对传统产业的影响不可忽视。
目前我国的大中城市,电脑和网络的应用已经非常普遍,互联网的迅速崛起便催生出网上购物,这一新兴购物方式。
随着经济的发展和人们思想意识的逐渐开放,更多的人加入到买电脑上网的行列。
网上购物人群迅速扩大,各种网络设施的完善,经济的持续发展及人们生活水平的提高,网上购物已逐渐成为人们习惯性的行为。
其次,网络正在冲击着人们的传统消费习惯和思维、生活方式。
越来越多的人们逐渐习惯于到网上查找信息,当他产生某种需求到网上查找相关产品和企业信息时就成了潜在的客户,当信息能满足他的需要的时候,便成为了该应用系统的客户。
2、网上购物业务流程概述顾客首先访问网上购物网站,浏览网页。
接着如果是新用户就登录注册界面,输入相关信息进行注册,立刻成为用户。
老用户就直接登录界面。
注册成为会员后,就能够享受到商场提供的各种方便的服务,可以利用商品查询的功能,快捷地查询到自己需要购买的商品,为顾客实现不出门也能方便快捷地了解到自己需要购买的商品的价格,生产日期。
找到自己需要购买的商品以后,就可以进行购物了。
在需要购买的商品点击购买按扭,进入订货界面,进行订货。
客户可以查询自己的订单,看看是否交易成功。
成功后就进行付款,最后可以选择继续购买还是注销退出,实现网上购物整个活动过程。
3、用户购物子系统用例图1.1.2网上购物系统业务功能分析《网上购物系统》的建构主要分为两部分:前台客户功能和后台管理功能。
整个系统将实现以下功能。
1、前台客户功能1)用户注册2)用户登录3)用户信息修改4)商品查询5)购物车6)订单查询7)用户留言8)结账2、后台管理功能1)商品维护2)查看用户3)查看留言3、前台业务功能分析4、后台业务功能分析1.1.3系统各个用例的事件流建模1、用户模块——用户登录子功能模块(1)功能解释后台管理登录时,要求检验用户名、密码、校验码。
J2EE 课程设计实训项目——《蓝梦网上商城》——实现横跨多个Hibernate SessionFacotry的分布式事务
J2EE 课程设计实训项目——《蓝梦网上商城》——实现横跨多个Hibernate SessionFacotry的分布式事务1.1.1实现横跨多个Hibernate SessionFacotry的分布式事务1、实现的原理只需简单地将JtaTransactionManager 同多个LocalSessionFactoryBean 的定义结合起来作为事务策略。
然后在我们的每一个DAO中通过bean属性得到各自的SessionFactory 引用。
2、配置示例<beans><bean id="sqlServerDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/sqlServerDataSource"/></bean><bean id="oracleDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/oracleDataSource"/></bean><bean id="sqlServerSessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="sqlServerDataSource"/><property name="mappingResources"><list><value>product.hbm.xml</value></list></property><property name="hibernateProperties"><props><propkey="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.show_sql">true</prop></props></property></bean><bean id="oracleSessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="oracleDataSource "/><property name="mappingResources"><list><value>inventory.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop><prop key="hibernate.show_sql">true</prop></props></property></bean><bean id="myTxManager"class="org.springframework.transaction.jta.JtaTransactionManager"/><bean id="myProductDao" class="com.px1987.product.ProductDaoImpl"><property name="sessionFactory" ref="sqlServerSessionFactory"/></bean><bean id="myInventoryDao" class=" com.px1987.product.InventoryDaoImpl"><property name="sessionFactory" ref="oracleSessionFactory"/></bean><bean id="myProductService"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="myTxManager"/><property name="target"><bean class=" com.px1987.product.ProductServiceImpl"><property name="productDao" ref="myProductDao"/><property name="inventoryDao" ref="myInventoryDao"/></bean></property><property name="transactionAttributes"><props><prop key="increasePrice*">PROPAGATION_REQUIRED</prop><prop key="someOtherBusinessMethod">PROPAGATION_REQUIRES_NEW</prop> <prop key="*">PROPAGATION_SUPPORTS,readOnly</prop></props></property></bean></beans>1.1.2对应用Spring框架的声明式事务组件进行单元测试1、对上面的重构的结果进行测试(1)执行业务层中的测试套件类(2)将出现下面的结果(3)表明整合是成功的。
《J2EE系统架构和程序设计》课程设计实训项目——网上购物系统设计和实现
目录《J2EE系统架构和程序设计》课程设计实训项目——网上购物系统设计和实现 (2)1.1.1课程设计实训项目简介——项目背景及项目中所应用的相关平台及技术.. 21.1.2指导教师提出的实训项目的需求 (3)1.1.3课程设计实训项目系统需求分析 (5)1.1.4系统概要设计——系统概要设计中的系统架构设计 (14)1.1.5系统概要设计——系统数据库逻辑结构设计 (16)1.1.6系统概要设计——基于接口联系的包图/组件设计 (21)1.1.7系统详细设计——程序包及功能类结构 (22)1.1.8系统详细设计——系统业务流程设计及功能模块设计 (24)1.1.9系统实现——系统UI界面设计及实现 (31)1.1.10系统实现——系统核心功能程序编程实现 (55)1.1.11课程实训项目开发的心得体会 (55)《J2EE系统架构和程序设计》课程设计实训项目——网上购物系统设计和实现1.1.1课程设计实训项目简介——项目背景及项目中所应用的相关平台及技术1、课程设计实训项目简介这是本学期《J2EE系统架构和程序设计》课程设计实训项目,主要的功能实现是一个网上购物系统,包括前端消费者的功能以及后台管理员的功能。
之所以希望开发本系统的主要原因是现在人们越来越喜欢上网购物,常年来,买不到保鲜的水果一直困扰着人们。
基于上述缘由,在本次课程设计项目实训中制作了一个小的水果网站,以便人们使用。
它所带来是效果是节约同学的时间,同时也可以满足用户买卖各种商品的需要。
在项目中主要应用了J2EE Web组件技术JSP、Servlet、JavaBean和Ajax等技术,并实现了实时校验,无刷新的查询功能,以及JDom和Dom等XML解析的编程应用等。
由于这学期选学了Oracle数据库,而且SQL Server,Access,MySql都已经用过了,所以这次在本课程设计实训项目中我选择了Oracle数据库系统。
虽然我的这个小项目用Oracle 数据库系统显得有些不是很合适,不过就当是学习一下,所以选择了Oracle数据库系统。
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统功能模块设计及系统数据库表结构设计实例
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统详细设计中的功能模块设计及系统数据库表结构设计实例1.1.1系统用户注册及登录模块1、本模块主要包括如下的系统功能(1)用户注册(2)用户登录(3)用户信息修改2、本模块的功能设计属性及接口参数功能public UserBean Connectiong conUserClass user 用户注册信息添加到数据库1.1.2商品查询模块1、本模块主要包括如下的系统功能(1)显示最新商品信息(2)根据关键词查询(3)根据分类查询(4)根据鲜花类型查询(5)根据价格查询(6)根据厂商查询2、本模块的功能设计属性及接口参数功能public GoodsBean()public int getAllpage()public int getAllpagesort()public int getAllpageByprice() public int getAllpageByMaterial() public collectiong getAllgoods() public collection getGoodsBySortpublic collection getGoodsByPricepublic collection getGoodsByMaterialpublic collection getGoodsByID public collection getGoodsByName public collection getGoodsByPrice public collection getGoodsByLower Selectpublic collection getGoodsByHighest Selectpublic boid addGoodspublic boid deleteGoodspublic boid modifyGoods String sString sString sInt sString sInt ageCountString sInt ageCountString sInt ageCountString sString sString sString mString nString mString n建立数据库连接获得全部查询商品信息根据商品类型获得商品信息根据商品价格活的商品信息根据商品花材获得商品信息分页显示所获得所有商品信息分页显示根据商品类型获得商品信息分页显示根据商品价格活的商品信息分页显示根据商品花材获得商品信息根据商品ID获得商品信息根据商品名称获得商品信息根据商品销售价格获得商品信息根据商品名称和类型获得商品信息根据商品名称类型价格获得商品信息添加商品信息删除商品信息修改商品信息1.1.3购物车模块1、本模块主要包括如下的系统功能(1)向购物车中添加商品(2)从购物车中删除商品(3)查看购物车(4)生成订单(5)查看历史订单(6)查看订单明细2、本模块的功能设计属性及接口参数功能1.1.4系统管理员对系统信息管理模块1、本模块主要包括如下的系统功能(1)商品管理包括商品的添加、删除、修改(2)订单管理包括订单的添加、删除、修改(3)用户管理包括添加、删除、修改(4)厂商管理包括厂商的添加、删除、修改1.1.5系统安全管理模块1、本模块主要包括如下的系统功能(1)记录用户登录时间(2)记录用户登录IP(3)记录用户离开时间2、本模块的功能设计属性及接口参数功能1.1.6用户留言模块1、本模块主要包括如下的系统功能(1)用户添加留言(2)显示所有用户留言2、本模块的功能设计属性及接口参数功能1.1.7系统数据库表结构设计1、系统用户Customer数据库表2、产品信息Product数据库表3、类别Main_type数据库表4、系统管理员信息Admin数据库表5、订单信息Orders数据库表6、订单详细信息OrderDetail数据库表7、支付信息Payment数据库表1.1.8系统信息安全设计本系统将从网络通讯、操作系统、数据库管理系统、应用系统、计算机病毒的防治等五个方面为系统提供安全保障。
J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的用户信息业务处理功能组件
J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的用户信息业务处理功能组件1.1.1实现系统项目中的用户信息业务处理功能组件1、添加与Spring相关的系统包(1)在Web-INF/lib目录下添加下面的各个文件spring.jar、aopalliance.jar、cglib-nodep-2.1_3.jar、spring-mock.jar、quartz-1.6.0.jar(定时器)、mail.jar和activation.jar(JMail相关的文件)而commons-logging.jar、log4j-1.2.14.jar已经在前面的Struts中添加过。
(2)实现过程如下2、用户信息管理的接口(1)接口名称为UserInfoManageInterface,包名称为er(2)设计该接口中的各个成员package er;import com.px1987.webshop.business.vobject.*;import com.px1987.webshop.service.*;import java.util.*;public interface UserInfoManageInterface{public boolean doUserLogin(UserInfoVO oneUserInfoVO) throws ServiceException;public boolean doUserRegister(UserInfoVO oneUserInfoVO) throws ServiceException;public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO) throws ServiceException;public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws ServiceException;public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws ServiceException;public boolean doCheckUserNameExist(String userName,Integer type_User_Admin) throws ServiceException;public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws ServiceException;public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws ServiceException;public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws ServiceException;public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws ServiceException;public UserInfoVO doGetOneAdminUserInfo(String adminUserID) throws ServiceException;public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws ServiceException;public UserInfoBaseVO doGetOneUserInfo(String userName,String userPassWord, Integer type_User_Admin) throws ServiceException;public ArrayList doGetAllUserNameInfo(String userName) throws ServiceException;public boolean doDeleteOneRegisterUserInfo(String registerUserID) throws ServiceException;public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws ServiceException;public boolean doDeleteOneAdminUserInfo(String adminUserID) throws ServiceException;public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws ServiceException;public ArrayList doGetAllRegisterUserInfo() throws ServiceException;public ArrayList doGetSomeRegisterUserInfo(Map registerUserInfos) throws ServiceException;public ArrayList doGetAllAdminUserInfo() throws ServiceException;public ArrayList doGetSomeAdminUserInfo(Map adminUserInfos) throws ServiceException;}3、用户信息管理的接口UserInfoManageInterface的实现类(1)用户信息管理的接口UserInfoManageInterface的实现类------类名称为UserInfoManageImple,包名称为er(2)将产生出下面的状态(3)并在其中提供一个“UserInfoDAOServiceInterface userInfoDAOServiceImple=null;”的对象声明,同时为它提供set方法。
J2EE 课程设计实训项目——《蓝梦网上商城》——对系统持久层中的DAO组件进行单元测试(第2部分)
J2EE 课程设计实训项目——《蓝梦网上商城》——对系统持久层中的DAO组件进行单元测试(第2/3部分)8、添加对DAO组件GoodsInfoCRUDImple类进行测试的TestCase类(1)新增一个测试用例,类名称为TestGoodsInfoCRUDImple,包名称为com.px1987.webshop.testdao,基类为junit.framework.TestCase,被测试的类选择为com.px1987.webshop.dao.crud.GoodsInfoCRUDImple(2)进入到下一步,并选择我们需要进行测试的方法(3)将产生出下面的结果(4)编程该测试用例类中的各个测试方法package com.px1987.webshop.testdao; import junit.framework.*;import com.px1987.webshop.dao.crud.*;import com.px1987.webshop.dao.exception.DAOException;import java.util.*;import com.px1987.webshop.dao.pobject.*;public class TestGoodsInfoCRUDImple extends TestCase{private GoodsInfoCRUDInterface goodsInfoCRUDImple = null;public TestGoodsInfoCRUDImple(String arg0){super(arg0);}protected void setUp() throws Exception{super.setUp();goodsInfoCRUDImple=new GoodsInfoCRUDImple();}protected void tearDown() throws Exception{goodsInfoCRUDImple=null;super.tearDown();}public void testInsertOneGoodsInfo() throws DAOException{GoodsInfoPO oneGoodsInfoPO=new GoodsInfoPO();//不需要设置该值,可以由Hibernate自动来实现添加// oneGoodsInfoPO.setId(new Integer(1));oneGoodsInfoPO.setGoodsName("海尔电冰箱");oneGoodsInfoPO.setGoodsKind(1);oneGoodsInfoPO.setGoodsPrice(1500.50f);oneGoodsInfoPO.setOffPrice(0.8f);oneGoodsInfoPO.setHitNumber(1000);oneGoodsInfoPO.setBuyNumber(1200);oneGoodsInfoPO.setImageFile("../webResource/goodsImage/goods.jpg");oneGoodsInfoPO.setGoodsDescriptor("海尔新一代的电冰箱。
《J2EE系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统测试计划说明书
《J2EE系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统测试计划说明书杨教授大学堂精心创作的优秀程序员职业提升必读系列资料《J2EE系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统测试计划说明书1.1.1 引言1、编写目的本测试计划书的目的是为了描述蓝梦网上商店系统项目所要完成的测试,包括测试背景、测试目的、风险分析、所需资源、任务安排和进度等。
本计划的读者对象为项目经理,软件测试工程师以及软件测试人员。
2、参考资料(1)J2EE项目实训Hibernate框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(2)J2EE项目实训Spring框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(3)J2EE项目实训UML及设计模式(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(4)J2EE项目实训Struts框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年10月(5)《JSP与数据库连接》刘瑞挺,高等教育出版社(6)《数据库原理与方法》郑若忠王鸿武,湖南科学技术出版社(7)《软件需求》(美) Karl E.Wiegers 著,刘伟琴刘洪涛译1.1.2 任务概述1、测试目标本测试计划的目标分为三个阶段,第一阶段测试本系统的各种功能的实现效果,分为管理员功能和用户购物功能两大部分;第二阶段测试本系统在各种平台下的兼容性;第三阶段测试系统的安全性和可扩展性。
本计划说明书主要针对第一阶段。
2、测试运行环境杨教授大学堂,版权所有,盗版必究。
1/9页杨教授大学堂精心创作的优秀程序员职业提升必读系列资料(1)硬件环境目前市场上出售的一般个人或商务电脑均可使用,机器配置要求如下:1)CPU: P3同类档次或更高档次以上。
2)内存: 256M以上内存。
J2EE 课程设计实训项目——《蓝梦网上商城》——实现Struts框架与Spring框架相互整合
J2EE 课程设计实训项目——《蓝梦网上商城》——实现Struts框架与Spring框架相互整合1.1.1实现Struts框架与Spring框架相互整合1、在src的目录下添加一个allAction IoC.xml文件(1)在该文件中主要放Struts中的各个Action类的IoC的Bean定义。
(2)下面以erInfoManageAction类为例加以说明<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "/dtd/spring-beans-2.0.dtd"><beans><bean name="/userInfoManage" scope="prototype"class="erInfoManageAction"> <property name="userInfoManageImple"><!-- 没有应用AOP Throws Advice或者应用了Spring中的“自动代理”功能时(本项目应用了自动代理)<ref bean="userInfoManageImple" />--><!-- 下面是应用ProxyFactoryBean来实现AOP Throws Advice时<ref bean="userInfoManageImpleProxy" />--><ref bean="userInfoManageImple" /></property></bean></beans>2、修改struts-config.xml配置文件以增加ContextLoaderPlugIn 的plugin的设置(1)plugin的设置<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation"value="/WEB-INF/classes/webShopUserInfoIoC.xml,/WEB-INF/classes/allAction IoC.xml"/></plug-in>利用该plugin实现对我们Spring的各个IoC的配置文件进行定位。
《J2EE系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统概要设计说明书
《J2EE系统架构和程序设计》课程设计实训项⽬——蓝梦⽹上商店系统概要设计说明书《J2EE系统架构和程序设计》课程设计实训项⽬——蓝梦⽹上商店系统概要设计说明书1.1.1编写⽬的将软件系统需求转换为未来系统的设计,逐步开发强壮的系统构架,并使设计适合于实施环境,为提⾼性能⽽进⾏设计和为程序开发步骤配置提供指导。
因此,本设计说明书作为《蓝梦⽹上商店系统》项⽬开发的依据和规范,并作为开发任务及⽬标依据和规范系统开发操作,《蓝梦⽹上商店系统》⽹站的开发内容及达到的各项功能及性能指标以此设计说明书为准。
本设计⽂档描述了整个系统的架构以及业务逻辑实现时应遵循的步骤,⽂档的预期读者主要包括:项⽬管理⼈员、系统设计⼈员与程序编写⼈员、测试⼈员、⽤户⼿册编写⼈员、客户、系统维护⼈员和项⽬评审⼈员等。
1.1.2系统总体设计1、系统主要的特⾊(1)系统基于J2EE架构设计将界⾯表⽰、业务务逻辑和数据层相对分离,使系统结构更加合理;采⽤成熟的J2EE 架构,使系统具有较好的维护性。
(2)采⽤中间件的负载平衡、动态伸缩等功能为关键业务建⽴了最佳的运⾏环境,为应⽤提供了充分的扩展余地。
(3)以Browser(浏览器)为核⼼的客户端程序实现了真正意义上的“零维护”,从⽽使业务软件的更新、发布和维护更为容易。
(4)系统的外部接⼝采⽤XML数据交换格式降低系统间偶合度,确保数据交换与具体应⽤平台⽆关。
(5)系统采⽤个性化的权限管理和界⾯显⽰具体的⽤户只看到整个系统的⼀部分,即只有⽤户具有操作权限的模块,对该⽤户才是可见的,不具有操作权限的部分是不可见,因此,每个⽤户只看到整个界⾯树的⼀个⼦集,系统菜单动态⽣成。
2、系统运⾏环境(1)软件环境(2)硬件环境(3)开发环境1)服务器软件环境2)服务器硬件环境3)开发机器软件环境4)开发机器硬件环境3、系统功能层次结构4、系统中所应⽤的关键技术与算法(1)本系统采⽤JSP+JavaBeans实现JSP 即Java Server Pages,它是Serverlet的直接扩展,JSP框架的⽬标是将应⽤逻辑同表⽰分离,它旨在允许⾮JA V A开发⼈员⽤下列⽅式设计JSP 页⾯:1)HTML标记。
J2EE 课程设计实训项目——《蓝梦网上商城》——构造出基于Hibernate框架的数据库连接程序类
J2EE 课程设计实训项目——《蓝梦网上商城》——构造出基于Hibernate 框架的数据库连接程序类1.1.1构造出课程设计实训项目中的数据库连接程序类1、本示例中所需要的数据库(1)数据库的类型选择为MS SQLServer2000(2)将项目中的数据库文件附加到MS SQLServer2000的系统中(3)确保项目中的数据库能够正常启动服务2、将Hibernate的库文件放到Web应用的/WEB-INF/lib目录中(1)下载Hibernate的系统并解压缩包然后将下面的各个*.lib库文件(总共10文件)在Eclipse中导入放到Web应用的/WEB-INF/lib目录中。
antlr-2.7.5H3.jar、cglib-2.1.2.jar、asm.jar、commons-collections-2.1.1.jar、commons-logging.jar(在Struts中已经包含有,可以不再需要它)、ehcache.jar hibernate3.jar、jta.jar、dom4j-1.6.1.jar和log4j-1.2.11.jar。
(2)最后为下面的状态3、添加JDTS的MS SQLServer 的JDBC驱动程序4、设计hibernate.cfg.xml文件(1)新建hibernate.cfg.xml文件(2)该文件的内容如下(本例进行采用JDTS的JDBC驱动程序)<?xml version='1.0' encoding='gb2312'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/HibernateConfiguration DTD//EN""/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property> <property name="connection.url">jdbc:jtds:sqlserver://127.0.0.1:1433/NetShopDB</property> <property name="ername">sa</property><property name="connection.password">1234</property><property name="show_sql">true</property><!-- 将Hibernate发送给数据库的sql 显示出来 --><property name="e_query_cache">true</property><property name = "hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> <property name=".hibernate.cache">debug</property><mapping resource="UserInfoPO.hbm.xml" /><mapping resource="AdminUserInfoPO.hbm.xml" /><mapping resource="GoodsInfoPO.hbm.xml" /><mapping resource="OrderInfoPO.hbm.xml" /></session-factory></hibernate-configuration>注意:在开发中为了简化采用了直接数据库连接的方式,在项目的最后进行集成时再改变为采用数据库连接池的方式。
J2EE项目实训UML及设计模式——第6章 系统详细设计中的活动和状态建模(第2部分)
第6章系统详细设计中的活动和状态建模(第2/2部分)1.1系统详细设计中的状态建模1.1.16.2.1 UML中的状态图1、状态机和状态(1)状态机它是展示状态与状态转换的图形表示,在UML中的状态机主要用于对具有事件驱动的特性的动态行为进行建模。
(2)状态机中的状态状态是状态机的重要组成部分,所有对象都具有状态,状态是对象执行了一系列活动的结果。
当某个事件发生后,对象的状态将发生变化。
2、UML中的状态图(State Diagram)(1)UML中的状态图状态图说明事物(类、也包括用例等)的状态、事件和它们之间的转换关系。
但一般用来描述一个特定对象的所有可能状态及其引起状态转移的事件,从而可以实现对单个的对象行为建模。
(2)主要的作用大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为,同时也显示了该对象实体如何根据当前所处的状态对不同的信息做出反应的。
(3)什么场合下应该采用状态图当对象的行为改变和状态有关时,应该创建出状态图。
因为通过状态图可以显示对象在其生命周期中依次经历的各种状态。
比如在一个BBS论坛的Web应用系统中的游客在浏览系统时,如果他在本系统中进行了注册,则表明他从游客的身份变成系统中的会员身份;再比如在一个网上商城系统中的用户购买了某件商品后,则表示他处于已购物的状态。
但如果要表示由系统内部生成的操作(而非外部事件)驱动的事件流,则使用活动图。
3、为什么要使用状态图(1)对象的动态特性是由事件所触发的一个完全静态的系统是不存在的,因为没有事件触发发生。
所有真正的实际系统自身都含有某些动态特性,并且这些动态特性是由内部或外部发生的事件所触发而产生的。
比如在某个Web系统中用户在登陆表单中输入与身份有关的各种信息项目并击【提交】按钮后,将触发表单的提交行为事件。
而一旦用户登陆成功,则意味着其身份将要发生变化——从游客的状态转变为注册用户的状态。
哪如何对这样的与状态转换有关的各种行为进行建模呢?(2)为单个对象的行为进行建模使用前面所介绍的交互图可以对共同工作的对象群体(共同协作工作的一批对象)的行为进行建模;但使用状态机或者UML中的状态图,则可以对单个的对象行为建模。
J2EE 课程设计实训项目——《蓝梦网上商城》——映射基于Hibernate框架的各个PO实体组件程序类
J2EE 课程设计实训项目——《蓝梦网上商城》——映射基于Hibernate 框架的各个PO实体组件程序类1.1.1映射DAO层中的各个PO类1、映射UserInfoPO类与UserInfo数据库表中的各个字段(1)在Eclipse中增加一个UserInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mappingPUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="erInfoPO" table="UserInfo"> <cache usage="read-write"/><id name="id" type="ng.String" ><column name="userID" not-null="true" /><generator class="uuid.hex"></generator></id><property name="userName" /><property name="userPassWord" /><property name="userType" /><property name="aliaoName" /><property name="passWordAsk" /><property name="userImage" /><property name="registerTime" /><property name="passWordAnswer" /><property name="userMail" /><property name="userSex" /><property name="userBirthDay" /><property name="userComeFrom" /><property name="userResume" /><property name="userSign" /><property name="emailVisible" /><property name="acceptAdvise" /><map name="contactMethod" table="UserContactInfo"><cache usage="read-write" region="contactMethod"/><key column="userID" not-null="true"/><index column="contactKey" type="string"/><element type="string" column="contactText" /></map><set name="allOrderInfo" table="OrderInfo" inverse="true"> <key column="userID"/><one-to-many class="com.px1987.webshop.dao.pobject.OrderInfoPO"/> </set></class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对UserInfoPO.hbm.xml的引用定义<mapping resource="UserInfoPO.hbm.xml"/>2、映射前面的AdminUserInfoPO数据库表中的各个字段(1)增加一个AdminUserInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mappingPUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.px1987.webshop.dao.pobject.AdminUserInfoPO" table="AdminUserInfo"><cache usage="read-write"/><id name="id" type="ng.String" ><column name="userID" not-null="true" /><generator class="uuid.hex"></generator></id><property name="userName" /><property name="userPassWord" /><property name="userType" /><property name="aliaoName" /><property name="passWordAsk" /><property name="userImage" /><property name="registerTime" /><property name="passWordAnswer" /><property name="userMail" /><property name="userSex" /><property name="userBirthDay" /><property name="userComeFrom" /><property name="userResume" /><property name="workUnit" /><property name="studyHistory" /><property name="studySchool" /><property name="idCardNo" /></class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对AdminUserInfoPO.hbm.xml的引用定义<mapping resource="AdminUserInfoPO.hbm.xml"/>3、映射前面的GoodsInfo数据库表中的各个字段(1)增加一个GoodsInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mappingPUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.px1987.webshop.dao.pobject.GoodsInfoPO" table="GoodsInfo"> <cache usage="read-write"/><id name="id" type="ng.Integer" ><column name="goodsID" not-null="true" /><generator class="increment"></generator></id><property name="goodsName" /><property name="goodsKind" /><property name="goodsPrice" /><property name="offPrice" /><property name="hitNumber" /><property name="buyNumber" /><property name="imageFile" /><property name="goodsDescriptor" /><property name="goodsProductTime" /><property name="goodFactoryName" /><property name="totalNumber" /><property name="onLibNumber" /><joined-subclass name="puterInfoPO" table="ComputerInfo" ><key column="computerID" /><property name="cpuName" /><property name="memorySize" /><property name="hdiskSize" /><property name="videoName" /></joined-subclass><joined-subclassname="mDeviceInfoPO" table="commDeviceInfo" > <key column="deviceID" /><property name="deviceModel" /><property name="baseFunction" /></joined-subclass><joined-subclass name="com.px1987.webshop.dao.pobject.BookInfoPO" table="BookInfo" ><key column="bookID" /><property name="totalPage" /><property name="authorName" /></joined-subclass><joined-subclass name="com.px1987.webshop.dao.pobject.ClothInfoPO" table="clothInfo" ><key column="clothID" /><property name="clothSize" /><property name="clothColor" /><property name="clothMatieal" /></joined-subclass></class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对GoodsInfoPO.hbm.xml的引用定义<mapping resource="GoodsInfoPO.hbm.xml"/>4、映射前面的OrderInfo数据库表中的各个字段(1)增加一个OrderInfoPO.hbm.xml文件(2)内容如下<?xml version="1.0"?><!DOCTYPE hibernate-mappingPUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.px1987.webshop.dao.pobject.OrderInfoPO" table="OrderInfo"> <cache usage="read-write"/><id name="id" type="ng.Integer" ><column name="orderID" not-null="true" /><generator class="increment"></generator></id><property name="createTime" /><property name="userID" /><property name="payFee" /><property name="sendGoodsType" /><property name="orderNumber" /><component name="onePersonInfo" class="com.px1987.webshop.dao.pobject.ReceiveGoodsPersonInfoPO"> <property name="receivePersonName" /><property name="receivePersonAddress" /><property name="receivePersonTel" /><property name="receivePersonMail" /></component><many-to-one name="oneUserInfoPOByOrder" column="userID"class="erInfoPO" update="false"insert="false" /></class></hibernate-mapping>(3)保证在hibernate.cfg.xml文件中添加对OrderInfoPO.hbm.xml的引用定义<mapping resource="OrderInfoPO.hbm.xml"/>5、最后为下面的状态。
《J2EE系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统详细设计说明书
《J2EE系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统详细设计说明书1.1.1引言1、编写目的编写此文档的主要目的,在于从整体上详细说明蓝梦网上商店系统的功能与处理模式,使项目开发人员和管理人员明确产品功能及解决方案,针对性地进行系统开发和测试、验收等工作,并为开发、编写代码提供详细的实现方案。
本设计说明书作为蓝梦网上商店系统项目开发的依据和规范,并作为开发任务及目标依据,蓝梦网上商店系统的开发内容及达到的各项功能及性能指标以此设计说明书为准。
在本设计说明书中将详细阐述系统设计方案,供前期开发者及后期维护者参考。
2、参考资料(1)J2EE项目实训Hibernate框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(2)J2EE项目实训Spring框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(3)J2EE项目实训UML及设计模式(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社 2008 年5月(4)J2EE项目实训Struts框架技术(21世纪高等学校实用软件工程教育规划教材)杨少波编著清华大学出版社2008 年10月(5)《JSP与数据库连接》刘瑞挺,高等教育出版社(6)《数据库原理与方法》郑若忠王鸿武,湖南科学技术出版社(7)《软件需求》(美)Karl E.Wiegers 著,刘伟琴刘洪涛译1.1.2模块命名规则1、模块汇总表提示:这里模块是指相对独立的软件设计单元,例如对象类、函数包等等。
2、模块关系图1.1.3子系统模块设计1、模块1——管理员管理商品模块管理商品,首要的是添加商品,因此,就要先来设计添加商品的界面。
根据数据库设计部分可知,商品信息包括两个数据表,一个是商品类型表My_GoodsType,一个是商品信息表My_Goods,在商品类型表中初始化了四条数据。
J2EE 课程设计实训项目——《蓝梦网上商城》——构造Struts框架控制层中商品查询信息管理相关的Action程序
J2EE 课程设计实训项目——《蓝梦网上商城》——构造Struts框架控制层中商品查询信息管理相关的Action程序类1.1.1构造Struts框架控制层中商品查询信息管理相关的Action程序类1、为该Web应用提供一个Action类SearchGoodsAction(1)直接在struts-config.xml的可视化的设计状态右击---新建---Action,产生出下面的Action的设置对话框。
(2)选择我们的各个配置项目Path选择为/searchGoodsURI,基类选择为org.apache.struts.actions.DispatchAction,Type(类名称)选择为com.px1987.webshop.control.action.SearchGoodsAction。
然后选择与该Action类相对应的ActionForm组件(由于对本Action的请求也是基于get请求,因此不需要设置对应的ActionForm组件)同时在“Input Source”中也不需要进行选择。
(3)选择parameter,由于我们希望采用DispatchAction的形式---因此输入actionType(4)然后,再选择所需要的方法(5)在Forwards中分别添加针对该“/searchGoodsURI”的各个Forwards----目标如下 <actionparameter="actionType"path="/searchGoodsURI"type="org.springframework.web.struts.DelegatingActionProxy"><forward name="showSearchAllGoodsInfo"path="/goodsInfoManage/showSearchAllGoodsInfo.jsp" /> <forward name="showSearchAllBookInfo"path="/goodsInfoManage/showSearchAllBookInfo.jsp" /> <forward name="showSearchAllCommDeviceInfo"path="/goodsInfoManage/showSearchAllCommDeviceInfo.jsp" /> <forward name="showSearchAllComputerInfo"path="/goodsInfoManage/showSearchAllComputerInfo.jsp" /> <forward name="showSearchAllClothInfo"path="/goodsInfoManage/showSearchAllClothInfo.jsp" /><forward name="showSearchPartGoodsInfo"path="/goodsInfoManage/showSearchPartGoodsInfo.jsp" /><forward name="showSearchPartBookInfo"path="/goodsInfoManage/showSearchPartBookInfo.jsp" /><forward name="showSearchPartCommDeviceInfo"path="/goodsInfoManage/showSearchPartCommDeviceInfo.jsp" /> <forward name="showSearchPartComputerInfo"path="/goodsInfoManage/showSearchPartComputerInfo.jsp" /> <forward name="showSearchPartClothInfo"path="/goodsInfoManage/showSearchPartClothInfo.jsp" /><forward name="showSearchAdviceGoodsInfo"path="/goodsInfoManage/showSearchAdviceGoodsInfo.jsp" /><forward name="showSearchAdviceBookInfo"path="/goodsInfoManage/showSearchAdviceBookInfo.jsp" /><forward name="showSearchAdviceCommDeviceInfo"path="/goodsInfoManage/showSearchAdviceCommDeviceInfo.jsp" /> <forward name="showSearchAdviceComputerInfo"path="/goodsInfoManage/showSearchAdviceComputerInfo.jsp" /><forward name="showSearchAdviceClothInfo"path="/goodsInfoManage/showSearchAdviceClothInfo.jsp" /> <forward name="showSearchNewGoodsInfo"path="/goodsInfoManage/showSearchNewGoodsInfo.jsp" /><forward name="showSearchNewBookInfo"path="/goodsInfoManage/showSearchNewBookInfo.jsp" /><forward name="showSearchNewCommDeviceInfo"path="/goodsInfoManage/showSearchNewCommDeviceInfo.jsp" /> <forward name="showSearchNewComputerInfo"path="/goodsInfoManage/showSearchNewComputerInfo.jsp" /><forward name="showSearchNewClothInfo"path="/goodsInfoManage/showSearchNewClothInfo.jsp" /><forward name="showSearchHotGoodsInfo"path="/goodsInfoManage/showSearchHotGoodsInfo.jsp" /><forward name="showSearchHotBookInfo"path="/goodsInfoManage/showSearchHotBookInfo.jsp" /><forward name="showSearchHotCommDeviceInfo"path="/goodsInfoManage/showSearchHotCommDeviceInfo.jsp" /><forward name="showSearchHotComputerInfo"path="/goodsInfoManage/showSearchHotComputerInfo.jsp" /><forward name="showSearchHotClothInfo"path="/goodsInfoManage/showSearchHotClothInfo.jsp" /><forward name="showSearchPayOffGoodsInfo"path="/goodsInfoManage/showSearchPayOffGoodsInfo.jsp" /><forward name="showSearchPayOffBookInfo"path="/goodsInfoManage/showSearchPayOffBookInfo.jsp" /><forward name="showSearchPayOffCommDeviceInfo"path="/goodsInfoManage/showSearchPayOffCommDeviceInfo.jsp" /><forward name="showSearchPayOffComputerInfo"path="/goodsInfoManage/showSearchPayOffComputerInfo.jsp" /><forward name="showSearchPayOffClothInfo"path="/goodsInfoManage/showSearchPayOffClothInfo.jsp" /><forward name="showSearchSiteContent"path="/goodsInfoManage/showSearchSiteContent.jsp" /> <forward name="showOneBookInfo"path="/goodsInfoManage/showOneBookInfo.jsp" /><forward name="showOneComputerInfo"path="/goodsInfoManage/showOneComputerInfo.jsp" /><forward name="showOneCommDeviceInfo"path="/goodsInfoManage/showOneCommDeviceInfo.jsp" /><forward name="showOneClothInfo"path="/goodsInfoManage/showOneClothInfo.jsp" /><forward name="showOneGoodsInfo"path="/goodsInfoManage/showOneGoodsInfo.jsp" /> <forward name="searchFailure" path="/dealError/showWebAppError.jsp" /></action>(6)分别添加各个forward以及各个forward所对应的目标页面(7)最后点击“完成”,将出现下面的状态(8)同时,在struts-config.xml中将出现下面的内容2、编程该SearchGoodsAction程序类中的功能实现方法package com.px1987.webshop.control.action;import java.util.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.actions.DispatchAction;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.px1987.webshop.business.goods.*;import com.px1987.webshop.service.ServiceException;import com.px1987.webshop.business.vobject.*;public class SearchGoodsAction extends DispatchAction{String gotoTargetPage=null;GoodsInfoManageInterface goodsInfoManageImple=null;public void setGoodsInfoManageImple(GoodsInfoManageInterface goodsInfoManageImple) {this.goodsInfoManageImple = goodsInfoManageImple;}public ActionForward doSearchBrick(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response){ ArrayList returnSearchresult=null;//获得搜索的大类别String searchType=request.getParameter("searchType");//获得搜索的大类别中的子类别String searchKind=request.getParameter("searchKind");//获得搜索的关键字文字String searchWord=request.getParameter("searchWord");switch(Integer.parseInt(searchType)){case 0: //其它类型(所有的商品)try{returnSearchresult=goodsInfoManageImple.doGetAllGoodsInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchPartGoodsInfo";break;case 1: //图书Map bookInfos=new HashMap();if(searchKind.equals("name")){bookInfos.put("goodsName", searchWord);}else if(searchKind.equals("author")){bookInfos.put("authorName", searchWord);}else if(searchKind.equals("publisher")){bookInfos.put("goodFactoryName", searchWord);}try{returnSearchresult=goodsInfoManageImple.doGetSomeBookInfo(bookInfos);}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchPartBookInfo";break;case 2: //计算机Map computerInfos=new HashMap();if(searchKind.equals("computerName")){computerInfos.put("goodsName", searchWord);}else if(searchKind.equals("cpuName")){computerInfos.put("cpuName", searchWord);}else if(searchKind.equals("memorySize")){computerInfos.put("memorySize", searchWord);}else if(searchKind.equals("hdiskSize")){computerInfos.put("hdiskSize", searchWord);}try{returnSearchresult=goodsInfoManageImple.doGetSomeComputerInfo(computerInfos);}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchPartComputerInfo";break;case 3: //通讯设备Map commDeviceInfos=new HashMap();if(searchKind.equals("deviceName")){commDeviceInfos.put("goodsName", searchWord);}else if(searchKind.equals("deviceModel")){commDeviceInfos.put("deviceModel", searchWord);}else if(searchKind.equals("goodFactoryName")){commDeviceInfos.put("goodFactoryName", searchWord);}else if(searchKind.equals("baseFunction")){commDeviceInfos.put("baseFunction", searchWord);}try{returnSearchresult=goodsInfoManageImple.doGetSomeCommDeviceInfo(commDeviceInfos);}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchPartCommDeviceInfo";break;case 4: //服装Map clothInfos=new HashMap();if(searchKind.equals("clothName")){clothInfos.put("goodsName", searchWord);}else if(searchKind.equals("clothColor")){clothInfos.put("clothColor", searchWord);}else if(searchKind.equals("clothMatieal")){clothInfos.put("clothMatieal", searchWord);}else if(searchKind.equals("clothSize")){clothInfos.put("clothSize", searchWord);}else if(searchKind.equals("factoryName")){clothInfos.put("goodFactoryName", searchWord);}try{returnSearchresult=goodsInfoManageImple.doGetSomeClothInfo(clothInfos);}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchPartClothInfo";break;case 5: //是全文搜索吗gotoTargetPage = "showSearchSiteContent";returnSearchresult=new ArrayList();returnSearchresult.add("这是全文本搜索到的结果内容!");break;}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","没有搜索到您所需要的商品信息,请改变搜索方式或者条件再试试!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllBookInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ArrayList returnSearchresult=null;try{returnSearchresult=goodsInfoManageImple.doGetAllBookInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAllBookInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllClothInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ArrayList returnSearchresult=null;try{returnSearchresult=goodsInfoManageImple.doGetAllClothInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAllClothInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllComputerInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllComputerInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAllComputerInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllCommDeviceInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ ArrayList returnSearchresult=null;try{returnSearchresult=goodsInfoManageImple.doGetAllCommDeviceInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAllCommDeviceInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllGoodsInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllGoodsInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAllGoodsInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllNewsBookInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllNewsBookInfo();}catch (ServiceException e) {request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchNewBookInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllNewsClothInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllNewsClothInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchNewClothInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllNewsComputerInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllNewsComputerInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchNewComputerInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllNewsCommDeviceInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllNewsCommDeviceInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchNewCommDeviceInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllNewsGoodsInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllNewsGoodsInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchNewGoodsInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllHotBookInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllHotBookInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchHotBookInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllHotClothInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ArrayList returnSearchresult=null;try{returnSearchresult=goodsInfoManageImple.doGetAllHotClothInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchHotClothInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllHotComputerInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllHotComputerInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchHotComputerInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllHotCommDeviceInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllHotCommDeviceInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchHotCommDeviceInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAllHotGoodsInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllHotGoodsInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchHotGoodsInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAdviceBookInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ArrayList returnSearchresult=null;try{returnSearchresult=goodsInfoManageImple.doGetAllGoodBookInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAdviceBookInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAdviceClothInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllGoodClothInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAdviceClothInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAdviceComputerInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllGoodComputerInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAdviceComputerInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAdviceCommDeviceInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ ArrayList returnSearchresult=null;try {returnSearchresult=goodsInfoManageImple.doGetAllGoodCommDeviceInfo();}catch (ServiceException e){request.setAttribute("errorText","出现如下的错误:"+e.getMessage());gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}if((returnSearchresult==null)||(returnSearchresult.size()==0)){ request.setAttribute("errorText","目前还没有该类型的商品信息,请查看其它类型的商品信息!");gotoTargetPage = "goGlobalException";return mapping.findForward(gotoTargetPage);}gotoTargetPage = "showSearchAdviceCommDeviceInfo";request.setAttribute("returnSearchresult", returnSearchresult);return mapping.findForward(gotoTargetPage);}public ActionForward doShowAdviceGoodsInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request,HttpServletResponse response){ArrayList returnSearchresult=null;try{returnSearchresult=goodsInfoManageImple.doGetAllGoodGoodsInfo();。
J2EE 课程设计实训项目《蓝梦网上商城》——在系统中应用Spring框架“自动代理(AutoProxy)”功能组件技术
J2EE 课程设计实训项目——《蓝梦网上商城》——在系统中应用Spring 框架的“自动代理(AutoProxy)”功能组件技术1.1.1应用Spring中的“自动代理(autoproxy)”功能简化前面的AOP Throws Advice功能实现1、Spring中的“自动代理”功能概述(1)自动代理Spring允许我们使用“自动代理”的Bean定义,从而可以自动对被选中的Bean定义进行代理。
当然,这是建立在Spring的“bean post processor”功能上,在这个模型下,我们只需要在XML bean定义文件中建立一些特定的bean定义来配置自动代理功能。
这允许我们仅仅声明那些将被自动代理的适当目标,而不再需要使用ProxyFactoryBean组件。
(2)有两种实现方式1)使用一个引用当前上下文中特定bean的自动代理创建器。
2)一个专用自动代理的创建需要被单独考虑;自动代理创建由源代码级别的元数据属性驱动。
(3)自动代理bean定义在org.springframework.aop.framework.autoproxy包中提供了BeanNameAutoProxyCreator自动代理创建器组件,BeanNameAutoProxyCreator能够实现为名字匹配字符串或者通配符的bean自动创建AOP代理。
(4)配置示例<beanclass="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"><value>userInfoManageImple,goodsInfoManageImple,orderInfoManageImple</value></property><property name="interceptorNames"><list><value>customExceptionAdvice</value></list></property></bean>其中的userInfoManageImple,goodsInfoManageImple和orderInfoManageImple为我们的目标业务组件类的Bean的定义名称,而customExceptionAdvice为我们的自定义的CustomExceptionAdvice组件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J2EE 课程设计实训项目——《蓝梦网上商城》——系统UML状态图的设计
“蓝梦网上商城”的UML状态图的设计
1、Guest用户在本系统中可能出现的各种状态
(1)新建一个包
(2)并命名该包
(3)在该包中新建一个状态图
(4)并命名该状态图为------ Guest用户的状态图
(5)输入各个状态
1)开始状态
2)过程状态
3)结束状态
(6)并设计各个过程状态
(7)最后为下面的结果
2、注册用户在本系统中可能出现的各种状态(1)新建一个包
(2)并命名该包
(3)在该包中新建一个状态图
(4)并命名该状态图为------ 注册用户状态图
(5)再在该状态图中输入各个不同的过程状态
(6)分别设计各个过程状态
(7)最后为下面的结果。