2022年网上图书订购系统 .pdf





《2022年网上图书订购系统 .pdf》由会员分享,可在线阅读,更多相关《2022年网上图书订购系统 .pdf(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络程序设计课程设计文档实验名称网上书店系统实验人学号 10070XXX姓名 XXX 报告完成日期 2013年 5 月 29 日成绩指导教师签字年月日名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 33 页 -目录:一、功能需求.1 二、整体架构设计.1 三、具体实现与算法设计.2 四、网上书店系统全部实现代码.8 五、测试及结果.27名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 33 页 -1 一、功能需求1、提供关键字的查询功能。2、提供购物车,保存选中的图书和数量。3、提供图书定单。4、支持反复查询、图书选择和定单浏览。5、提供浏览器界面。6、购物车本次会话
2、有效。二、整体架构设计1、架构思想:基于J2EE 体系结构(1)表示逻辑层:JSP(2)控制逻辑层:Servlet+JavaBean+会话 Bean(3)数据表示层:实体Bean 2、页面转移关系设计:查询页search.jsp购物车页cart.jsp图书目录页directoty.jsp模糊查询再次查询查看购物车再次查询继续选书定单页order.jsp结算3、实现技术(1)采用MVC 模式JSP 实现页面视图View Servlet 实现控制Control EJB 实现业务模型Model 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 33 页 -2(2)交互关系JSP 表单动作
3、(form)提交给 CtrlServlet 控制Servlet 转发调用JSP 页面(3)数据传输Servlet 调用EJB 对象获得数据Servlet 通过session 参数传递给JSP 页面4、对象模型设计(1)界面对象:查询页search.jsp,图书目录页directory.jsp,购物车页cart.jsp,定单页order.jsp(2)控制器:CtrlServlet 负责响应输入命令包括:模糊查询key、查看购物车cart、结算 order、继续选书continue、再次查询search(3)业务模型图书信息:Mybooklib 实体类的会话Bean 购物车信息:CartFacad
4、e 会话 Bean 5、动态转移关系图search.jspdirectory.jspcart.jspBookStoreBeanCartBeanorder.jspCtrlServletkeycartsearchordercontinuesearchaddgetssetfindget三、具体实现与算法设计1、数据设计:(1)图书信息(数据库表、查询结果)书号 ISBN char100 主键书名 Title char100 作者 Author char100 出版社 Press char100 价格 Price double Mybooklib CartFacade 名师资料总结-精品资料欢迎下载-
5、名师精心整理-第 4 页,共 33 页 -3(2)购物车信息书号 ISBN char100 数量 Number String(3)共享数据a.查询结果和选中的图书信息b.作为session参数在 NetBeans7.3 版本中建立内置的数据库BookStore,建立表MYBOOKLIB,输入的测试数据如下:2、EJB接口设计(1)MybooklibFacade 管理图书信息(封装数据库)search(String key):根据关键字从数据库中查找出图书信息记录(数组);条件:书名、作者、出版社名中包含关键字;根据书号,找出图书信息记录具体算法如下:public ArrayList searc
6、h(String key)List all=this.findAll();if(all.isEmpty()return null;ArrayList result=new ArrayList();for(Bookstore current:all)if(current.getTitle().toLowerCase().contains(key)|current.getAuthor().toLowerCase().contains(key)|current.getPress().toLowerCase().contains(key)result.add(current);return resul
7、t;(2)CartFacade 管理购物车信息(本次会话有效)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 33 页 -4 add(String isbn,String title,double price)添加记录代码如下:private ArrayList record;public void add(String isbn,String title,double price)record.add(new Cart(isbn,title,price,1);public ArrayList get()/获得记录数组实现代码如下:public ArrayList get()Ar
8、rayList result=new ArrayList();for(Cart current:record)result.add(new Cart(current.getIsbn(),current.getTitle(),current.getPrice(),current.getNumber();return result;public void set(String isbn,String number)/设置购买数量for(Cart current:record)if(current.getIsbn().equals(isbn)current.setNumber(number);3、控
9、制器(CtrlServlet)的输入信息(1)来自查询页 search.jsppage=“search”&key=关键字(2)来自图书目录页Directory.jsppage=“Directory”(3)来自购物车页Cart.jsppage=“Cart”(4)控制器(CtrlServlet)的实现代码package session;import book.CartFacadeLocal;import book.MybooklibFacadeLocal;import java.io.IOException;import java.io.PrintWriter;import java.util.E
10、numeration;import java.util.logging.Level;import java.util.logging.Logger;import javax.ejb.EJB;import javax.naming.Context;import javax.naming.InitialContext;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 33 页 -5 import javax.naming.NamingException;import javax.servlet.ServletException;import javax.servlet.http.Htt
11、pServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/*author Administrator*/public class CtrlServlet extends HttpServlet CartFacadeLocal cartFacade;/=lookupCartFacadeLocal();EJB private MybooklibFacadeLocal mybooklibFacade;/*Processes requests for both
12、 HTTP*GET and*POST methods.*param request servlet request*param response servlet response*throws ServletException if a servlet-specific error occurs*throws IOException if an I/O error occurs*/protected void processRequest(HttpServletRequest request,HttpServletResponse response)throws ServletExceptio
13、n,IOException response.setContentType(text/html;charset=UTF-8);PrintWriter out=response.getWriter();request.setCharacterEncoding(UTF-8);try if(request.getSession().getAttribute(request.getLocalAddr()=null)cartFacade=this.lookupCartFacadeLocal();request.getSession().setAttribute(request.getLocalAddr(
14、),this.cartFacade);else this.cartFacade=(CartFacadeLocal)request.getSession().getAttribute(request.getLocalAddr();if(request.getParameter(page).equals(index)/从index.jsp定 向 到名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 33 页 -6 Directory.jsp String keyword=request.getParameter(key);/request.getSession().setAttribut
15、e(query,keyword);request.getSession().setAttribute(directory,mybooklibFacade.search(keyword.toLowerCase();response.sendRedirect(Directory.jsp);if(request.getParameter(page).equals(Directory)/从 Directory.jsp 定向到Cart.jsp if(!this.cartFacade.initialed()this.cartFacade.create();Enumeration names=request
16、.getParameterNames();while(names.hasMoreElements()String name=(String)names.nextElement();if(!name.equals(page)&!name.equals(submit)if(!this.cartFacade.exist(request.getParameter(name)this.cartFacade.add(request.getParameter(name),mybooklibFacade.find(request.getParameter(name).getTitle(),mybooklibF
17、acade.find(request.getParameter(name).getPrice();request.getSession().setAttribute(cart,this.cartFacade.get();response.sendRedirect(Cart.jsp);if(request.getParameter(page).equals(Directory)&request.getParameter(submit).equals(重新查询)/从 Directory.jsp 定向到 index.jsp response.sendRedirect(index.jsp);if(re
18、quest.getParameter(page).equals(Cart)/从 Cart.jsp 定向到 Order.jsp double sum=0;Enumeration names=request.getParameterNames();while(names.hasMoreElements()String name=(String)names.nextElement();if(!name.equals(page)&!name.equals(submit)&!name.equals(address)this.cartFacade.set(name,request.getParameter
19、(name);sum+=mybooklibFacade.find(name).getPrice()*Integer.parseInt(request.getParameter(name);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 33 页 -7 request.getSession().setAttribute(cart,this.cartFacade.get();request.getSession().setAttribute(fee,sum);request.getSession().setAttribute(address,request.getParameter(
20、address);response.sendRedirect(Order.jsp);finally out.close();/*Handles the HTTP*GET method.*param request servlet request*param response servlet response*throws ServletException if a servlet-specific error occurs*throws IOException if an I/O error occurs*/Override protected void doGet(HttpServletRe
21、quest request,HttpServletResponse response)throws ServletException,IOException processRequest(request,response);/*Handles the HTTP*POST method.*param request servlet request*param response servlet response*throws ServletException if a servlet-specific error occurs*throws IOException if an I/O error
22、occurs*/Override protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException processRequest(request,response);名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 33 页 -8 /*Returns a short description of the servlet.*return a String containing servlet description*/Ove
23、rride public String getServletInfo()return Short description;/private CartFacadeLocal lookupCartFacadeLocal()try Context c=new InitialContext();return(CartFacadeLocal)c.lookup(java:global/bookstore/bookstore-ejb/CartFacade!book.CartFacadeLocal);catch(NamingException ne)Logger.getLogger(getClass().ge
24、tName().log(Level.SEVERE,exception caught,ne);throw new RuntimeException(ne);四、网上书店系统全部实现代码在 NetBeans7.3 中先建立数据库Mybooklib,并且输入测试数据。单击“文件/新建项目/Java EE/企业应用程序”,输入项目名称bookstore,确定后会建立J2EE项目 bookstore。在 bookstore-war 节点单击右键,新建JSP文件。1、图书查询页 search.jsp 代码:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 33 页 -9 网上书店 欢迎来到网
25、上书店 请输入您要查询图书的关键字(书名、作者或出版社)2、图书目录页 directory.jsp代码:图书查询结果 查询结果%ArrayList result=(ArrayList)session.getAttribute(directory);if(result=null|result.isEmpty()%抱歉,目前没有您需要的图书 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 33 页 -10 符合查询关键字的图书如下 书名 作者 出版社 价格 input type=checkbox name=value=/如需更多图书,3、购物车页面 cart.jsp 代码:购物车
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年网上图书订购系统 2022 网上 图书 订购 系统

限制150内