《J2EE系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统测试计划说明书

合集下载

《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统需求分析与建模实例

《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系统架构和程序设计》课程设计实训项目——蓝梦集团网上求职招聘系统项目系统设计评审总结报告说明书

《J2EE系统架构和程序设计》课程设计实训项目——蓝梦集团网上求职招聘系统项目系统设计评审总结报告说明书

《J2EE系统架构和程序设计》课程设计实训项目——蓝梦集团网上求职招聘系统项目系统设计评审总结报告说明书1.1.1系统设计评审会议记录1、会议时间XX月XX日2、会议人员张三(组长),李四(组员),王五(组员)3、会议地点教学楼4064、会议目的本次设计和开发评审会议的目的是小组全体人员对软件设计的技术文档进行评价,以判断确定设计和开发能否实现软件产品预先定义的规格,同时通过评审标识出与规格和标准的偏差,它向管理部门提供充足的证据以证明:1)设计是否符合了其规格要求;2)设计是否满足相关法律、法规以及企业标准的要求;3)软件产品的更改得到了恰当地实施;4)软件产品的更改只对那些规格发生了更改的系统区域有影响,没有引入新的问题5、会议讨论范围会议讨论对软件设计和开发的原始设计以及设计与开发的更改进行评审。

6、角色和职责(1)主审人主审人是技术评审的指挥人员,负责评审活动的组织、结论、书面报告和问题跟踪,主审人由张三同志承担。

(2)评审专家评审专家应由满足要求的技术人员担任,负责向评审组成员提出自己的评审意见和建议。

评审专家是由李四、王五同志承担。

(3)质量保证人员由杨六同志承担。

(4)会议记录员由赵七同志承担。

(5)顾客和用户代表由章八、王九同志承担。

(6)相关领导和部门管理人员无。

7、评审时机在项目的详细设计文档出来后,由项目开发组长和技术总工共同组织本项目的设计评审会议,对项目的设计结果进一步理性地思考,对项目的设计结果(架构和类)进一步完善和重构,并考虑如何应用有关的设计模式(架构和编程实现等方面)优化系统的设计以最终达到系统的可扩展性、可维护性。

8、评审的基本要求(1)项目的设计评审会议在本次执行,不排除在项目开发过程中出现变动,再次召开评审会议的可能。

(2)评审结论应明确;(3)评审资料应及时归档。

9、评审依据(1)立项说明书,软件需求规格说明书,软件概要设计文档和软件详细设计文档。

(2)软件设计文档国家标准GB8567—88 中的相关规定。

J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的订单信息业务处理功能组件

J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的订单信息业务处理功能组件

