JSP课程设计报告(共15页).doc
精选优质文档-倾情为你奉上黔南民族师范学院计算机科学系JSP程序设计课程设计报告 题 目: 模拟购物车 专 业: 信息管理与信息系统 班 级: 姓 名: 学 号: 同组人员: 指导老师: 设计时间: 2015年6月22日 2015年 7月 7日 目 录1. 课程设计计划2015年6月24日至2015年6月31日,进行需求分析和功能设计;2015年7月1日,总体设计;2015年7月2日至2015年7月4日,数据库设计和程序模块设计;2015年7月5日至2015年7月7日,系统实施和系统测试。2.系统需求分析与功能设计需求分析: 淘宝、京东、苏宁易购等都是知名度很大的电子商务网站,而对于电子商务网站来说一个很重要的组成部分便是网络购物车,要求利用html、jsp、MySQL数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个网络购物车,用于记录不同客户的购物订单,主要功能是记录和操作不同客户的网上购物信息。功能设计:1.显示商品展示界面、操作成功(或失败)界面、购物车展示界面等界面;2.商品信息存储在数据库中;3.对商品信息能够进行查询、修改、删除、清空等操作;4.在浏览器中输入访问信息进行访问;6.购物信息分页显示。简单的数据流图:3. 总体设计购物车的简单功能有:添加商品到购物车、查看购物车、删除商品、清空购物车中的商品4. 数据库设计ER图设计如下:Cart表字段名字段描述类型长度备注ID编号int11自动增长SP_NAME商品名称varchar50SP_PRICE商品价格doubleBUY_NUM买的数量int11COUNT总价格varchar50Shows表字段名字段描述类型长度备注SP_NO商品编号varchar20SP_NAME商品名称varchar50SP_PRICE商品价格doubleSP_INFO商品信息varchar2005. 程序模块设计1. 数据库连接模块 本系统使用的数据库为MySQL,将数据库的驱动类库安装到系统后就可以编写数据库连接。 <% /装载MySQL5.5的JDBC驱动 Class.forName("com.mysql.jdbc.Driver").newInstance(); /建立数据库连接 String url ="jdbc:mysql:/localhost:3306/chenhongfei?user=root&password=123&useUnicode=true&characterEncoding=gb2312" Connection conn= DriverManager.getConnection(url); /建立一个Statement对象,用于执行SQL语句 Statement stat = conn.createStatement(); /执行查询并得到查询结果 String sql = "select * from shows" ResultSet rs = stat.executeQuery(sql); %> 2. 商品在线购物模块 提供商品的信息,可以选择加入购物车(index.jsp) <body> <h2>在线购物</h2> <hr> <table border="1" width="600"> <tr bgcolor="#dddddd"> <td align="center" >商品摘要</td> <td align="center" width="100">在线购买</td> </tr> <% String bm,name,price,info,img; /将查询结果集中的记录输出到页面上 while (rs.next() /从当前记录中读取各字段的值 / img = rs.get("SP_PIC").trim(); bm = rs.getString("SP_NO").trim(); name = rs.getString("SP_NAME").trim(); price = rs.getString("SP_PRICE").trim(); info = rs.getString("SP_INFO").trim(); out.println("<tr>"); /out.println("<td><img src='"+ img +"' border=0 height=25ps width=60ps></td>"); out.println("<td>"); out.println("商品编号:"+ bm +"<br>"); out.println("商品名称:"+ name +"<br>"); out.println("商品价格:"+ price +"元<br>"); out.println("商品简介:"+ info +"<br>"); out.println("</td>"); out.println("<td><a href='buy.jsp?op=add&bm="+bm+"'>放入购物车</a></td>"); out.println("</tr>"); 3. 购物车模块(cart.jsp) 查看购物车里的东西,并且可以删除不喜欢的商品,也可以继续添加商品。 <body> <h2>我的购物车</h2> <hr> <table border="1" width="600"> <tr bgcolor="#dddddd"> <td align="center" width="80">商品名称</td> <td align="center">商品单价</td> <td align="center" width="100">购买数量</td> <td align="center" width="100">金额</td> <td align="center" width="100">编辑</td> </tr> <% String id,name,price,num,count; /将查询结果集中的记录输出到页面上 while (rs.next() /从当前记录中读取各字段的值 id = rs.getString("ID").trim(); name = rs.getString("SP_NAME").trim(); price = rs.getString("SP_PRICE").trim(); num = rs.getString("BUY_NUM").trim(); count = rs.getString("COUNT").trim(); out.println("<tr>"); out.println("<td>"+ name +"</td>"); out.println("<td>"+ price +"</td>"); out.println("<td><input type=text value="+ num +" onChange="updateNum('"+id+"',this.value,'"+price+"')"></td>"); out.println("<td>"+ count +"</td>"); out.println("<td><a href='buy.jsp?op=del&id="+id+"'>退回商品架</a></td>"); out.println("</tr>"); %> </table> <br> <a href="index.jsp">继续购物</a> <a href="buy.jsp?op=clear">清空购物车</a> </body> <script language="javascript"> function updateNum(id,num,price) var url = "buy.jsp?op=update&id="+id+"&num="+num+"&price="+price; window.location = url; </script> 5. 增删查改的功能模块 增删查改的功能嵌套在buy.jsp里,实现对商品的添加、删除、修改、查询的功能。 if (op.equals("add") /从商品库中取出所选购商品的数据 String bm = request.getParameter("bm"); String name=null,price=null; sql = "select * from shows where SP_NO=?" pstat = conn.prepareStatement(sql); pstat.setString(1,bm); rs = pstat.executeQuery(); if (rs.next() name = rs.getString("SP_NAME").trim(); price = rs.getString("SP_PRICE").trim(); rs.close(); pstat.close(); /将所选购商品加入到购物车中 sql = "insert into cart(SP_NAME,SP_PRICE,BUY_NUM,COUNT) values(?,?,?,?)" pstat = conn.prepareStatement(sql); pstat.setString(1,name); pstat.setString(2,price); pstat.setInt(3,1); pstat.setString(4,price); pstat.executeUpdate(); pstat.close(); /关闭数据库连接 conn.close(); /重定向到购物车页面 response.sendRedirect("cart.jsp"); /更改商品的数量 if (op.equals("update") int id = Integer.parseInt(request.getParameter("id"); int num = Integer.parseInt(request.getParameter("num"); double price=Double.parseDouble(request.getParameter("price"); sql = "update cart set BUY_NUM = ?, COUNT = ? where ID=?" pstat = conn.prepareStatement(sql); pstat.setInt(1,num); pstat.setString(2,new Double(price*num).toString(); pstat.setInt(3,id); pstat.executeUpdate(); pstat.close(); conn.close(); response.sendRedirect("cart.jsp"); /将商品退回到商品架(将商品从购物车中删除) if (op.equals("del") int id = Integer.parseInt(request.getParameter("id"); sql = "delete from cart where ID=?" pstat = conn.prepareStatement(sql); pstat.setInt(1,id); pstat.executeUpdate(); pstat.close(); conn.close(); response.sendRedirect("cart.jsp"); /清空购物车 if (op.equals("clear") sql = "delete from cart" pstat = conn.prepareStatement(sql); pstat.executeUpdate(); pstat.close(); conn.close(); response.sendRedirect("cart.jsp"); 6. 技术难点与分析 1.加载数据库驱动类库的时候一直没有成功,后来发现是自己的方法不对,在同学的帮助下最终实现了数据库的连接; 2、数据库表中添加图片的那列在运行的过程中实现不了,总是出现乱码,至今也内解决问题; 3、我做的购物车实现的功能很简单,没有太多复杂的技术手段,就是增删查改的代码比较难一点,其他都基本上是使用Web技术。其实就是在Web中插入JAVA类,由于没有很多调用关系,就没有单独写成类,直接插入Web的程序中,实现也更简单了。7.系统测试 主要是进行黑盒测试,系统的功能是否达到要求。 商品在线购物模块测试: 购物车模块测试: 删除功能: 清除购物车中的所有商品: 添加商品的功能:8. 心得体会顺利的完成本次课程设计给了我很大的信心,让我了解更多的专业知识,购物车采用的是JSP技术编程。 它有着许多的优越性,但也存在一定的不足,这些不足在一定程度上限制了我们的创造力。只有发现问题面对问题才有可能解决问题,不足和遗憾不会给我打击只会更好的鞭策我前行。经过这次课程设计和对相关资料的收集,让我清楚的感到随着网络科技的不断发展和网络的广泛应用,使我们的生活离不开它了。在教育越来越受重视的21世纪,随着商务类型的不断增加和商务管理要求的不断提高,管理方面的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情。在这样的情况下有一个实用购物车是有其必然性的,例如京东、淘宝、苏宁易购等都有一个不可或缺的购物车。在这次的课程设计中,我学会了很多,但购物车中也还存在很多的不足,自己的知识有限,尤其在数据库的连接上,出现了很大的问题,还需要努力学习。9. 参考文献1 清宏计算机工作室.JSP编程技巧.机械工业出版社,2000.12 柏亚军.JSP编程基础及应用实例集锦.人民邮电出版社,2001.73 Donny.JSP与网站开发编程实战.科学出版社,2001.7 4 武延军 黄飞跃.精通JSP编程技术.人民邮电出版社,2001.85 Karl Moss. Java Servlet开发人员指南.清华大学出版社,20026 Steven Holzner.Java技术内幕.机械工业出版社,2002.1 7 陈海山.深入Java Servlet网络编程.清华大学出版社,2002.28 Phil Hanna .JSP技术大全.机械工业出版社,2002.39 周影.网络编程语言JSP实例教程.电子工业出版社,2003.610 蔡剑 景楠. Java Web应用开发:J2EE和Tomcat.清华大学出版社. 200511 王国辉 牛强.JSP信息系统开发实例精选.机械工业出版社,2005.712 王国辉 王易.JSP数据库系统开发案例精选.人民邮电出版社,2006.513 赵森. 中文SQL Server 2005 程序设计教程. 冶金工业出版社, 2006.7专心-专注-专业