J2EE课程设计实训项目蓝梦网上商城系统详细设计说明书第3部分_第1页
J2EE课程设计实训项目蓝梦网上商城系统详细设计说明书第3部分_第2页
J2EE课程设计实训项目蓝梦网上商城系统详细设计说明书第3部分_第3页
J2EE课程设计实训项目蓝梦网上商城系统详细设计说明书第3部分_第4页
J2EE课程设计实训项目蓝梦网上商城系统详细设计说明书第3部分_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、j2ee 课程设计实训项目蓝梦网上商城系统详细设计说明书编写人(签字): 日期: 年 月 日用户方项目代表(签字): 日期:年月日开发方项目代表(签字):日期:年月日质量保证 代表(签字):日期:年月日目 录第1章 引言41.1编写目的41.2背景41.3定义51.4参考资料5第2章 系统的总体结构6第3章 系统mvc架构中各层组件设计61、mvc中的视图层的设计72、mvc中的控制层的设计223 mvc中的模型层设计-业务处理组件274、mvc中的模型层设计-持久层组件的设计35第4章 项目中的各个用例的主要业务流和时序图451、用户注册452、用户登录473、用户修改自己的注册信息494、

2、用户修改密码的时序图505、在线注销516、用户查询517、商品查询528、购物车业务和时序图539、用户账户管理5310、用户账户管理系统时序图5411、查找用户用例的时序图5512、商品管理55第5章 项目中的各个用例的协作图561、用户注册的协作图562、用户登录的协作图583、用户修改密码的协作图594、用户修改注册信息的协作图595、在线注销的协作图606、用户查询的协作图607、用户帐户管理的协作图618、购物车系统的协作图619、后台管理中查找用户用例的协作图6210、管理员管理商品信息业务流的协作图62第7章 项目中的各个活动图621、业务实现过程的活动图-带泳道的用户登录的过

3、程622、注册用户的各种活动633、管理员的各种活动63第8章 项目中的各个状态图631、guest用户在本系统中可能出现的各种状态632、注册用户在本系统中可能出现的各种状态643、管理员的状态图64第9章 系统类与接口的设计651、表示层的类图652、控制层的类图663、业务层的类图674、数据访问层的类图67第10章 输入输出设计701、用户接口(界面设计)702、外部接口70第11章 系统测试703杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料4、mvc中的模型层设计-持久层组件的设计 “持久化”是指通过数据库或其他信息存储方式将系统中需要保存的数据保持在持续性载体中的过程。

4、从广义上讲,持久化不仅包括从系统到信息载体单方面存储的过程,还包括这些信息的读取、管理的整个交互过程。4.1数据访问服务4.2 实体类(持久类)、会话类和数据连接类对数据库中的数据访问的编程实现的相关类可以分成实体类(entity class)、会话类(session class)和数据连接类。通过使用这种数据访问层的模块设计和模式划分,使程序更加模块化,便于开发和维护。4.3 各种类的主要作用1、实体类(持久类)的作用实体类对应于一个表中的记录数据的封装,也就是该类的一个实例对应于表中的一个记录。而且,该类中的属性和记录中的字段是一一对应的(domain entity),也可以与数据库表中的

5、结构不完全一一对应(custom entity)。 本项目中的各个实体类请见下面所示。2、会话类的作用会话类对应于对一个表中的所有记录的操作(也即对实体)。主要为下面的几种类型的操作(执行上述任务的方法通常称为“crud”方法,这是由各项任务的首字母组成的一个缩写词):1) 在数据库中创建记录(create);2) 查找并读取数据库中的记录并把业务实体数据返回给调用程序(reader) ;3) 使用调用程序提供的修改后的业务实体数据更新数据库中的记录(update) ;4) 删除数据库中的记录(delete)注意:本项目中的会话类主要采用基于hibernate中的session来实现的。3、数

6、据连接类的作用为了在后台的数据库的数据源发生变化的情况下,尽可能地减少对业务层、表示层的改动。对数据库的连接本项目中采用j2ee平台中常用的dao的设计模式来实现数据库的连接。表示层业务处理层数据访问层持久实体数据访问逻辑数据连接数据源本项目中的数据连接类如下:4.4 dao模式简介1、dao模式(1)dao是data access object的缩写,他抽象从数据源读取与操作数据的方法。(2)dao模式有两个主要的作用1)抽象数据源这里的数据源是一个广义的概念,泛指所有可能的数据来源和方式,可以理解为数据来源。dao模式的用户不知道数据来自什么数据库,用什么方式连接和访问,也不知道数据服务器

