




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、四川交通职业技术学院信息工程系项目设计文档题 目:悦书网班 级 软件13-1 学 号 20132227 20132028 20132823姓 名 杨红燕 张敏 程鑫 任课教师 周春容 二O一 五 年 六 月目录1 需求描述22 系统功能描述33 数据库设计44 类设计65关键代码76系统界面207项目总结248程序错误报告259参考文献271 需求描述在当今这样一个信息化的时代,网络在我们的生活中几乎无处不在。因此,网上书店的销售模式也变得不再惊奇。由于JSP可以在85%以上的服务器上运行,而且JSP技术的应用程序比ASP的应用程序易于维护和管理。所以,通过采用JSP技术设计开发在线书店系统符
2、合时代的潮流、具有积极的进步意义。我们基于这样的实际需求,结合教学需要设计开发了基于JSP的网上书店销售管理系统。网上书店系统可以方便实现人们不用出家门就可逛书店和购买图书的愿望。该系统要求实现合法用户在购书网站中对书籍的浏览、添加购物车到购买的整个流程的功能实现。2 系统功能描述2.1 系统功能图 系统功能图如图2-1所示。 图2-1 系统功能图2.2 系统主流程图系统主流程图如图2-2所示。图2-2 系统主流程图3 数据库设计本系统选择MySQL数据库,建立名为mybookshop的数据库,涉及到的数据库表设计如下表所示。表3-1 users 表3-2 books表3-3 publishe
3、rs表3-4 categories表3-5 orderbook表3-6 orders4 类设计本系统主要设计了entity、db、dao、cart、order、servlet这六大类,具体说明及类图如下:(1) entity类,实体类。 图4-1 Users.java(2)dao类,操作数据库。 图4-2 UserDao.java(3) servlet类,调用dao中的方法,来根据数据库操作实现功能 图4-3 UserServlet.java5关键代码5.1 Model2实现用户登录、注册(1) Jsp页面/登录<form action="UserServlet?opt=log
4、in" method="post" onsubmit="return login_check()"> <img src="images/logo.png"><br> <p id="error"></p> 账 户:<input type="text" id="username" name="username" size="30" maxlength=&
5、quot;10" onkeyup="login_check();"><br> 密 码:<input type="password" id="userpwd" name="userpwd" size="31" maxlength="10" onkeyup="login_check();"><br> <a href="register.jsp">免费注册<
6、;/a> <a href="#" class="pwd">忘记密码?</a><br> <input class="loginbn" type="submit" value="登录"></form>/注册 <form action="UserServlet?opt=register" method="post" id="form"> <
7、h2 ><marquee>欢迎注册</marquee></h2> <table cellspacing=1 align=center width="100%" align="center" cellpadding="2" > <tr > <td align="center" width="30%"> 用 户 名: </td> <td> <input type="text"
8、; name="username" id="username"/><span id="usernameSpan"></span> </td> </tr> <tr> <td align="center" width="30%"> 真实姓名: </td> <td> <input type="text" name="name" id="name&
9、quot;/><span id="usernameSpan"></span> </td> </tr> <tr> <td align="center" width="30%"> 电 话 号: </td> <td> <input type="text" name="phone" id="phone"/><span id="phoneSpan"
10、></span> </td> </tr> <tr> <td align="center" width="30%"> 登录密码: </td> <td> <input type="password" name="password" id="password"/><span id="passwordSpan"></span> </td> <
11、/tr> <tr> <td align="center" width="30%"> 确认密码: </td> <td> <input type="password" name="ckpassword" id="ckpassword"/><span id="ckpasswordSpan"></span> </td> </tr> <tr> <td al
12、ign="center" width="30%"> 邮箱账号: </td> <td> <input type="text" name="email" id="email"/><span id="emailSpan"></span> </td> </tr> <tr> <td align="center" width="30%">
13、; 家庭住址: </td> <td> <input type="text" name="address" id="address"/><span id="addressSpan"></span> </td> </tr> <tr> <td colspan="2" align="center"> <input class="btnreg" type
14、="submit" value="立即注册"> </td> </tr> </table></form>(2) dao方法/登录public boolean doLogin(String loginId,String loginPwd)con=db.getConnection();CallableStatement stmt;String sql="call prcUserLogin(?,?)"try stmt=con.prepareCall(sql);stmt.setString(
15、1, loginId);stmt.setString(2, loginPwd);stmt.execute();ResultSet rs=stmt.getResultSet();if(rs.next()return true; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return false;/注册用户public boolean doRegister(Users u)con=db.getConnection();CallableStatement stmt;String sql=&q
16、uot;call prc_Insert(?,?,?,?,?,?)"try stmt=con.prepareCall(sql);stmt.setString(1,u.getLoginId() );stmt.setString(2,u.getLoginPwd() );stmt.setString(3,u.getName() );stmt.setString(4,u.getAddress() );stmt.setString(5,u.getPhone() );stmt.setString(6,u.getMail() );stmt.execute();int i=stmt.executeUp
17、date(); if(i>0) return true; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finally db.closeConnection(com.mysql.jdbc.Connection) con); return false;(3) servlet类/登录protected void Login(HttpServletRequest request, HttpServletResponse response) throws ServletException,
18、IOException String name=request.getParameter("username");String password=request.getParameter("userpwd");Users u=new Users();u.setLoginId(name);u.setLoginPwd(password);UsersDao dao=new UsersDao();boolean result=dao.doLogin(name, password);HttpSession session=request.getSession();
19、if(result)session.setAttribute("name",name);System.out.println("首页!");response.sendRedirect("index.jsp");else System.out.println("登录失败");response.sendRedirect("login.jsp");/注册protected void doRegister(HttpServletRequest request, HttpServletResponse r
20、esponse) throws ServletException, IOException String name=request.getParameter("username");String realname=request.getParameter("name");String loginPwd=request.getParameter("password");String loginId=request.getParameter("ckpassword");String address=request.ge
21、tParameter("address");String phone=request.getParameter("phone");String mail=request.getParameter("email");Users u=new Users();u.setAddress(address);u.setLoginId(loginId);u.setLoginPwd(loginPwd);u.setMail(mail);u.setLoginId(name);u.setPhone(phone);u.setName(realname);Us
22、ersDao dao=new UsersDao();boolean result=dao.doRegister(u);if(result)request.getRequestDispatcher("login.jsp").forward(request, response); else request.getRequestDispatcher("register.jsp").forward(request, response); 5.2 添加购物车、立即购买书籍、生成订单(1) jsp页面(详细页面)<script type="text/
23、javascript">function tosubmit()var form=document.getElementById("form");document.form.action="CartServlet?opt=buynow&isbn=$sessionScope.b.isbn"form.submit();function buy()/* var a=document.getElementById("cart");a.onclick(); */var form=document.getElementByI
24、d("form");form.submit();</script><a href="CartServlet?opt=showcart" class="showcart">查看购物车</a><h2>悦书网</h2><form action="CartServlet?opt=buy" method="post" name="form" id="form"><!- <from&g
25、t; -><table><tr><td><img src="$sessionScope.b.imgPath"/></td><td><ul><li>$sessionScope.b.title</li><li>价格 <b>¥$sessionScope.b.unitPrice</b></li><li>数量<input type="text" name="num"
26、value="1" /></li><li class="buy"><a href="javaScript:tosubmit()">立即购买</a></li><!- <li class="cart"><a href="javaScript:buy()" OnClick="CartServlet?opt=buy">添加购物车</a></li> -><
27、li class="buy"><a href="javaScript:buy()">添加购物车</a></li></ul></td></tr></table></form>(2) jsp页面(购物车)<a href="CartServlet?opt=clear" class="clear">清空购物车</a><table><tr class="title"
28、;> <td></td><td>图片</td><td>图书名</td><td>单价</td><td>数量</td><td>小计</td><td>删除</td></tr><c:forEach items="$sessionScope.items" var="its"><tr><td><input type="checkbo
29、x"></td><td><img src="$its.item.imgPath"/></td><td>$its.item.title</td><td>¥$its.item.unitPrice</td><td><a href="CartServlet?opt=UpDe&isbn=$its.item.isbn">-</a>$its.amount<a href="CartServlet?op
30、t=UpAdd&isbn=$its.item.isbn">+</a></td><td>¥$its.amount*its.item.unitPrice</td><td><a href="CartServlet?opt=del&isbn=$its.item.isbn">删除</a></td></tr></c:forEach></table><ul><li><a href="Ca
31、rtServlet?opt=showaddress&uname=$name"><input class="buy" type="submit" value="去结算"/></a></li><li>共花费$total元</li></ul>(3) jsp页面(结算并生成订单)<div class="add"><c:if test="$sessionScope.ulist!=null"&g
32、t;<c:forEach items="$sessionScope.ulist" var="u"><div class="address"><h2>确认收货地址:</h2><ul><li>寄送至:$u.address($name收) $u.phone </li><li><a href="address.jsp"><img src="images/newaddress.PNG"/>
33、;</a></li></ul></div></c:forEach></c:if></div><c:if test="$sessionScope.ulist!=null"><c:forEach items="$sessionScope.ulist" var="u"><form action="OrderServlet?opt=add&bid=$sessionScope.b.id&price=$ses
34、sionScope.b.unitPrice&total=$total&userid=$u.id" method="post"><h2>确认订单信息</h2><table class="details"><tr class="title"><td>图片</td><td>图书名</td><td>单价</td><td>数量</td><td>小计</t
35、d></tr><c:forEach items="$sessionScope.items" var="its"><tr><td><img src="$its.item.imgPath"/></td><td>$its.item.title</td><td>¥$its.item.unitPrice</td> <%- <td>$its.amount</td> -%> <td&
36、gt;<input type="text" name="num" value="$its.amount"/></td><td>¥$its.amount*its.item.unitPrice</td></tr></c:forEach></table><table class="pay" style="border: 2px solid red;"><c:if test="$session
37、Scope.ulist!=null"><c:forEach items="$sessionScope.ulist" var="u"><tr><td>实付款:¥$total元</td></tr><tr><td>地址:$u.address</td></tr><tr><td>收货人:$name $u.phone</td></tr></c:forEach></c:if>
38、</table><input type="submit" value="提交订单"/></form></c:forEach></c:if>(4) jsp页面(订单页面)<form><table><tr><td>商品信息</td><td>订单号</td><td>单价(元)</td><td>数量</td><td>总价(元)</td><td&
39、gt;购买时间</td></tr></table><c:forEach items="$sessionScope.olist" var="o"><table><tr><td><p><%- <a href="BookServlet?opt=btitle&bid=$o.bookId " -%><a href="#">$o.bookId</a></p></td
40、><td>$o.orderId</td><td>$o.unitPrice</td><td><p>$o.quantity</p></td><td>$o.totalPrice</td><td>$o.orderDate </td></tr></table></c:forEach></form>(5) ShoppingCart类private HashMap<String, ShoppingItem&
41、gt; items;private int itemAmount;public ShoppingCart()super();items=new HashMap<String, ShoppingItem>();itemAmount=0;public synchronized void add(String isbn,Books book,int num)if(items.containsKey(isbn)items.remove(isbn);ShoppingItem newitem=new ShoppingItem(book,num);items.put(isbn, newitem)
42、;elseShoppingItem newitem=new ShoppingItem(book,num);items.put(isbn, newitem);itemAmount+;public synchronized void remove(String isbn)if(items.containsKey(isbn)items.remove(isbn);/ 从购物车中获取数量public ShoppingItem getItem(String isbn) return items.get(isbn);public synchronized Collection<ShoppingItem
43、> getItems()return items.values();protected void finalize()items.clear();public synchronized int getItemAmount()return itemAmount;public synchronized double getTotalReal()double total=0.0;Iterator<ShoppingItem> it;for(it=getItems().iterator();it.hasNext();)ShoppingItem si=it.next();Books bo
44、ok=si.getItem();total+=book.getUnitPrice()*si.getAmount();return total;public void clear()items.clear();itemAmount=0;(6) ShoppingItem类private Books item;private int amount=0;public ShoppingItem()public ShoppingItem(Books newBook,int num)super();if(num>0)item=newBook;amount=num;public void upAdd()
45、amount+;public void upDe()amount-;public Books getItem()return item;public int getAmount()return amount;(7) 部分servlet代码/立即购买protected void buynow(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOExceptionString isbn = request.getParameter("isbn");int num
46、= Integer.parseInt(request.getParameter("num");session.setAttribute("num", num);BookDao dao = new BookDao();Books b;b = dao.getBooksByIsbn(isbn);session.setAttribute("b", b);response.sendRedirect("comfirmOrder1.jsp");/添加购物车protected void add(HttpServletRequest
47、 request,HttpServletResponse response) throws ServletException, IOException/ TODO Auto-generated method stubString isbn = request.getParameter("isbn");BookDao dao = new BookDao();Books b;b = dao.getBooksByIsbn(isbn);session.setAttribute("b", b);response.sendRedirect("details
48、.jsp");/购买protected void buy(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException/ TODO Auto-generated method stub/*session=request.getSession();session.setMaxInactiveInterval(18000);*/ShoppingCart cart;int num=Integer.parseInt(request.getParameter("
49、;num");Books newBook=(Books)session.getAttribute("b");cart=(ShoppingCart)session.getAttribute("cart");/*Books newBook=(Books)request.getSession().getAttribute("b");cart=(ShoppingCart)request.getSession().getAttribute("cart");*/if(cart=null)cart=new Shoppi
50、ngCart();cart.add(newBook.getIsbn(), newBook , num);session.setAttribute("cart", cart);/request.getSession().setAttribute("cart", cart);response.sendRedirect("index.jsp");/查看购物车protected void showcart(HttpServletRequest request,HttpServletResponse response) throws Servl
51、etException, IOException/ TODO Auto-generated method stub/*session=request.getSession();session.setMaxInactiveInterval(18000);*/ShoppingCart cart;cart=(ShoppingCart)session.getAttribute("cart");Collection<ShoppingItem> items=cart.getItems();session.setAttribute("items", ite
52、ms);response.sendRedirect("showcart.jsp");/删除购物车中的商品protected void del(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session=request.getSession();String isbn=request.getParameter("isbn");ShoppingCart cart;cart=(Shopping
53、Cart)session.getAttribute("cart");if (isbn!=null) cart.remove(isbn);double total=cart.getTotalReal();session.setAttribute("total", total);response.sendRedirect("showcart.jsp");/清空购物车protected void clear(HttpServletRequest request, HttpServletResponse response) throws Se
54、rvletException, IOException HttpSession session=request.getSession();ShoppingCart cart;cart=(ShoppingCart)session.getAttribute("cart");cart.clear();double total=cart.getTotalReal();session.setAttribute("total", total);response.sendRedirect("showcart.jsp");/数量-1protected
55、 void upDe(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session=request.getSession();String isbn = request.getParameter("isbn");ShoppingCart cart = (ShoppingCart) session.getAttribute("cart");ShoppingItem item =cart.ge
56、tItem(isbn);item.upDe();if (item.getAmount()>0)cart.add(isbn, item.getItem(), item.getAmount();session.setAttribute("cart", cart);double total = cart.getTotalReal();session.setAttribute("total", total);response.sendRedirect("showcart.jsp");/数量+1protected void upAdd(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session=request.getSession();String isbn = request.getP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代销意向合同范本
- 二手车线上交易合同范本
- 众筹股东合同范本6
- 买卖带表格合同范例
- 加工中心保养合同范本
- 兄弟共同承包土地合同范本
- 办公电脑合同范本
- 代理执行合同范本
- 共同买地皮合同范本
- pc吊装合同范本
- 银行前端工作总结
- 初中数学代数式
- 数字资产培训课件
- 2023年山东枣庄滕州市鲁南高科技化工园区管理委员会招聘10人笔试参考题库(共500题)答案详解版
- 制程无有害物质识别及风险评估表
- 大档案盒正面、侧面标签模板
- 建筑构造(下册)
- 部编人教版历史八年级下册《三大改造》省优质课一等奖教案
- 金工实训教学-数控铣床及加工中心加工
- 设计公司组织架构(结构)图
- 工学一体化教学参考工具体例格式8:学习任务考核方案
评论
0/150
提交评论