ServiceException{
boolean okOrNot=false;
okOrNot=orderInfoDAOServiceImple.insertOneOrderInfo(oneOrderInfoVO);
return okOrNot;
}
public boolean doDeleteOneOrderInfo(int orderID) throws ServiceException{
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的订 单信息业务处理功能组件
1.1.1 Spring 业务处理层的实现----针对用户 Order 订单信息业务功能处理 1、 订单信息管理的接口 (1)接口名称为 OrderInfoManageInterface,包名称为 com.px1987.webshop.business.order
boolean okOrNot=false;
okOrNot=orderInfoDAOServiceImple.deleteOneOrderInfo(orderID);
return okOrNot;
}
public ArrayList doGetAllOrderInfo() throws ServiceException{
(2)设计该接口 package com.px1987.webshop.business.order; import java.util.*; import com.px1987.webshop.business.vobject.*; import com.px1987.webshop.service.*; public interface OrderInfoManageInterface{

《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统概要设计说明书

《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 课程设计实训项目——《蓝梦网上商城》——实现横跨多个Hibernate SessionFacotry的分布式事务

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 课程设计实训项目——《蓝梦网上商城》——构建用户信息管理相关的数据访问服务组件(第1部分)

J2EE 课程设计实训项目——《蓝梦网上商城》——构建用户信息管理相关的数据访问服务组件(第1部分)

J2EE 课程设计实训项目——《蓝梦网上商城》——构建用户信息管理相关的数据访问服务组件(第1/3部分)1.1.1构建用户信息管理相关的数据访问服务组件实际开发实现时,是将DAO服务组件细分为几个不同的组件。

这样能够更好地体现“单一职责”的设计原则。

1、添加一个ServiceException异常类(1)类名称为ServiceException,包名称为com.px1987.webshop.service,基类为ng.Exception(2)编程该异常类package com.px1987.webshop.service;public class ServiceException extends Exception{public ServiceException(){}public ServiceException(String message){super(message);}public ServiceException(Throwable cause){super(cause);}public ServiceException(String message, Throwable cause){ super(message, cause);}}2、添加一个CartServiceException异常类(1)类名称为CartServiceException,包名称为com.px1987.webshop.service,基类为ng.Exception(2)编程该异常类package com.px1987.webshop.service;public class CartServiceException extends Exception{//该异常类型为后面的购物车提供服务public CartServiceException() {}public CartServiceException(String message) {super(message);}public CartServiceException(Throwable cause) {super(cause);}public CartServiceException(String message, Throwable cause) { super(message, cause);}}3、添加我们的业务处理层的业务实体类等------用户信息管理所涉及的业务实体组件类(1)基类名称为UserInfoBaseVO,包名称为com.px1987.webshop.business.vobject(2)在该类中提供下面的各个属性,并且为这些属性提供get/set方法private String id;private String userName;private String userPassWord;private Integer userType;private String aliaoName;private String passWordAsk;private String userImage;private String registerTime;private String passWordAnswer;private String userMail;private String userResume;private Integer type_User_Admin; //该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)(3)最后产生出下面的状态package com.px1987.webshop.business.vobject;public class UserInfoBaseVO {// 下面的属性来自于UserInfoBasePO类private String id;private String userName;private String userPassWord;private Integer userType;private String aliaoName;private String passWordAsk;private String userImage;private String registerTime;private String passWordAnswer;private String userMail;private String userResume;private Integer type_User_Admin; //该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)public UserInfoBaseVO(){id="";userName="";userPassWord="";userType=new Integer(1);aliaoName="";passWordAsk="";userImage="";registerTime="";passWordAnswer="";userMail="";userResume="";type_User_Admin=new Integer(1);}public String getAliaoName() {return aliaoName;}public void setAliaoName(String aliaoName) { this.aliaoName = aliaoName;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getPassWordAnswer() {return passWordAnswer;}public void setPassWordAnswer(String passWordAnswer) { this.passWordAnswer = passWordAnswer;}public String getPassWordAsk() {return passWordAsk;}public void setPassWordAsk(String passWordAsk) { this.passWordAsk = passWordAsk;}public String getRegisterTime() {return registerTime;}public void setRegisterTime(String registerTime) { this.registerTime = registerTime;}public String getUserImage() {return userImage;}public void setUserImage(String userImage) { erImage = userImage;}public String getUserMail() {return userMail;}public void setUserMail(String userMail) {erMail = userMail;}public String getUserName() {return userName;}public void setUserName(String userName) {erName = userName;}public String getUserPassWord() {return userPassWord;}public void setUserPassWord(String userPassWord) {erPassWord = userPassWord;}public String getUserResume() {return userResume;}public void setUserResume(String userResume) {erResume = userResume;}public Integer getUserType() {return userType;}public void setUserType(Integer userType) {erType = userType;}public Integer getType_User_Admin() {return type_User_Admin;}public void setType_User_Admin(Integer type_User_Admin) {this.type_User_Admin = type_User_Admin;}}(2)类名称为UserInfoVO,包名称为com.px1987.webshop.business.vobject,基类为前面的erInfoBaseVO(3)在该类中定义下面的属性成员//下面的属性来自于UserInfoBasePO类private int userSex;private String userBirthDay;private String userComeFrom;// 下面的属性来自于UserInfoPO类private Map contactMethod = new HashMap();private String userSign;private int emailVisible;private int acceptAdvise;// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;(4)为上面的各个属性提供get/set方法(5)最后为下面的状态package com.px1987.webshop.business.vobject; import java.util.*;public class UserInfoVO extends UserInfoBaseVO{ //下面的属性来自于UserInfoBasePO类private int userSex;private String userBirthDay;private String userComeFrom;// 下面的属性来自于UserInfoPO类private Map contactMethod = new HashMap();private String userSign;private int emailVisible;private int acceptAdvise;// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;public UserInfoVO(){super();userSex=1;userBirthDay="";userComeFrom="";userSign="";emailVisible=1;acceptAdvise=1;workUnit="";studyHistory="";studySchool="";idCardNo="";}public int getAcceptAdvise() {return acceptAdvise;}public void setAcceptAdvise(int acceptAdvise) { this.acceptAdvise = acceptAdvise;}public int getEmailVisible() {return emailVisible;}public void setEmailVisible(int emailVisible) { this.emailVisible = emailVisible;}public String getIdCardNo() {return idCardNo;}public void setIdCardNo(String idCardNo) { this.idCardNo = idCardNo;}public String getStudyHistory() {return studyHistory;}public void setStudyHistory(String studyHistory) { this.studyHistory = studyHistory;}public String getStudySchool() {return studySchool;}public void setStudySchool(String studySchool) { this.studySchool = studySchool;}public String getUserBirthDay() {return userBirthDay;}public void setUserBirthDay(String userBirthDay) { erBirthDay = userBirthDay;}public String getUserComeFrom() {return userComeFrom;}public void setUserComeFrom(String userComeFrom) { erComeFrom = userComeFrom;}public int getUserSex() {return userSex;}public void setUserSex(int userSex) {erSex = userSex;}public String getUserSign() {return userSign;}public void setUserSign(String userSign) {erSign = userSign;}public String getWorkUnit() {return workUnit;}public void setWorkUnit(String workUnit) {this.workUnit = workUnit;}public String getUserICQCode() {return (String)contactMethod.get("userICQCode");}/** 下面的各个方法为“帮助方法”*/public void setUserICQCode(String userICQCode) { contactMethod.put("userICQCode", userICQCode);}public String getUserMSNCode() {return (String)contactMethod.get("userMSNCode");}public void setUserMSNCode(String userMSNCode) { contactMethod.put("userMSNCode", userMSNCode);}public String getUserQQCode() {return (String)contactMethod.get("userQQCode");}public void setUserQQCode(String userQQCode) {contactMethod.put("userQQCode", userQQCode);}public void addOneContactMethod(String oneContactMethodKey,String oneContactMethodValue) { //该方法为“帮助方法”contactMethod.put(oneContactMethodKey,oneContactMethodValue);}public String getOneContactMethod(String oneContactMethodKey){return (String)contactMethod.get(oneContactMethodKey);}public Map getContactMethod() {return contactMethod;}public void setContactMethod(Map contactMethod) {this.contactMethod = contactMethod;}}4、添加我们的业务处理层中针对订单信息管理的业务实体类等(1)订单信息管理所涉及的业务实体组件类类名称为OrderInfoVO,包名称为com.px1987.webshop.business.vobject(2)在该类中定义下面的属性成员private Integer id;private String createTime;private String userID;private boolean payFee;private int sendGoodsType;private String orderNumber;private String receivePersonName;private String receivePersonAddress;private String receivePersonTel;private String receivePersonMail; (3)为上面的各个属性提供get/set方法(4)最终的代码package com.px1987.webshop.business.vobject; public class OrderInfoVO{private Integer id;private String createTime;private String userID;private boolean payFee;private int sendGoodsType;private String orderNumber;private String receivePersonName;private String receivePersonAddress;private String receivePersonTel;private String receivePersonMail;public OrderInfoVO(){}public String getCreateTime() {return createTime;}public void setCreateTime(String createTime) { this.createTime = createTime;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getOrderNumber() {return orderNumber;}public void setOrderNumber(String orderNumber) {this.orderNumber = orderNumber;}public boolean isPayFee() {return payFee;}public void setPayFee(boolean payFee) {this.payFee = payFee;}public String getReceivePersonAddress() {return receivePersonAddress;}public void setReceivePersonAddress(String receivePersonAddress) { this.receivePersonAddress = receivePersonAddress;}public String getReceivePersonMail() {return receivePersonMail;}public void setReceivePersonMail(String receivePersonMail) { this.receivePersonMail = receivePersonMail;public String getReceivePersonName() {return receivePersonName;}public void setReceivePersonName(String receivePersonName) { this.receivePersonName = receivePersonName;}public String getReceivePersonTel() {return receivePersonTel;}public void setReceivePersonTel(String receivePersonTel) { this.receivePersonTel = receivePersonTel;}public int getSendGoodsType() {return sendGoodsType;}public void setSendGoodsType(int sendGoodsType) {this.sendGoodsType = sendGoodsType;}public String getUserID() {return userID;}public void setUserID(String userID) {erID = userID;}}5、添加我们的业务处理层针对商品信息管理组件的业务实体类等(1)商品信息管理所涉及的业务实体组件类类名称为GoodsInfoVO,包名称为com.px1987.webshop.business.vobject(2)在该类中定义下面的属性成员private Integer id;private String goodsName;private int goodsKind;private float goodsPrice;private float offPrice;private int hitNumber;private int buyNumber;private String imageFile;private String goodsDescriptor;private String goodsProductTime;private String goodFactoryName;private int totalNumber;private int onLibNumber;(3)为上面的各个属性提供get/set方法(4)最终的代码package com.px1987.webshop.business.vobject; public class GoodsInfoVO {private Integer id;private String goodsName;private int goodsKind;private float goodsPrice;private float offPrice;private int hitNumber;private int buyNumber;private String imageFile;private String goodsDescriptor;private String goodsProductTime;private String goodFactoryName;private int totalNumber;private int onLibNumber;public GoodsInfoVO(){}public int getBuyNumber() {return buyNumber;public void setBuyNumber(int buyNumber) {this.buyNumber = buyNumber;}public String getGoodFactoryName() {return goodFactoryName;}public void setGoodFactoryName(String goodFactoryName) { this.goodFactoryName = goodFactoryName;}public String getGoodsDescriptor() {return goodsDescriptor;}public void setGoodsDescriptor(String goodsDescriptor) { this.goodsDescriptor = goodsDescriptor;}public int getGoodsKind() {return goodsKind;}public void setGoodsKind(int goodsKind) {this.goodsKind = goodsKind;}public String getGoodsName() {return goodsName;}public void setGoodsName(String goodsName) {this.goodsName = goodsName;}public float getGoodsPrice() {return goodsPrice;public void setGoodsPrice(float goodsPrice) {this.goodsPrice = goodsPrice;}public String getGoodsProductTime() {return goodsProductTime;}public void setGoodsProductTime(String goodsProductTime) { this.goodsProductTime = goodsProductTime;}public int getHitNumber() {return hitNumber;}public void setHitNumber(int hitNumber) {this.hitNumber = hitNumber;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getImageFile() {return imageFile;}public void setImageFile(String imageFile) {this.imageFile = imageFile;}public float getOffPrice() {return offPrice;public void setOffPrice(float offPrice) { this.offPrice = offPrice;}public int getOnLibNumber() {return onLibNumber;}public void setOnLibNumber(int onLibNumber) { this.onLibNumber = onLibNumber;}public int getTotalNumber() {return totalNumber;}public void setTotalNumber(int totalNumber) { this.totalNumber = totalNumber;}}。

J2EE 课程设计实训项目——《蓝梦网上商城》——应用Spring框架中 的“Open Session in View模式”

J2EE 课程设计实训项目——《蓝梦网上商城》——应用Spring框架中 的“Open Session in View模式”

J2EE 课程设计实训项目——《蓝梦网上商城》——应用Spring框架中的“Open Session in View模式”1.1.1在Spring框架与Hibernate框架相互整合的应用中应用Spring框架中的“OpenSession in View模式”(实现方式一)1、Spring提供了OpenSessionInViewerFilter和OpenSessionInViewInterceptor两种组件(1)功能使用它们中的任一个都能获得同样的功能。

(2)两者唯一不同点其中interceptor在Spring容器中运行,并且在web应用的上下文中配置(WebApplicationContext);而Fitler在Spring前就已经运行,并且需要在web.xml中配置。

不管使用哪一个,他们都会在请求绑定到Session的当前线程期间打开Hibernate Session。

(3)实现的原理Open Session In View在request把session绑定到当前thread期间一直保持hibernate session在open状态,使session在request的整个期间都可以使用,如在View层里PO也可以lazy loading数据。

当View 层逻辑完成后,才会通过Filter的doFilter方法或Interceptor的postHandle方法自动关闭session。

(4)HibernateDaoSupport透明地使用Hibernate 的Session一旦绑定到线程,打开的Hibernate 的Session能被DAO的实现类透明地使用。

Session 会持续打开允许延迟加载访问数据库。

一旦View逻辑完成,Hibernate 的Session会被关闭,无论是在Filter的doFilter方法中还是在Interceptor的postHandle方法中。

2、Interceptor配置示例此时可以使用Spring的AOP配置,将这个Interceptor配置到我们所需要的层次上去。

J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的用户信息业务处理功能组件

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 课程设计实训项目——《蓝梦网上商城》——构造出基于Hibernate的各个PO实体组件程序类(第2部分)

J2EE 课程设计实训项目——《蓝梦网上商城》——构造出基于Hibernate的各个PO实体组件程序类(第2部分)

private String deviceModel; private String baseFunction; public CommDeviceInfoPO(){ } public boolean equals(Object other){ if (this == other) { return true; } if (! (other instanceof return false; } return true; } public String getBaseFunction() { return baseFunction; } public void setBaseFunction(String baseFunction) { this.baseFunction = baseFunction; } public String getDeviceModel() { return deviceModel; } public void setDeviceModel(String deviceModel) { this.deviceModel = deviceModel; } } 9、编写 POJO 类---ComputerInfoPO.java ( 1 ) 新 建 该 PO 类 ------- 类 名 称 为 ComputerInfoPO , 包 名 称 为 CommDeviceInfoPO)){
杨教授大学堂,版权所有,盗版必究。 4/17 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
public String getClothSize() { return clothSize; } public void setClothSize(String clothSize) { this.clothSize = clothSize; } public boolean equals(Object other){ if (this == other) { return true; } if (! (other instanceof return false; } return true; } } 8、编写 POJO 类---CommDeviceInfoPO.java ( 1 ) 新 建 该 PO 类 ------- 类 名 称 为 CommDeviceInfoPO , 包 名 称 为 ClothInfoPO)){

J2EE 课程设计实训项目——《蓝梦网上商城》——系统UML部署图的设计

J2EE 课程设计实训项目——《蓝梦网上商城》——系统UML部署图的设计

(2)工具按钮
2、在该部署视图中添加各个节点 (1)添加各个节点
杨教授大学堂,版权所有,盗版必究。
1/4 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(2)命名各个节点
(3)将各个节点加以连接
杨教授大学堂,版权所有,盗版必究。 2/4 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(4)设置各个相互连接节点之间的网络协议 双击连接线,并在对话框中输入协议的名称。
杨教授大学堂,版权所有,盗版必究。
3/4 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(5)最后的状态为
杨教授大学堂,版堂 精心创作的优秀程序员 职业提升必读系列资料
J2EE 课程设计实训项目——《蓝梦网上商城》——系统 UML 部署图的设 计
“蓝梦网上商城”的 UML 部署图的设计 1、创建部署视图 (1)产生一个空的部署视图 由于部署视图在一个项目机中只需要一个,因此直接双击“Deployment View”将产生 出一个空的部署视图。

J2EE 课程设计实训项目——《蓝梦网上商城》——对系统持久层中的DAO组件进行单元测试(第2部分)

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系统架构和程序设计》课程设计实训项目——蓝梦网上商店系统测试计划说明书杨教授大学堂精心创作的优秀程序员职业提升必读系列资料《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框架相互整合

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系统架构和程序设计》课程设计实训项⽬——蓝梦⽹上商店系统概要设计说明书《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框架的数据库连接程序类

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 课程设计实训项目——《蓝梦网上商城》——应用J2EE Listener监听器组件显示在线用户总数

J2EE 课程设计实训项目——《蓝梦网上商城》——应用J2EE Listener监听器组件显示在线用户总数

J2EE 课程设计实训项目——《蓝梦网上商城》——应用J2EE Listener 监听器组件显示在线用户总数1.1.1应用J2EE Listener组件显示在线用户数1、添加一个在线用户计数的组件(1)类名称为OnLineCounter,包名称为com.px1987.webshop.control.bean(2)编程该OnLineCounter组件package com.px1987.webshop.control.bean;import java.util.*;import erInfoVO;import com.px1987.webshop.control.listener.CounterOnLineVisitorListener;public class OnLineCounter{private static int onLine = 0;public static int getOnLine(){return onLine;}public static void addOneUser(){onLine++;}public static void reduceOneUser(){onLine--;}public static List getOnLineUserNameList(){Iterator onLineUserList=CounterOnLineVisitorListener.getOnLineUserList().iterator();List onLineUserNameList=new ArrayList();while(onLineUserList.hasNext()){UserInfoVO oneLoginUserInfoVO=(UserInfoVO)onLineUserList.next();onLineUserNameList.add(oneLoginUserInfoVO.getUserName());}return onLineUserNameList;}public static int getOnLineMemberUserNumber(){return CounterOnLineVisitorListener.getOnLineUserList().size();}}2、添加CounterOnLineVisitorListener监听器组件(1)类名称为CounterOnLineVisitorListener,包名称为com.px1987.webshop.control.listener,并且实现javax.servlet.http.HttpSessionListener和HttpSessionAttributeListener等接口(2)部署该CounterOnLineVisitorListener监听器组件<listener><listener-class>com.px1987.webshop.control.listener.CounterOnLineVisitorListener </listener-class></listener>(3)编程该Listener监听器组件package com.px1987.webshop.control.listener;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;import com.px1987.webshop.control.bean.OnLineCounter;import erInfoVO;import java.util.*;public class CounterOnLineVisitorListener implementsHttpSessionAttributeListener, HttpSessionListener{private static List onLineUserList=new ArrayList();public void sessionCreated(HttpSessionEvent se){OnLineCounter.addOneUser();}public void sessionDestroyed(HttpSessionEvent se){OnLineCounter.reduceOneUser();}public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent){//识别该用户是否已经登录if(httpSessionBindingEvent.getName().equals("oneUserInfoVO")){UserInfoVO nowLoginUserInfo=(UserInfoVO)httpSessionBindingEvent.getValue();onLineUserList.add(nowLoginUserInfo);}}public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent){if(httpSessionBindingEvent.getName().equals("oneUserInfoVO")){UserInfoVO nowLoginUserInfo=(UserInfoVO)httpSessionBindingEvent.getValue();onLineUserList.remove(nowLoginUserInfo);}}public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent){}public static List getOnLineUserList(){return onLineUserList;}}3、添加对Cookie进行操作的JavaBean组件(1)类名称为ReadWriteCookie,包名称为com.px1987.webshop.control.bean(2)编程该组件package com.px1987.webshop.control.bean;import javax.servlet.*;import javax.servlet.jsp.*;import javax.servlet.http.*;import java.util.*;import com.px1987.webshop.business.vobject.*;public class ReadWriteCookie {private PageContext pageContext=null;Cookie lastAccessCookie=null;HttpServletRequest request=null;HttpServletResponse response=null;HttpSession session=null;ServletContext application=null;String nowDateString=null;UserInfoBaseVO oneUserInfoVO=null;String lastAccessDateString=null;String nowBrowseingUserName=null;String onLineGuestCounter="0";public ReadWriteCookie(){}public ReadWriteCookie(PageContext pageContext) {this.pageContext=pageContext;request=(HttpServletRequest)pageContext.getRequest();response=(HttpServletResponse)pageContext.getResponse();session=request.getSession();application=pageContext.getServletContext();}public void operateCookie(){Date nowDate=new Date();nowDateString=nowDate.toLocaleString();//取得Cookie资料(因为在Cookie中可以存储多个信息)Cookie[] cookies = request.getCookies();if(cookies==null){//建立Cookie变量lastAccessCookie = new Cookie("lastAccessDate", nowDateString);//设定Cookie在用户机器硬盘上的存活期为1年。

《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.1.3子系统模块设计1、模块1——管理员管理商品模块管理商品,首要的是添加商品,因此,就要先来设计添加商品的界面。

根据数据库设计部分可知,商品信息包括两个数据表,一个是商品类型表My_GoodsType,一个是商品信息表My_Goods,在商品类型表中初始化了四条数据。

J2EE 课程设计实训项目——《蓝梦网上商城》——建立系统中的各个数据库表之间关联关系

J2EE 课程设计实训项目——《蓝梦网上商城》——建立系统中的各个数据库表之间关联关系

J2EE 课程设计实训项目——《蓝梦网上商城》——建立系统中的各个数据库表之间关联关系
1.1.1在SQLServer2000中建立各个数据库表之间关系的过程
1、在我们的数据库的“关系图”节点上右击,然后选择“新建数据库关系图”
2、进入关系图的创建向导
3、选择需要放到关系图中的各个数据库表
4、点击“完成”按钮,将前面的各个数据库表放到关系图中
5、根据我们的数据库表之间的关系,分别对两各数据库之间进行关系的设定(1)右击我们的源数据库表,并且选择“关系”子菜单项目
(2)选择我们的“主/外键”
(3)依此方法,再对其它的数据库表同样建立出关系
(4)依此方法,再对其它的数据库表同样建立出关系
(5)依此方法,再对其它的数据库表同样建立出关系
(6)最后为下面的关系状态图
杨教授大学堂精心创作的优秀程序员职业提升必读系列资料
杨教授大学堂,版权所有,盗版必究。

11/11页。

J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统表示层中的各个JSP页面

J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统表示层中的各个JSP页面

J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统表示层中的各个JSP页面1.1.1实现系统表示层中的各个JSP页面1、在Macromedia Dreamweaver MX 2004中针对该Struts的WebApp新建一个Web站点该Web 站点所在的目录为我们磁盘中的某个目录。

2、在该Web站点所在的目录中添加或者新建我们的各个资源目录(1)images和webImages(2)flash(3)css(4)webResource(5)javascript(6)database3、在Macromedia Dreamweaver MX 2004中针对本Web系统新建一个页面模板文件(1)新建一个模板页面(2)将产生出一个空的页面(3)保存该模板页面为一个模板文件pageTemplate.dwt(4)输入模板文件的名称(5)将自动地产生出一个Template的目录,并在该目录中保存我们的模板文件4、设计该模板页面中的内容(1)对该模板页面进行页面设计------该过程由于比较多,在此省略(2)在该模板页面中定义可编辑区(3)输入可编辑区的名称为:pageContent(4)最后再次保存该模板页面文件。

5、依此相同的方法再新建一个模板页面pageTemplateTwo.dwt6、根据模板页面新建出本系统的各个表示层的页面文件(1)根据模板页面新建各个页面(2)选择该页面所依赖的模板页面,并点击“创建”按钮,将出现一个与模板页面一样的空的页面(3)根据应用的要求设计该页面的内容7、本系统的表示表示层的页面目录如下8、在模板页面中设计全局导航条,将各个超链接连接各个功能页面上9、对各个功能页面中的页面内容(包括表单)进行设计,并且进一步细化!10、系统首页面index.jsp页面的代码示例<%@ page contentType="text/html;charset=gb2312" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"<HEAD><title>蓝梦网上商城</title><html:base/><META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK href="images/style.css" type="text/css" rel="stylesheet"><SCRIPT language="javascript" type="text/javascript">if (top.location != self.location)top.location=self.location; //避免别人把网页放在框架中</SCRIPT></HEAD><FRAMESET border=0 frameSpacing=0 frameBorder=NO cols=*><FRAMESET border=0 name=fst frameSpacing=0 frameBorder=NO cols=140,9,*> <FRAME name=leftFrame src="images/leftMenu.htm" noResize><FRAME name=midFrame src="images/switch.htm" frameBorder=0 scrolling=no><FRAME name=mainFrame src="images/defaultContent.jsp"></FRAMESET><NOFRAMES><body><font color=red style=font-size:14px><b>你的浏览器不支持帧页面,请升级!</b></font></body></NOFRAMES></FRAMESET></HTML>11、用户进行系统登录的userLogin.jsp页面代码示例<%@ page contentType="text/html;charset=gb2312"errorPage="/dealError/showSystemError.jsp"%><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><!-- InstanceBegin template="/Templates/pageTemplate.dwt" codeOutsideHTMLIsLocked="false" --><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><html:base/><SCRIPT language="javascript" type="text/javascript" src="../javascript/commonCode.js"></SCRIPT><!-- InstanceBeginEditable name="doctitle" --><script language="javascript" type="text/javascript" src="../javascript/commonCode.js"></script><title>蓝梦网上商城</title><!-- InstanceEndEditable --><!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable --><link href="../css/pageStyle.css" rel="stylesheet" type="text/css" /></head><body background="../webImages/contentbg.jpg" ><TABLE width="100%" border=0 align="center" cellPadding=0 cellSpacing=0 class="smalltxt"><TR><TD ><TABLE width="100%" border=0 align="center" cellPadding=0 cellSpacing=0> <TR ><TD width="77"><div onclick="history.back()"><div align="center" style="cursor:hand">《--后退</div></div></TD><TD width="77"><div onclick="history.forward()"><div align="center" style="cursor:hand">向前--》</div></div></TD><TD width="835" ><a href="../images/defaultContent.jsp">首页</a>|<a href="../userACounter/showCounterInfo.jsp">我的帐户</a> |<a href="../buyCartManage/showCartInfo.jsp"><IMG height=16 alt="Cart"src="../webImages/buycart.gif" width=19 border=0>购物车</a> |<a href="../shopGuide/showHelpInfo.htm">帮助中心</a> |<a href="../shopGuide/stepBystep.htm"> 新手上路</a>|<a href="../aboutThis/privateText.htm"> 隐私声明</a>|<a name="home" onclick="defaul_home();" href="#" >设为首页</a>|<a href="#" onclick="javascript:window.external.addFavorite('/','蓝梦网上商城');return false;" >收藏本站</a>|<a href="../aboutThis/aboutTheSite.htm"> 关于本站</a></TD></TR></TABLE></TD></TR><TR><TD ><FORM name="searchBrick"action="/webshop/searchGoodsURI.do?actionType=doSearchBrick" method="post"><TABLE width="100%" border=0 align=center cellPadding=0 cellSpacing=0><TR ><TD width=186> <span class="smalltxt">商品搜索</span><SELECT name="searchType"onchange="changeSearchKind(options[selectedIndex].value);" ><OPTION value="0" selected>所有类别</OPTION><OPTION value=1>图书</OPTION><OPTION value=2>计算机</OPTION><OPTION value=3>通讯设备</OPTION><OPTION value=4>服装</OPTION><OPTION value=5>全文搜索</OPTION><OPTION value=6>高级搜索</OPTION></SELECT></TD><TD width=189><INPUT id="searchWord" size="25" name="searchWord"value="请输入商品的名称"></TD><TD width="39" align=right><div align="left"><INPUT name="Go" type="image" alt="查找"src="../webImages/az-go-orange-trans.gif"></div></TD><TD width="575" ><DIV id="searchKindArea"></DIV></TD></TR></TABLE></FORM></TD></TR><tr ><td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase=/pub/shockwave/cabs/flash/swflash.cab#version =6,0,29,0 width="100%" height="2"><param name="movie" value="../flash/lightLine.swf" /><param name="quality" value="high" /></object></td></tr></TABLE><!-- InstanceBeginEditable name="pageContent" --><html:form action="/userInfoManage.do?actionType=doLogin_GetPassWord" method="post" > <html:hidden property="menuID" value="2"/><table width="426" border="1" align="center" class="smalltxt"><tr><td colspan="2"><div align="center">选择操作方式:<html:radio property="login_GetPassWord_ActionType"onclick="userLogin_showUserLoginInput(this.value)" value="1">登陆系统</html:radio>&nbsp;&nbsp;&nbsp;&nbsp;<html:radio property="login_GetPassWord_ActionType"onclick="userLogin_showGetUserPassWordInput(this.value)" value="2">找回密码</html:radio></div></td></tr><tr><td colspan="2" align="center">输入右面的认证码:<html:text property="verifyCodeDigit" onblur="checkIfDigit(this.value);"/><img border="0" src="verifyCodeImage.jsp" alt="verifyCodeImage" /></td></tr><tr><td colspan="2" align="center">用户类型:<html:select property="type_User_Admin"><html:option value="1">前台用户</html:option><html:option value="2">后台管理员</html:option></html:select></td></tr><tr><td colspan="2" align="center">您的名称:<html:text property="userName" /></td></tr><tr style="display:inline" id="userLoginTableRow"><td colspan="2"><table width="100%" border="0"><tr><td><div align="center">您的密码:<html:password property="userPassWord" /></div></td></tr></table></tr><tr style="display:none" id="getUserPassWordTableRow"><td colspan="2"><table width="100%" border="0"><tr><td><div align="center">取回密码的问题:<html:text property="passWordAsk" /></div></td></tr><tr><td><div align="center">取回密码问题的答案:<html:password property="passWordAnswer" /></div></td></tr></table></td></tr><tr id="showErrorInfo" style="background-color:#FF9900;display:none"><td colspan="2" align="center" id="errorInfoPosition"></td></tr><tr><td colspan="2" align="center"><html:submit value="提交" property="submitButton" disabled="" onclick="this.value='正在提交请求,请稍候'"></html:submit>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<html:reset value="取消" /></td></tr></html:form><!-- InstanceEndEditable --> </body><!-- InstanceEnd --></html>。

J2EE 课程设计实训项目——《蓝梦网上商城》——在系统的表示层JSP页面中应用DWR框架相关的技术

J2EE 课程设计实训项目——《蓝梦网上商城》——在系统的表示层JSP页面中应用DWR框架相关的技术

J2EE 课程设计实训项目——《蓝梦网上商城》——在系统的表示层JSP 页面中应用DWR框架相关的技术1.1.1在系统的表示层JSP页面中应用DWR框架相关的技术1、添加DWR的系统包(1)导入DWR框架相关的系统程序包文件(2)定位到我们的系统包所在的目录处(3)最后将产生出下面的状态2、在web.xml中部署DWR的Servlet(本项目采用DWR2.0系统库)DWR 2.0版最后的配置内容如下<servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param><param-name>logLevel</param-name><param-value>DEBUG</param-value></init-param><init-param><param-name>config</param-name><param-value>/WEB-INF/dwr.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>true</param-value></init-param><init-param ><param-name>classes</param-name><param-value>ng.Object</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>3、定位Spring(使DWR能够找到它)的IoC的 XML配置文件由于本项目中的业务组件是在 Spring IoC容器中创建的,因此需要将Spring与DWR 进行整合使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《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)CPU:P3同类档次或更高档次以上。

2)内存:256M以上内存。