7、的物理位置和逻辑位置,数据原始完全透明的。2)抽象相关的crud逻辑dao模式可以使用任意的java数据访问方式,包括jdbc、ejb、jdb/hibernate以及任何其他的orm工具。dao完全分离业务逻辑与数据逻辑,最大限度地减少开发人员混合业务逻辑与数据逻辑的情况。(3)为什么要提出dao模式将对数据源的访问(也就是获得数据库的连接)抽象为一个类,从而利用数据访问对象可以实现对不同数据库类型和形式的数据资源进行访问。这种模式出现的背景在于数据访问的逻辑极大程度上取决于数据存储的格式比如说关系型数据库、面向对象数据库、磁盘文件等。2、dao的具体实现完整的dao实现包括:1) 业务对象可

8、以是此模式的客户端;2) dao接口定义出dao所需要完成的crud功能;3) dao接口的实现类;4) dao工厂是dao模式的核心,提供透明的底层数据访问实现;5) 数据源可以使各种数据库、xml文件、纯文件系统等;6) 值对象(po)或者数据传输对象(dto)用于把数据返回给客户端。在本项目中,采用普通的javabean类来实现dao。3、基于hibernate框架的dao组件的设计由于本项目在数据访问层的技术选用方面是采用hibernate框架,因此对数据库的连接使用hibernate框架中的hibernate.cfg.xml来进行数据库方面的参数的配置。本项目在dao组件层提供了一个

9、hibernatedaointerface接口以及对该接口实现类hibernatedaobean。当然,对本项目中的dao组件的设计,也可以采用分离的原则-将对用户信息的数据访问和对bbs信息的数据访问设计为两个不同的dao组件。4.5 值对象模式和传输对象模式在本项目中的应用1、值对象(value object)前面在业务层组件设计中所涉及的各个业务实体类,以及在数据访问层中所涉及的各个持久类,其实就是值对象。利用值对象可以封装数据库表或者其它业务数据,同时对成批数据可以采用值对象的集合(如vector或者arraylist)来表示。2、传输对象模式-dto通过减少在分布式通信过程中所产生的

10、消息个数-通常这里所指的通信是在客户端(浏览器)层和web服务器层或者web服务器层和数据库服务层之间,从而提高数据交换的效率。在一个远程调用中,一个单一值对象可以被用来取出一系列相关数据并提供给客户。因此,所应该注意的是:为了能够使值对象成为dto,该值对象的类必须实现serializable接口public class bbsinfovo implements serializable3、基于hibernate的jopo对象由于本项目在数据访问方面采用hibernate技术来实现,而根据hibernate的o/r mapping的技术,将数据库表中的数据转换为object-也就是我们的jo

11、po对象。因此,在本项目中还提供对jopo的设计。主要有下面的各个po类等。4.6 事务处理 1、jdbc中的事务处理方式1)缺省事务处理方式为了确保对数据操作的完整和一致,在程序设计时要充分考虑到事务处理方面的问题。在jdbc中怎样将多个sql语句组合成一个事务?在jdbc中,打开一个连接对象connection时,缺省是auto-commit模式,每个sql语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个sql语句组合成一个事务,要将auto-commit模式屏蔽掉。 2)自定义自己的事务处理要求在auto-commit模式屏蔽掉之后,如果不调用commit(

12、)方法,sql语句不会得到事务确认。在最近一次commit()方法调用之后的所有sql会在方法commit()调用时得到确认。 2、本项目中的事务处理的设计1)在本项目中将可以应用l 基于hibernate框架中的事务处理的应用在本项目中由于在数据访问上采用了hibernate框架,因此在事务处理的具体实现方面,当然可以采用hibernate框架中的事务处理的支持。l 基于spring框架中的事务处理的应用为了在事务处理方面能够得到进一步的简化,我们也可以应用基于spring框架中的事务处理技术的实现-在 spring中对基于hibernate框架中的事务处理进行包装,采用声明方式的事务处理技

