发布时间 : 星期一 文章图书管理系统开发文档更新完毕开始阅读fe969609b80d6c85ec3a87c24028915f804d8491
系统设计说明书
图书管理系统设计
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: #method active()
获取激活码,调用UserService 的active方法
若抛出异常,保存错误信息并转发到用于显示的msg.jsp页面 若成功,保存成功信息到用于显示的msg.jsp页面 ? UserService:#method active()
调用UserDao findUserByCode方法查询数据库,
若查询到结果为null ,抛出异常UserException,”激活码已失效,请重新获取”
若查询到结果不为空,调用UserDao updateState方法将用户状态设置为已激活
? UserDao :#method findUserByCode
按用户的激活码查询用户 #method updateState
将新用户的状态设置为已激活
? 登录
? login.jsp发送请求
参数:用户名,用户密码 ? UserServlet:#method login()
获取用户名,用户密码,封装到User对象。然后调用UserService的login方法
若抛出异常,保存错误信息并转发到用于显示的msg.jsp页面 若成功,跳转到主页面。 ? UserService:#method login()
调用UserDao 的 findUserByName()方法查询数据库
若查询到结果为null,抛出异常UserException”用户名不存在!” 若查询结果不为null,则比较用户输入的密码与数据库中的是否相同
若不同,抛出异常UserException“您输入的密码错误!请重新输入!”
若相同,则查看该用户状态是否为已激活状态, 若不是,抛出异常UserException“当前账户未激活,请激活后再登录!”
若是,跳转到主页面
? UserDao:#method findUserByUserName()按用户名查询用户
? 退出
? 点击退出按钮发送请求 ? UserServlet:#method quit()
销毁session并跳转到主页面
系统设计说明书
? 分类模块
? 查看所有分类
? main.jsp 发送请求
? CategoryServlet:#method findAllCategory()
调用CategoryService的方法完成查询
将查询的结果保存到request中并转发到left.jsp中 ? CategoryService:#method findAllCategory()
调用CategoryDao的方法完成查询并将查询结果返回 ? CategoryDao:#method findAllCategory()
查询所有图书分类
? 图书模块
? 查看所有图书
? left.jsp发送请求
? BookServlet:#method findAllCategory()
调用BookService中的方法完成查询
并将查询的结果保存到request中并转发到list.jsp中 ? BookService :#method findAllCategory()
调用BookDao中的方法完成查询并将结果返回 ? BookServlet:#method findAllCategory()
查询所有图书
? 按照某一分类查询图书
? left.jsp发送请求
? BookServlet:#method findBooksPerCategory()
获取请求中传来的图书分类id参数 调用BookService中的方法完成查询
并将查询的结果保存到request中并转发到list.jsp中 ? BookService :#method findBooksPerCategory (String cid)
调用BookDao中的方法完成查询并将结果返回 ? BookServlet:#method BooksPerCategory (cid)
按照图书分类id查询该分类下所有图书
? 查询某一图书的详细信息
? list.jsp发送请求
? BookServlet:#method findDescribeForBook()
获取请求中传来的图书id参数
调用BookService中的方法完成查询
并将查询的结果保存到request中并转发到desc.jsp中 ? BookService :#method findDescribeForBook (String bid)
调用BookDao中的方法完成查询并将结果返回 ? BookServlet:#method BooksPerCategory (bid)
按照图书id查询该图书详细信息
系统设计说明书
? 购物车模块
? 添加商品条目
? desc.jsp发出请求
请求参数:图书id 图书数量count ? CartServlet:#method add()
获取session中登录用户的购物车对象
获取request中传来的用户购买的图书id和图书数量count 创建购物车商品条目对象cartItem
使用bid通过BookService获取图书信息并将图书信息添加到cartItem 将cartItem添加到用户购物车并跳转到list.jsp页面
? 在list.jsp中,获取session域中购物车商品数据并循环遍历显示
? 删除指定商品条目
? list.jsp发出请求
请求参数:图书bid
? CartServlet:#method delete(String bid)
获取session中登录用户的购物车对象
获取request中传来的用户需要删除的图书id 调用购物车对象的删除方法删除商品条目 跳转到list.jsp页面
? 清空所有商品条目
? list.jsp发出请求
? CartServlet:#method clearCart()
获取session中登录用户的购物车对象
调用购物车对象的清空方法清空购物车商品
? 我的购物车
? top.jsp发出请求,跳转到list.jsp页面
? 订单模块
? 生成订单
? list.jsp发出请求
? OrderServlet:#method addOrder()
创建订单对象order
获取session K中登录用户的购物车对象 将购物车中的商品条目添加到订单order中 调用OrderService中的方法完成订单创建 ? OrderService:#method addOrder()
创建生成订单事务
调用OrderDao中的方法完成订单创建 提交事务
? OrderDao:#method addOrder()
将订单信息添加到orders表中
将订单条目信息添加到orderitem表中