3)显示器:VGA或更高分辨率,建议分辨率为1024x768像素。

(2)软件环境
系统运行的软件环境如下:
1)服务器端操作系统:Windows及Linux。

2)支持多种浏览器。

3)数据库系统为Oracle数据库系统
4)服务器为Tomcat
3、需求概述
项目小组要在16周的时间内学习J2EE WEB应用知识,并开发出一个较为完善的网上购物系统,的确是一个相当紧迫的任务。

在这样的情况下,做好软件的测试计划及测试用例是十分必要的。

测试计划是软件测试中最重要的步骤之一,它在软件开发的前期对软件测试做出清晰,完整的计划,不光对整个测试起到关键性的作用,而且对开发人员的开发工作,整个项目的规划,项目经理的审查都有辅助性作用。

4、条件与限制
由于本项目开发的时间和经费限制,项目最终的交付结果不能实现真正网购系统的大型服务器性能,而是采用MyEclipse + Tomcat的本机服务器模式。

因此在项目的测试上也会受到一定的限制,比如无法测试同时登陆的用户数超过一定限制会不会产生速度、并发性、安全性等方面的问题。

1.1.3测试计划
1、测试方案
本测试包括组装测试和确认测试两大部分,组装测试主要采取自底向上的测试方法,确认测试主要采取黑盒测试方法。