13、术的实现。2)本项目中最后实际所采用的事务处理的设计在设计方面,计划将事务管理推迟到service组件的方法,而不是dao组件的方法。只有对业务逻辑方法添加事务才有实际的意义,对于dao方法(基本的crud操作)添加事务操作是没有太大实际意义的。据此将采用基于spring框架中的声明式的事务处理技术来实现本项目的事务处理。并且规定,对于query、list、show、get和find等开头的数据查询方法采用propagation_required,readonly级的事务定义;而对于set、save、update、remove和delete等开头的数据修改方法采用propagation_req

14、uired级的事务定义。4.7 数据库表中的数据缓存的问题可以应用oscache(4.8 本项目的持久层采用hibernate开源框架技术1、持续性框架技术持续性框架一般提供一组软件服务,将“应用”与其使用和操作的“数据源”分离开,隐藏访问这些数据源的api的细节,,这些api组件包括jdbc、jdo以及entity bean等。持续性框架通过统一的dao组件封装这些具体的数据访问逻辑。在各层次之间,一般是通过实现serializable接口的可序列化对象来传递对象化数据。主流的持续性框架一般会提供o/r mapping 功能,应用o/r mapping的优点在于能够以面向对象的方式操纵数据,

15、因此可以直接处理自定义数据实体的业务对象,我们根本不用操心sql语句以及底层存储方式,这样极大地简化了代码并提高了开发效率,对于日后维护扩展都带来极大的便利。基于此,在本项目的持久层实现中,将应用hibernate开源框架技术。2、以系统中的注册功能的实现说明具体的四层架构4.9 本项目的持久层中的异常设计技术在本项目中为了能够达到与特定的持久层实现技术无关的异常处理技术,从而真正地实现服务层与数据访问层的分离,进行异常的自定义设计。第4章 项目中的各个用例的主要业务流和时序图目的是对本项目中的一些关键的业务流进行说明。1、用户注册 用户需要通过注册系统来将他们的有关个人信息登记到本网上商城系

16、统中,这些个人信息是用户购物时所需要提供的。下面将介绍具体的业务需求及实现步骤。1注册系统业务需求简介(1)提供用户界面给用户输入他们的name(姓名)、login name(登录名)、password(密码)、phone(电话号码)、e-mail和registration fee(注册费)。(2)提供用户界面的输入校验(本系统计划采用客户端和服务器端双向验证的方式来校验用户的输入)1) 所有字段不能为空,2) 登录名和密码不能少于6个字符。 3) 电话号码必须按888-888-8888的格式输入。 4) e-mail必须按aaa的格式输入。5) 费用必须输入数字。(3)用户填完注册信息,单击

17、【提交】按钮之后所有的用户信息将会记录到数据库表中。(4)用户注册成功后系统将给出成功注册的信息。2注册系统业务及实现(1)用户输入个人信息后,系统进行页面校验。这里通过struts的validator框架来实现页面校验,返回具体的错误信息让用户修正。(2)用户根据提示的错误信息输入正确的信息。用户输入正确的信息,页面校验通过,action bean将会把用户所输入的保存在form bean中的用户个人信息取出,存入到vo对象中,进而调用业务组件类中的方法实现将用户个人信息存入到数据库。 (3)用户注册成功后系统将给出成功注册的信息。用户个人信息存入到数据库后,action form经过act

18、ionmapping的forward方法将页面消息输出到页面,在actionmessages对象中定义一个注册成功的消息,真正的消息内容在资源文件中,而在actionmessages对象中存入的是一个成功信息的关键词。3实现注册系统时序图下图是实现业务的时序图,显示了实现上述业务逻辑时的类之间的调用顺序关系。2、用户登录本系统是通过登录系统来实现安全管理,有些页面(如购物车)只有用户登录后才能进入。下面将介绍具体的业务需求及实现步骤。1登录系统业务需求简介下面是登录系统业务需求简介。(1)创建用户的登录界面。(2)对用户的用户名和密码进行校验。(3)如用户登录失败,则需要输出错误信息。(4)如用户登录成功,则输出成功信息,并保留用户session,因而用户登录其他页面(如shopping cart购物车)时不需要再次登录。2登录系统业务及实现(1)进入“登录”界面页面显示层是通过login.jsp来实现的,业务逻辑是通过action bean- loginaction调用模型层来实现的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论