图书管理系统开发文档.docx
- 文档编号:24671028
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:12
- 大小:86.25KB
图书管理系统开发文档.docx
《图书管理系统开发文档.docx》由会员分享,可在线阅读,更多相关《图书管理系统开发文档.docx(12页珍藏版)》请在冰豆网上搜索。
图书管理系统开发文档
图书管理系统设计
1.环境搭建
1.1.功能需求分析
1.1.1.前台管理
●用户模块
⏹注册
Øregister.jsp发出请求
参数:
表单数据
ØUserServlet#method:
registe()
将表单数据封装到Userbean中
生成uid(uuid方式)、code(激活码)
输入数据合法性校验:
♦非法则向页面发送错误信息
♦输入数据合法性校验通过,调用UserService的registe()方法
注册:
♦若抛出异常,则保存错误信息并发送到register.jsp页面
♦若注册成功
✧发送激活邮件
✧跳转到msg.jsp页面
ØUserService#method:
register()
获取Servlet传送过来的表单数据
服务校验:
♦调用UserDao的findUserByName()方法校验用户名是否已被注册,若已被注册,抛出异常“用户名已被注册”
♦调用UserDao的findUserByName()方法校验邮箱是否已被使用,若已被使用,抛出异常“邮箱已被使用”
♦服务校验通过,调用UserDao的add()方法将新用户数据数据添加到数据库中
ØUserDao
#method:
findUserByName()按用户名查询用户方法
#method:
findUserByEmail()按用户邮箱查询用户方法
#method:
addUser()添加用户到数据库中
⏹激活
Ø激活邮件中点击激活链接,发出请求
参数:
激活码code
ØUserServlet:
#methodactive()
获取激活码,调用UserService的active方法
若抛出异常,保存错误信息并转发到用于显示的msg.jsp页面
若成功,保存成功信息到用于显示的msg.jsp页面
ØUserService:
#methodactive()
调用UserDaofindUserByCode方法查询数据库,
若查询到结果为null,抛出异常UserException,”激活码已失效,请重新获取”
若查询到结果不为空,调用UserDaoupdateState方法将用户状态设置为已激活
ØUserDao:
#methodfindUserByCode
按用户的激活码查询用户
#methodupdateState
将新用户的状态设置为已激活
⏹登录
Ølogin.jsp发送请求
参数:
用户名,用户密码
ØUserServlet:
#methodlogin()
获取用户名,用户密码,封装到User对象。
然后调用UserService的login方法
若抛出异常,保存错误信息并转发到用于显示的msg.jsp页面
若成功,跳转到主页面。
ØUserService:
#methodlogin()
调用UserDao的findUserByName()方法查询数据库
若查询到结果为null,抛出异常UserException”用户名不存在!
”
若查询结果不为null,则比较用户输入的密码与数据库中的是否相同
若不同,抛出异常UserException“您输入的密码错误!
请重新输入!
”
若相同,则查看该用户状态是否为已激活状态,
若不是,抛出异常UserException“当前账户未激活,请激活后再登录!
”
若是,跳转到主页面
ØUserDao:
#methodfindUserByUserName()按用户名查询用户
⏹退出
Ø点击退出按钮发送请求
ØUserServlet:
#methodquit()
销毁session并跳转到主页面
●分类模块
⏹查看所有分类
Ømain.jsp发送请求
ØCategoryServlet:
#methodfindAllCategory()
调用CategoryService的方法完成查询
将查询的结果保存到request中并转发到left.jsp中
ØCategoryService:
#methodfindAllCategory()
调用CategoryDao的方法完成查询并将查询结果返回
ØCategoryDao:
#methodfindAllCategory()
查询所有图书分类
●图书模块
⏹查看所有图书
Øleft.jsp发送请求
ØBookServlet:
#methodfindAllCategory()
调用BookService中的方法完成查询
并将查询的结果保存到request中并转发到list.jsp中
ØBookService:
#methodfindAllCategory()
调用BookDao中的方法完成查询并将结果返回
ØBookServlet:
#methodfindAllCategory()
查询所有图书
⏹按照某一分类查询图书
Øleft.jsp发送请求
ØBookServlet:
#methodfindBooksPerCategory()
获取请求中传来的图书分类id参数
调用BookService中的方法完成查询
并将查询的结果保存到request中并转发到list.jsp中
ØBookService:
#methodfindBooksPerCategory(Stringcid)
调用BookDao中的方法完成查询并将结果返回
ØBookServlet:
#methodBooksPerCategory(cid)
按照图书分类id查询该分类下所有图书
⏹查询某一图书的详细信息
Ølist.jsp发送请求
ØBookServlet:
#methodfindDescribeForBook()
获取请求中传来的图书id参数
调用BookService中的方法完成查询
并将查询的结果保存到request中并转发到desc.jsp中
ØBookService:
#methodfindDescribeForBook(Stringbid)
调用BookDao中的方法完成查询并将结果返回
ØBookServlet:
#methodBooksPerCategory(bid)
按照图书id查询该图书详细信息
●购物车模块
⏹添加商品条目
Ødesc.jsp发出请求
请求参数:
图书id图书数量count
ØCartServlet:
#methodadd()
获取session中登录用户的购物车对象
获取request中传来的用户购买的图书id和图书数量count
创建购物车商品条目对象cartItem
使用bid通过BookService获取图书信息并将图书信息添加到cartItem
将cartItem添加到用户购物车并跳转到list.jsp页面
Ø在list.jsp中,获取session域中购物车商品数据并循环遍历显示
⏹删除指定商品条目
Ølist.jsp发出请求
请求参数:
图书bid
ØCartServlet:
#methoddelete(Stringbid)
获取session中登录用户的购物车对象
获取request中传来的用户需要删除的图书id
调用购物车对象的删除方法删除商品条目
跳转到list.jsp页面
⏹清空所有商品条目
Ølist.jsp发出请求
ØCartServlet:
#methodclearCart()
获取session中登录用户的购物车对象
调用购物车对象的清空方法清空购物车商品
⏹我的购物车
Øtop.jsp发出请求,跳转到list.jsp页面
●订单模块
⏹生成订单
Ølist.jsp发出请求
ØOrderServlet:
#methodaddOrder()
创建订单对象order
获取sessionK中登录用户的购物车对象
将购物车中的商品条目添加到订单order中
调用OrderService中的方法完成订单创建
ØOrderService:
#methodaddOrder()
创建生成订单事务
调用OrderDao中的方法完成订单创建
提交事务
ØOrderDao:
#methodaddOrder()
将订单信息添加到orders表中
将订单条目信息添加到orderitem表中
⏹按用户查询订单(我的订单)
Øtop.jsp发出请求
ØOrderServlet:
#methodfindMyOrders(Stringuserid)
获取session域中当前登录用户的id
调用OrderService中的方法查询当前用户的所有订单
保存当前用户订单列表到request域中并转发到list.jsp中
ØOrderService:
#methodfindMyOrders(Stringuserid)
调用OrderDao中的方法查询当前用户的所有订单并返回结果集合
ØOrderDao:
#methodfindMyOrders(Stringuserid)
按照用户id查询当前用户所有订单
⏹订单查询(当前订单)
ØList.jsp发出请求
请求参数:
订单oid
ØOrderServlet:
#methodgetMyOrders(Stringoid)
获取request中的订单oid
调用OrderService中的方法查询用户订单
保存订单信息到request域中并转发到desc.jsp
ØOrderService:
#methodgetMyOrders(Stringoid)
调用OrderDao中的方法查询用户订单并返回结果
ØOrderDao:
#methodgetMyOrders(Stringoid)
按照订单oid查询订单详细信息
⏹结算(跳转到银行进行结算并返回支付结果)
ØDesc.jsp发出请求
ØOrderServlet:
#methodpayForOrder()
准备易宝14个支付参数
重定向到易宝支付网关
跳转到银行页面
易宝响应结果并调用#methodback()
#methodback()
获取易宝11个响应参数
校验调用者是否易宝
若不是,保存异常信息到request域中并发送到msg.jsp
若是,执行业务操作
获取订单状态若为1则更改为2
判断回调方式若为点对点,响应success
⏹完成订单确认
ØList.jsp发出请求
请求参数:
订单oid
ØOrderServlet:
#methodconfirmOrder()
获取订单oid
调用OrderService查询订单状态
若无异常:
保存成功信息到request域并转发到msg.jsp
若有异常:
保存异常信息到request域并转发到msg.jsp
ØOrderService:
#methodconfirmOrder(Stringoid)
调用OrderDao方法查询订单状态
判断订单状态是否为3:
已付款状态
若不是:
抛出异常OrderException“非法用户访问”
若是:
调用OrderDao方法修改订单状态
ØOrderDao:
#methodgetOrderState(Stringoid)
通过订单oid获取订单状态
#methodupdateOrderState(Stringoid)
通过订单oid修改订单状态
1.2.导入项目原型
●用户模块
●图书分类模块
●图书模块
●购物车模块
●订单模块
1.3.框架构建
1.3.1.开发环境及依赖jar包导入
●开发环境:
⏹windows7ultimateservicepack1
⏹ide:
myeclipse10.0
⏹jdk7.0
●数据库:
⏹mysql5.5.53
●依赖jar包导入
⏹数据库:
◆mysql5.5驱动jar包
◆c3p0jar包+配置文件
◆dbUtilsjar包
◆javamailjar包(mail,activation包)
◆common组件1jar包(common-beanUtils,common-logging)
◆common组件2jar包(common-fileUpload,common-io)
◆ajaxjar包(json-lib)
◆log4jjar包
◆第三方jar包(bg-toolsjar包)
1.3.2.项目文件夹结构
1.3.3.表设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 开发 文档