测试用例选取主要根据软件需求说明书中的功能需求IPO表以及详细设计说明书中的用例模型。

本系统的测试方式为:
(1)书写测试用例;
(2)根据测试用例编写测试脚本;
(3)运行测试脚本,进行测试(测试结果填写测试结果报告单,对缺陷进行详细描述,以便于开发人员进行交流,进行回归测试)。

2、测试项目
本测试项目包括组装测试和确认测试两大部分,组装测试是在项目进行中不断的对各个模块进行集成测试。

确认测试包括安装测试、功能测试、可靠性测试、安全性测试、时间及空间性能测试、易用性测试、可移植性测试、可维护性测试和文档测试几个方面。

本说明书主要进行功能测试和易用性测试,包括后台管理测试、客户端功能测试和用户界面测试三个部分。

3、测试准备
(1)必要的软硬件设备,具体如上所述。

(2)人员培训
测试各负责人均需理解测试基本知识:掌握面向对象方法,熟悉产品基本功能特性,熟悉每个包和类的功能。

4、测试机构及人员
(1)技术总工
书写测试计划(用例),组织测试。

(2)测试开发人员
编写测试代码,进行测试工作,对测试过程进行记录,收集、整理测试记录数据,对测试结果进行分析,编写测试总结报告。

(3)项目经理
管理测试进度,进行测试评估。

