第三章 网上书店详细设计 3-1 需求分析
网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。 根据网上书店的基本需求,本系统需要完成的具体任务如下: A. 书图查询: 当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。 B. 购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。 C. 订单处理:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。 D. 会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。 3-2 总体设计 系统组成 下表中给出了构成网上书店系统的各个组件,通过下表,可以从宏观上了解各个组件的功能。 用户表示层(视图) 控制处理层(控制器) 业务逻辑层(模型) bookMain.jsp ActionForm Action DB BookShow.jsp LoginForm FirstAction Constants BookShopCart.jsp UserForm BookDetailAction Book OrderAddress.jsp BookIdForm BookSearchAction BookCat OrderConfirm.jsp BookCatIdForm LoginAction Order UserLogin.jsp PageIdForm BookBuyAction ShopCart UserRegister.jsp BookShopCartFrom AddrConfirmAction User OrderHistory.jsp BookSearchForm ClearShopCartAction Wrong.jsp DeliveryForm OrderDelAction OrderIdForm OrderHistoryAction PageCtrlAction RegistAction UpdateShopCartAction 3-3 功能设计
1.图书信息管理 该模块实现图书书目信息的分类显示,也是提供图书信息依据书名及作者信息快速搜索的功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于客户了解所购商品。 2.购物车管理 用于维护每一个进入网上书店的客户对应的购物车。即将客户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处理。 3.会员注册 实现网上书店客户信息的注册、及身份验证。由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的联系方式、通信地址等信息。 4.订单处理 根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应的个人信息生成订单,以便于后续进行送货处理。 3-4 数据库设计与实现 3-4-1 数据库的需求分析
依据网上书店的处理需求,对就数据表的设计及功能如下。 A. 图书基本信息表:存放网上书店所销售图书的基本信息。 B. 图书分类基本信息表:存放网上书店所提供图书分类的信息。 C. 客户基本信息表:存放书店客户的基本信息。 D. 订单信息表:存放与客户相关的订单的基本信息。 E. 订单条目详细信息表:存放订单中详细条目的基本信息。 3-4-2 创建数据表的脚本
3-6 网上书店各页面功能 3-6-1 网上书店首页bookMain.jsp详细功能及描述 获取图书分类信息以及图书基本信息集合 循环显示图书分类信息 提交显示指定分类图书信息的请求,同时传递对应图书分类编号 提交书目搜索请求及搜索条件的表单 提交搜索关键字的表单元素 选择搜索条件的表单元素 显示图书记录总数、当前页面编号以及总页数 循环显示对应图书书目信息 显示图书名称、价格、销售价格、作者信息 提交显示图书详细信息请求的超链接 提交分页显示请求的超链接,同时提交指定页面编号 在本页面中,当单击选择书目分类时,将提交“bookSearch.do?bookCatId=<%=bookCat.getId()%mode=1”请求,以便于获取对应图书分类的相关信息。当选择了查询依据,并且输入了对应关键字,单击“搜索”按钮时,将提交“bookSearch.do”请求,同时提交查询条件,进行后续书目信息搜索的处理。当在书目列表中单击查看详细信息请求时,将发出“bookDetail.do”请求,同时传递对应图书记录的编号,以获取指定图书更加详细的信息。此外,在单击“首页”、“上页”、“下页”超链接后,将分别提交“bookPage.dopageId=<%=0%>”、“bookPage.dopageId=<%=schSta.getPageId()-1%>”、“bookPage.dopageId=<%= schSta.getPageId()+1%>”等请求,以实现页面的跳转 3-6-2 显示图书详细信息bookShow.jsp页面详细功能及描述 依据图书记录编号获取待显示详细信息的图书类型的对象 分别显示该图书对象的详细信息 显示图书封面图片、名称、详细介绍、价格、销售价格 单击“购买”按钮后,将提交放入购物车的请求 显示图书目录 本页面是在控制器响应了网上书店主页提交的查看图书详细信息请求,即“bookDeatial.do”请求后,跳转到的页面。在该页面中将获取到的指定图书详细信息显示出来,同时如果用户单击“购买”按钮,将提交“bookBuy.do?bookId=<%=book.getId()%>”请求,进行后续放入购物车的处理。
3-6-3显示购物车信息bookShopCart.jsp页面详细功能及描述 获取该用户购物车中信息的集合 提交更新购物车请求的表单 循环显示购物车中的每一条购物记录信息 设置购买数量的文本框 显示图书销售价格 显示图书总价 从购物车中移除购买记录信息 更新订单按钮 提交继续购书请求的超链接 提交清空购物车请求的超链接 提交结算付款请求的超链接 本页面是在用户选择购买某种图书商品后,进入的页面。在该页面中将显示该用户购物车中现有的所有购买需求记录。同时提供更新购物车的操作界面,例如,可以输入购买数量或者选择删除购买记录。单击“更新订单”按钮后,将提交“updateShopCart.do”请求,进行更新购物车信息的处理。此外,也可以单击“继续购书”按钮,提交“bookSearch.do”请求返回网上书店主页面继续购书,或者单击“清空购物车”按钮提交“clearShopCart.do”请求。同时,如果用户确认去收银台,则可以单击“结算付款”按钮跳转到“userLogin.jsp”页面进行用户登录。 3-6-4网上书店客户登录userLogin.jsp页面详细功能及描述
提交用户登录请求,同时提交登录用户信息的表单 提交登录用户用户名及密码的表单元素 登录按钮 提交新用户注册请求的超链接 本页面是客户在购物车页面单击“结算付款”按钮后跳转过来的页面,在该页面中,用户在表单中输入用户名及密码,单击“用户登录”按钮后,将提交“login.do”请求,以便于进行后续获取用户相关信息的处理,对于没有用户身份的新客户,可以在本页面中单击“新用户注册”按钮,跳转到“userRegister.jsp”页面进行用户注册。 3-6-5 网上书店客户注册userRegister.jsp页面详细功能及描述 提交新用户注册请求,同时提交新用户注册信息的表单 提交注册用户姓名、地址、电子邮件地址、电话、用户名、密码以及确认密码的表单元素 注册按钮 在本页面中注册用户可以在表单中输入对应的注册信息,在单击“注册”按钮后,将提交“regist.do”请求,同时提交新用户的相关注册信息,以便于进行后续新用户注册的处理。 3-6-6 选择送货方式及付款方式orderAddress.jsp页面详细功能及描述 获取客户信息 提交选择送货方式及付款方式的表单 显示客户信息、姓名、地址、电话、送货方式、付款方式 |