JWAP系统详细设计说明书.docx
《JWAP系统详细设计说明书.docx》由会员分享,可在线阅读,更多相关《JWAP系统详细设计说明书.docx(23页珍藏版)》请在冰豆网上搜索。
JWAP系统详细设计说明书
JWAP系统说明书
详
细
设
计
编写人
Sevenstar
编写日期
2009.12.17
1.导言
1.1目的
该文档的目的是描述《网上购物系统》项目的详细设计,其主要内容包括:
·系统功能简介;
·系统底层数据库的ER图;
·网上购物系统的流程图;
·系统详细设计简述;
·各个模块的三层划分
·DAO层设计
·biz层设计
·过滤器的设计
·监听器的设计
·系统功能流程图;
1.2范围
该文档定义了系统的各个模块和模块接口,以及页面跳转的过程但未确定单元的具体实现,这部分内容将在程序实现中确定。
1.3缩写说明
JSP:
JavaServerPage(Java服务器页面)的缩写,一个脚本化的语言。
1.4术语定义
JavaBean:
JavaBean是一种JAVA语言写成的可重用组件。
Database:
数据库,按照数据结构来组织、存储和管理数据的仓库。
2.1系统设计概述
根据《网上购物系统》的概要设计,本系统按照功能分解,可以分为客户端子系统和管理端子系统。
根据页面流的设计,管理端系统分为登陆管理、用户管理、产品管理、类别管理、订单管理5个模块,客户端系统分为自服务、购物车管理2个模块。
它们的关系如图C-1所示,以下将对各个部分分别进行详细设计。
图C-1模块设计
2.2网上购物系统的流程图如下;
3.详细设计概述
本系统采用JSP+JavaBean+Database的3层架构。
JSP负责表现,JavaBean负责业务逻辑,Database负责持久保持数据。
三层架构(3-tierapplication)通常意义上的三层架构就是将整个业务应用划分为:
表现层(VIEW)、业务逻辑层(BIZ)、数据访问层(DAO)。
区分层次的目的即为了“高内聚,低耦合”的思想。
1、表现层(VIEW):
通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BIZ):
针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAO):
该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
4.登陆管理模块详细设计
4.1表现层(VIEW)
4.1.1管理员登陆页面
输入(input)
WebRoot/jsp/user/index3.jsp
导向(Forword)
登陆成功WebRoot/jsp/adminis/index2.jsp;登陆失败的话留在原页面
输出
ResultData
SessionData
session.setAttribute("admin",admin);,将管理员存储在Session中.
功能说明
进行管理员登陆
4.1.2用户登录页面
输入(input)
WebRoot/jsp/user/index3.jsp
导向(Forword)
登陆成功WebRoot/jsp/index/index1.jsp;登陆失败的话留在原页面
输出
ResultData
SessionData
session.setAttribute("user",user);,将用户存储在Session中.
功能说明
进行用户登陆
4.2业务逻辑层(biz)
4.2.1管理员登陆页面
JavaBean
com.taren.jwap.biz.impl.AdminServiceImpl.java
方法名称
publicAdminlogin(StringadminName,Stringpassword)
方法说明
判断登录的用户是否是管理员
输入参数
用户名adminName类型(String)
密码password类型(String)
输出参数
Admin
事务管理
否
处理流程
根据用户名和密码查询是否存在这个管理员
主要算法说明
引用的其他Class
出错处理
UserNotFoundException,PasswordNotCorrectException
4.2.2用户登陆页面
JavaBean
com.taren.jwap.biz.impl.UserServiceImpl.java
方法名称
publicUserlogin(StringuserName,Stringpassword)
方法说明
判断登录的用户是否存在
输入参数
用户名userName类型(string)
密码password类型(string)
输出参数
Admin
事务管理
否
处理流程
根据用户名和密码查询是否存在这个用户
主要算法说明
引用的其他Class
出错处理
UserNotFoundException,PasswordNotCorrectException
4.3数据访问层(DAO)
4.3.1管理员登陆页面
方法
publicAdminquery(StringadminName,Stringpassword)
输入参数
用户名adminName
密码password
输出参数
管理员Admin
描述
根据传入的用户名和密码返回是否是管理员Admin的对象
SQL脚本
算法说明
4.3.2用户登陆页面
方法
publicUserquery(Stringusername,Stringpassword)
输入参数
用户名username
密码password
输出参数
用户User
描述
根据传入的用户名和密码返回是否是用户User的值
SQL脚本
算法说明
5.购物车管理模块详细设计
5.1表现层(view)
5.1.1添加
输入(input)
可以把商品加入到购物车的多个jsp页面
导向(Forword)
添加后回到购物车页面WebRoot/jsp/shoopcar/index4.jsp
输出
ResultData
SessionData
功能说明
进行购物车条目添加
备注:
购物车条目包括商品、商品数量。
商品是一个实体类,包括许多属性。
购物车抽取几个属性显示。
5.1.2删除
输入(input)
WebRoot/jsp/shoopcar/index4.jsp
导向(Forword)
删除后回到购物车页面WebRoot/jsp/shoopcar/index4.jsp
输出
ResultData
SessionData
功能说明
进行购物车条目删除
5.1.3修改
输入(input)
WebRoot/jsp/shoopcar/index4.jsp
导向(Forword)
修改后回到购物车页面WebRoot/jsp/shoopcar/index4.jsp
输出
ResultData
SessionData
功能说明
进行购物车条目修改(修改商品数量)
5.1.4下单
输入(input)
WebRoot/jsp/shoopcar/index4.jsp
导向(Forword)
如果用户已登录,则跳转到WebRoot/jsp/shoopcar/order_info.jsp
否则跳转到登录界面WebRoot/jsp/user/index3.jsp
输出
ResultData
SessionData
功能说明
确认所要购买的商品然后提交购买信息
5.2业务逻辑层(BIZ)
5.2.1添加
JavaBean
com.tarena.jwap.biz.impl.ShopCartServiceImpl.java
方法名称
publicvoidaddOrderLine(OrderLineorderline)
方法说明
进行购物车条目添加
输入参数
购物车条目orderline(OrderLine类型)
输出参数
无
事务管理
否
处理流程
将购物车条条目添加到购物车中
主要算法说明
引用的其他Class
出错处理
5.2.2删除
5.2.2.1删除所有
JavaBean
com.tarena.jwap.biz.impl.ShopCartServiceImpl.java
方法名称
publicvoiddeleteAllOrderLine()
方法说明
进行购物车条目删除
输入参数
输出参数
无
事务管理
否
处理流程
将购物车所有条目从购物车中清除
主要算法说明
引用的其他Class
出错处理
5.2.2.2删除指定的订单项
JavaBean
com.tarena.jwap.biz.impl.ShopCartServiceImpl.java
方法名称
publicvoiddeleteOrderLineById(LongproductId)
方法说明
进行购物车条目删除
输入参数
商品id(Long类型)
输出参数
无
事务管理
否
处理流程
将购物车条条目从购物车中删除
主要算法说明
引用的其他Class
出错处理
5.2.3修改
5.2.3.1修改
JavaBean
com.tarena.jwap.biz.impl.ShopCartServiceImpl.java
方法名称
publicvoidsetCount(LongproductId,intcount)
方法说明
修改购物车条目中商品的数量
输入参数
商品数量count(int类型)
商品id
输出参数
无
事务管理
否
处理流程
将购物车条条目中商品的数量赋新值
主要算法说明
引用的其他Class
出错处理
5.2.3.2修改
JavaBean
com.tarena.jwap.ShopCartServiceImpl.java
方法名称
publicdoublesetSumPrice(LongproductId,intcount)
方法说明
修改购物车条目中商品钱数的小计
输入参数
商品数量count(int类型)
商品id
输出参数
Double购买此商品数为count时的总价格
事务管理
否
处理流程
将购物车条条目中商品的钱数合计赋新值
主要算法说明
引用的其他Class
出错处理
5.2.4下单
JavaBean
com.tarena.jwap.ShopCartServiceImpl.java
方法名称
publicintbuy(Orderorder)
方法说明
下商品订单
输入参数
order(Order类型)
输出参数
订单号(int类型)
事务管理
否
处理流程
将购物车中商品添加到数据库
主要算法说明
引用的其他Class
出错处理
5.3数据访问层(DAO)
5.3.1添加
无
5.3.2删除
无
5.3.3修改
无
5.3.4下单
方法
OrderDaoImpl类中的publicintadd(Orderorder)
输入参数
订单类
输出参数
订单号
描述
根据用户将订单类和订单项添加到数据库中使得用户和订单进行关联
SQL脚本
"insertintot_orderordervalues(null,?
?
?
?
)";
"insertintosalesitemvalues(null,?
?
?
?
)";
算法说明
6.订单管理模块详细设计
6.1表现层(view)
6.1.1订单明细
输入(input)
WebRoot/jsp/order/index5.jsp
导向(Forword)
点击“订单明细”链接进入WebRoot//jsp/order/pro_order.jsp页面
输出
ResultData
SessionData
功能说明
查看订单的详细信息
6.1.2订单处理
输入(input)
WebRoot//jsp/order/pro_order.jsp
导向(Forword)
点击“付款方式”链接进入WebRoot/admin/OrderModify.jsp页面
输出
ResultData
SessionData
功能说明
修改订单的状态
6.2业务逻辑层(BIZ)
6.2.1订单明细
JavaBean
com.tarena.jwap.biz.impl.OrderServiceImpl.java
方法名称
publicOrderfinfOrderById(Longorderid)
方法说明
显示订单明细
输入参数
订单号(Long类型)
输出参数
订单类Order
事务管理
否
处理流程
根据订单号列出订单的详细信息
主要算法说明
引用的其他Class
出错处理
6.2.2订单处理
6.2.2.1订单处理
JavaBean
com.tarena.jwap.biz.impl.OrderServiceImpl.java
方法名称
publicvoidupdateStatus(Orderorder)
方法说明
修改订单的状态
输入参数
订单类order(Order类型)
输出参数
无
事务管理
否
处理流程
输入订单类修改订单的状态
主要算法说明
引用的其他Class
出错处理
6.2.2.2订单处理
JavaBean
com.tarena.jwap.biz.impl.OrderServiceImpl.java
方法名称
publicvoidupdatePayWay(Orderorder)
方法说明
修改订单的付款方式
输入参数
订单类order(Order类型)
输出参数
无
事务管理
否
处理流程
主要算法说明
引用的其他Class
出错处理
6.3数据访问层(DAO)
6.3.1订单明细
方法
publicOrderquery(Longid)
输入参数
订单号id
输出参数
订单类SalesOrder
描述
根据订单id查找订单类的详细信息
SQL脚本
算法说明
6.3.2订单处理
方法
publicvoidupdateStatus(Orderorder)
输入参数
订单类order
输出参数
无
描述
输入类修改订单的状态
SQL脚本
算法说明
7.商品管理模块详细设计
7.1表现层(view)
7.1.1添加类别
输入(input)
WebRoot/jsp/adminis/pro_manage.jsp
导向(Forword)
点击“添加类别”链接进入WebRoot/jsp/adminis/add_cat.jsp页面
输出
ResultData
SessionData
功能说明
增加商城的产品种类
7.1.2修改类别
输入(input)
WebRoot/jsp/adminis/pro_manage.jsp
导向(Forword)
点击“修改”链接进入WebRoot/jsp/adminis/modify_cat.jsp页面
输出
ResultData
SessionData
功能说明
对选定的类别进行修改
7.1.3删除类别
输入(input)
WebRoot/jsp/adminis/pro_manage.jsp
导向(Forword)
点击“删除”链接进入WebRoot/jsp/adminis/pro_manage.jsp页面
输出
ResultData
SessionData
功能说明
把选定的类别从数据库中删除
7.1.4添加商品
输入(input)
WebRoot/jsp/adminis/info.jsp
导向(Forword)
点击“添加产品”链接进入WebRootjsp/adminis/add_pro.jsp页面
输出
ResultData
SessionData
功能说明
增加商城中的产品
7.1.5修改商品信息
输入(input)
WebRoot/jsp/adminis/info.jsp
导向(Forword)
点击“修改”链接进入WebRoot//jsp/adminis/modify_pro.jsp页面
输出
ResultData
SessionData
功能说明
修改商品信息
7.1.6删除商品
输入(input)
WebRoot/jsp/adminis/pro_manage.jsp
导向(Forword)
点击“删除”链接进入WebRoot/jsp/adminis/pro_manage.jsp页面
输出
ResultData
SessionData
功能说明
删除商品从数据库中
7.1.7查询商品
输入(input)
WebRoot/jsp/adminis/pro_manage.jsp
导向(Forword)
点击“查询”链接进入WebRoot/jsp/adminis/pro_manage.jsp页面
输出
ResultData
SessionData
功能说明
查询商品
7.2业务逻辑层(BIZ)
7.2.1添加类别
JavaBean
com.tarena.jwap.biz.impl.ChildCategoryServiceImpl.java
方法名称
PublicvoidaddChildCategory(ChildCategorychildcategory)
方法说明
输入参数
商品的最底层类别(ChildCategry类型)
输出参数
事务管理
否
处理流程
主要算法说明
引用的其他Class
出错处理
7.2.2修改类别
JavaBean
com.tarena.jwap.biz.impl.ChildCategoryServiceImpl.java
方法名称
PublicvoidupdateChildCategory(Longchildcategoryid)
方法说明
对产品的类别进行修改
输入参数
商品的最底层类别id(Long类型)
输出参数
务
事务管理
否
处理流程
主要算法说明
7.2.3删除类别
JavaBean
com.tarena.jwap.biz.impl.ChildCategoryServiceImpl.java
方法名称
PublicvoiddeleteChildCategory(Longchildcategoryid)
方法说明
对产品的类别删除
输入参数
商品的最底层类别id(Long类型)
输出参数
务
事务管理
否
处理流程
主要算法说明
7.2.4增加商品
JavaBean
com.tarena.jwap.biz.impl.ProductServiceImpl.java
方法名称
PublicvoidaddProduct(Product)
方法说明
增加商品
输入参数
商品类(Long类型)
输出参数
务
事务管理
否
处理流程
主要算法说明
7.2.5修改商品
JavaBean
com.tarena.jwap.biz.impl.ProductServiceImpl.java
方法名称
PublicvoidupdateProduct(Longproductid)
方法说明
对产品进行修改
输入参数
商品id(Long类型)
输出参数
务
事务管理
否
处理流程
主要算法说明
7.2.6删除商品
JavaBean
com.tarena.jwap.biz.impl.ProductServiceImpl.java
方法名称
PublicvoiddeleteProductById(Longproductid)
方法说明
对产品进行删除操作
输入参数
商品的id(Long类型)
输出参数
务
事务管理
否
处理流程
主要算法说明
7.2.7查询商品
JavaBean
com.tarena.jwap.biz.impl.ProductServiceImpl.java
方法名称
PublicvoidfindProductByCategoryId(Longcategoryid)
方法说明
查询商品
输入参数
商品种类的categoryid(Long类型)
输出参数
务
事务管理
否
处理流程
主要算法说明
8过滤器的设计
此过滤器实现了对字符编码方式的过滤
可以有效的解决数据库中出现乱码的问题
9监听器的设计
此监听器主要负责当用户访问购物网站时即开启会话时要为访问者创建购物车也就是把购物车保存到会话中
9Dao层的设计
通过这个工厂获取对应的DAO,然后使用DAO进行数据库操作
10业务层的设计
通过这个工厂获取对应的业务方法,然后和表现层进行交互
数据库设计的E-R图