(4)用户
必要时可参加测试,并提出具体的测试要求;可要求暂停测试。

1.1.4测试项目说明
1、测试项目名称及测试内容
2、测试用例
以表格的形式列出:输入【输入的数据和输入命令】、输出【预期的输出数据】、步骤及操作、允许偏差【给出实测结果与预期结果之间允许偏差的范围】。

3、测试进度
随项目开发过程进展进行各项测试。

4、测试运行环境
(1)硬件环境
目前市场上出售的一般个人或商务电脑均可使用,机器配置要求如下:1)CPU:P3同类档次或更高档次以上。

2)内存:256M以上内存。

3)显示器:VGA或更高分辨率,建议分辨率为1024x768像素。

(2)软件环境
系统运行的软件环境如下:
1)服务器端操作系统:Windows及Linux。

2)支持多种浏览器。

3)数据库系统为Oracle数据库系统
4)服务器为Tomcat
1.1.5测试结果评价
1、范围
本计划的各项测试可以说明项目组成功地利用所学J2EE Web架构知识完成了一个网上购物系统的基本功能,这些功能的具体细节可以参看系统的需求说明书等文档。

本计划所述各项测试均为在服务器为Windows操作系统,MyEclispes + Tomcat运行环境,浏览器也是本机IE的情况下进行的,由于这种软硬件环境的限制,以及同时可以登陆客户人数的限制,可能无法发现一些速度、并发性、安全性、可扩展性等方面的问题。

2、准则
测试结果评价标准:在输入测试数据或命令后,如果产生的输出结果与预期结果一致测试通过,否则不通过。

相关文档
最新文档