基于Java的网上购物系统的设计与实现.doc
《基于Java的网上购物系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Java的网上购物系统的设计与实现.doc(16页珍藏版)》请在咨信网上搜索。
郑州大学(软件学院)实习报告 学生姓名 王 鑫 院(系) 软件学院 专 业 软件工程 指导教师 韩 梦 薇 2014年 12月 目 录 1 绪论 1 1.1 课题的研究意义 1 1.2 本论文的目的、内容及开发环境和工具 1 2 研究现状及设计目标 1 2.1 相近研究课题的特点及优缺点分析 1 2.2 现行研究存在的问题及解决办法 1 3 要解决的几个关键问题 2 3.1 研究设计中要解决的问题 2 3.2 具体实现复杂性分析 3 4 系统设计及结构 4 4.1 数据库设计 4 4.2 系统结构图 6 5 系统实现技术 7 5.1 分模块详述系统各部分的实现方法 7 5.2 程序流程 13 6 性能测试与分析 13 6.1 测试实例(测试集)的研究与选择 13 6.2 测试环境 14 6.3 性能分析 14 7 结束语 14 参考文献 15 1 绪论 1.1 课题的研究意义 近年来,网络技术迅猛发展,人类已经进入了信息化社会。随着人们消费观念和生活方式的改变,网上购物凭借其简单、快捷的特点逐渐融入了人们的生活中适应了当今社会快节奏地生活,使人们足不出户便可以方便快捷轻松地选购自己喜欢的商品。 1.2 本论文的目的、内容及开发环境和工具 1.论文的目的、内容 网上购物系统,是在网络上建立一个虚拟的购物商场,避免了挑选商品的烦琐过程,使您的购物过程变得轻松、快捷、方便,很适合现代人快节奏的生活;同时又能有效的控制“商场”运营的成本,开辟了一个新的销售渠道。本系统是一个中小型的电子商务系统,可以为各类用户提供方便的在线购物环境,符合目前国内流行的电子商务模式。用户可以再系统中实现注册、登录、修改个人信息、分类查询商品信息、购物、管理购物车、结账和查看各种服务条款等功能。通过后台管理模块可以实现后台管理员对会员、商品、物流、订单和系统管理。 2. 开发环境和工具 开发系统:Windows7旗舰版 开发工具:MyEclipse2014+Tomcat7.0+IE浏览器+MySQL 开发技术:Java+数据库+Jsp+Html 2 研究现状及设计目标 2.1 相近研究课题的特点及优缺点分析 相比于传统购物模式少了言语交流而有了更多的填单与确认过程,让人稍感不便外。总的来说,不受时间、地域限制、便捷、安全、省时省力等优点还是为买卖双方带来了不少好处。 2.2 现行研究存在的问题及解决办法 网上购物系统是比较常见而求被广泛应用的系统,本系统的开发主要是购物车功能、订单功能和支付的实现,传统的购物模式,最令人烦恼的问题就是——商品的进货、出货、交易以及顾客对其所购商品不满而引发的退货问题等等。现在市场上类似流行的网站或平台有很多。 3 要解决的几个关键问题 3.1 研究设计中要解决的问题 1.界面设计 界面布局设计是本系统中的一个重要的环节,本系统采用B/S结构,即浏览器/服务器模式。 2.功能需求 网上购物系统的功能模块有很多,大体可被简单地划分为两部分:前台模块和后台模块。 (1)前台模块:该模块主要供顾客使用,包括登录模块、注册模块、搜索模块、购物车模块、支付模块等。前台模块功能结构图如图3.1所示。 图3.1 前台模块结构图 ① 登录模块 本系统的登录模块提供网站用户的登录功能,包括用户名和密码的输入,此模块连接数据库,点击登录按钮,验证核实之后进入系统主界面。 ② 注册模块 本系统的注册模块提供网站游客的注册功能,输入个人资料,注册成为网站会员。包括用户名、密码、确认密码、性别、年龄、电子邮箱、验证码、地址和联系方式。 ③ 搜索模块 本模块提供了两种搜索功能。包括模糊搜索和条件搜索。模糊搜索即关键字搜索,用户输入自己想要商品的关键字,点击搜索按钮,进行搜索。 ④ 购物车模块 购物车模块相当于现实中的购物车,用于暂时存放用户挑选的商品。可以显示所选商品的价格、数量、小计和总计。模块功能包括单件商品的增减及删除,小计表示同类商品的价格,总计表示所选商品的总计价格。确认无误后,点击结算,便可生成订单。 ⑤ 支付模块 本模块提供了网上购物系统的支付功能。用户接收商品,确认试用后,点击支付,给予评价,完成此次交易的最后一步。 (2)后台模块:该模块主要供管理员使用,包括商品管理模块、会员管理模块、订单管理模块、公告模块等。后台模块功能结构图如图3.2所示。 图3.2 后台模块结构图 ① 商品管理模块 网上购物系统的商品管理模块主要为管理员提供商品管理功能。管理员可修改商品信息,包括价格、库存、上架以及下架。 ② 会员管理模块 会员管理模块为管理员提供了管理网站会员的功能。可以分配网站会员一定权限,也可删除会员。 ③ 订单管理模块 此模块的功能主要为订单处理功能。管理员查看订单信息,给用户派送商品,等用户支付之后,修改订单状态,完成此次交易。 ④ 公告模块 公告模块用来显示网站的一些活动、奖励、上架新品、特价商品以及下架通知等信息。 3.数据库的设计 数据库是所有信息类系统的基础核心,它把系统中出现的大量数据按照一定的规则存储起来,提供检索数据的功能。 4 系统设计及结构 4.1 数据库设计 1.数据库表的设计 (1)用户信息表(User_id,User_name,Password,Real_name,Age,Gender,Address,Email,Is_Admin,Phone),其中User_id为关键字。该表用来存储用户id、用户名、密码、真实姓名、年龄、性别、地址、电子邮箱、是否为管理员和联系方式。 表的结构如表4-1 所示。 表4-1 用户信息表 含义 字段 类型 键标识 用户id User_id Int Primarykey 用户名 User_name Varchar 密码 Password Varchar 真实姓名 Real_name Varchar 年龄 Age Int 性别 Gender Varchar 地址 Address Varchar 邮箱 Email Varchar 是否管理员 Is_Admin Varchar Default 联系方式 Phone Varchar (2)商品表(Product_id,Name,Kind_id,Price,Uptime,Downtime,Count,Month_sell,Pro_picture,Describe),其中Product_id为主键,Kind_id为外键。该表用来存储商品id、商品名称、种类id、商品单价、上架时间、下架时间、库存量、月销量、商品图片和商品描述。表的结构如下表4-2所示。 表4-2 商品信息表 含义 字段 类型 键标识 商品id Product_id Int Primarykey 商品名称 Name Varchar 种类id Kind_id Int Foreignkey 商品单价 Price Double 上架时间 Uptime Date 下架时间 Downtime Date 库存量 Count Int 月销量 Month_sell Int 商品图片 Pro_picture Varchar 商品描述 Describe Varchar (3)商品种类表(Kind_id,Father_id,Kind_name,Kind_grade),其中Kind_id为主键。该表用来存储种类id、父种类id、种类名称和种类等级。表的结构如表4-3所示。 表4-3 商品种类表 含义 字段 类型 键标识 种类id Kind_id Int Primarykey 父种类id Father_id Int 种类名称 Kind_name Varchar 种类等级 Kind_grade Int (4)订单项表(Item_id,Order_id,Product_id,Product_count,User_id),其中Item_id为主键。该表存储订单项id、订单id、商品id、商品数量、用户id。表的结构如表4-4所示。 表4-4 订单项表 含义 字段 类型 键标识 订单项id Item_id Int Primarykey 订单id Order_id Int 商品id Kind_id Int 商品数量 Product_id Int 用户id User_id Int (5) 订单表(Order_id,Pay_way,Deliver_way,Address,Receive_name,Postcode,Receive_phone,User_id,State,isPaid),其中Order_id是主键,User_id为外键。该表用来存储订单id、支付方式、送货方式、送货地址、收货人姓名、收货人联系方式、邮政编码、用户id 、订单状态、是否付款。表结构如表4-5所示。 表4-5 订单表 含义 字段 类型 键标识 订单id Order_id Int Primarykey 支付方式 Pay_way Varchar 送货方式 Deliver_way Varchar 送货地址 Address Varchar 收货人姓名 Receive_name Varchar 收货人联系方式 Receive_phone Varchar 邮政编码 Postcode Varchar 用户id User_id Int Foreignkey 订单状态 State Varchar Default 是否付款 isPaid Varcahr Default 2.数据库表的关系图 根据需求分析和上述的数据库设计,我们得出数据库表的E-R图,如下图4.1所示。 图4.1 数据库表的关系图 4.2 系统结构图 结构图以模块的关系为线索,用自上而下的连线表示调用关系并注明参数传递的方向和内容。根据第三章节的功能分析,可以得出本系统总体结构图。如图4.2所示。 图4.2 网上购物系统总体模块结构图 5 系统实现技术 5.1 分模块详述系统各部分的实现方法 1.登录 经过上述的各项步骤之后,基本上完成了一个网上购物系统的开发。本系统的登录界面如下图所示。输入用户名和密码,单击登录按钮,与数据库的用户信息表进行验证,核实身份后进入系统主界面。登录界面如图5.1所示。 图5.1 登录界面 对应的部分程序代码为: @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); PrintWriter out=response.getWriter(); try { User u = Userdao.getUser(username); if(u != null){ if(u.getUser_password().equals(password)) { request.getSession().setAttribute("user", u); response.sendRedirect("/dog_heaven/jsp/main.jsp"); }else{ out.println("<script>alert('密码错误');window.history.go(-1)</script>"); } }else{ out.println("<script>alert('用户名不存在');window.history.go(-1)</script>"); } }catch (SQLException e) { e.printStackTrace(); } } 2.注册 如果用户还不是本网站会员,就只能浏览商品,没有购物车功能,也不购买商品。这时就需要注册会员。本系统注册界面如下图所示。本界面采用Ajax验证,即时更新验证输入的信息。完成个人信息的填写后,单击立即注册按钮,即可成为本网站会员。注册界面如图5.2所示。 图5.2 注册界面 3.搜索 本系统搜索功能如下图所示,大体提供了两种搜索功能。第一种:关键字查找(模糊查找),会员输入关键字,单击搜索按钮进行搜索;第二种:条件查找,具体可 为价格区间查找和商品类别查找。 对应的部分程序代码为: @Override private void keywords(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException { String key = request.getParameter("keywords"); ArrayList<Dog> dogs = (ArrayList)Dogdao.findKeyWordsDog(key); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title></title></head>"); out.println("<body>"); out.println(" <div style=\"background-image: url('image/main/memu.jpg');height: 600px; \">"); out.println("<table align=\"center\">"); if (dogs.size()==0) { out.println("<br><br><div align=\"center\"><h1>没有符合条件的商品</h1></div><br>"); out.println("<div align=\"center\"><h2><a href=\"/dog_heaven/jsp/main.jsp\">如有需要,请重新搜索</a></h2></div><br>"); return; }else { out.println("<br><br><div align=\"center\"><h1>商品如下</h1></div><br>"); out.println("<div align=\"center\"><h2><a href=\"/dog_heaven/jsp/main.jsp\">返回首页</a></h2></div><br>"); for (int i = 0; i < dogs.size(); i++) { Dog d = dogs.get(i); if(i == 0){ out.println("<tr>"); } if(i%4==0&&i!=0){ out.println("</tr>"); } out.println("<td>"); out.println("<table width=\" 200px\">"); out.println("<tr><td colspan=\"2\"><a href=\"detailServlet?id="+d.getDog_id()+"\"><img width=\"180px\"; height=\"220px\"; src=\"image/dog/"+d.getDog_picture()+"\"/></a></td></tr>"); out.println("<tr><td colspan=\"2\">"+d.getDog_describe()+"</td></tr>"); out.println("<tr> <td ><img src=\"image/main/price.jpg\"/></td> "); out.println(" <td>"+d.getDog_now_price()+"</td> </tr>"); out.println("</table></td>"); } out.println("</div>"); out.println("</body>"); out.println("</html>"); out.flush(); out.close(); } 4.购物车 购物车模块相当于现实中的购物车,用于暂时存放用户挑选的商品。顾客可以选择单件商品数量或者删除商品。小计表示同类商品的价格,总计表示所选商品的总计价格。确认无误后,点击结算,生成订单。 核心程序代码为: private ArrayList<CartItem> printCartItem(PrintWriter out, ShoppingCart cart) { ArrayList<CartItem> items = cart.getCart(); CartItem item = null; out.println("<table width=\"500\" border=\"1\" >"); out.println("<tr>"); out.println("<th width=\"100\">图片</th>"); out.println("<th width=\"100\">价格</th>"); out.println("<th width=\"100\">数量</th>"); out.println("<th width=\"100\">小计</th>"); out.println("<th width=\"100\">操作</th>"); out.println("</tr>"); for (int i = 0; i < items.size(); i++) { item = items.get(i); out.println("<form action=\"jsp/memu.jsp?price="+item.getPrice()+"&&number="+item.getQuantity()+"&&dogid="+item.getId()+"\" >"); out.println("<tr>"); out.println("<td><img width=\" 100px\"; height=\" 100px\"; src=\"image/dog/"+ item.getPic() + "\" /></td>"); out.println("<td align=\"center\">"+item.getPrice()+"元</td>"); out.println("<td align=\"center\"><font size=\"5\">" + item.getQuantity() + "</font></td>"); out.println("<td align=\"center\">" + item.getSum() + "元</td>"); out.println("<td align=\"center\"><a href=\"/dog_heaven/DelShoppingCartServlet?id="+ item.getId()+ "\"><font color=\"red\">删除</font></a></td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td colspan=\"3\" align=\"center\">总计:<font color=\"red\"; size=\"6\";>"+ cart.getTotal() + "</font>元</td>"); out.println("<td align=\"center\"><a href=\"/dog_heaven/RemoveAllServlet\">清空</a></td>"); out.println("<td align=\"center\"><input type=\"submit\" value=\"结算\"/></td>"); out.println("</tr>"); out.println("</form>"); out.println("</table>"); return items; 5.2 程序流程 根据需求分析和详细设计描述,能够得出本系统的运行流程,如图5.5所示。 图5.5 系统程序流程图 6 性能测试与分析 6.1 测试实例(测试集)的研究与选择 该测试案例是以一个B/S的功能点为被测对象, 该测试用例为黑盒测试用例。所谓黑盒测试就是在程序接口进行测试,它是检查功能是否按要求实现各个功能,程序是否能适当地接收输入数据并产生正确的输出信息。白盒测试与黑盒测试相反,测试根据被测程序的内部结构设计测试用例,测试者需事先了解程序的结构。 本系统的测试功能描述如下: 1.用户登录界面输入密码,进入购物网站主界面。 2.选择一件商品,放入购物车。 3.更改购物车中商品数量、种类,点击结算按钮,进入订单生成界面。 4.填写订单信息,点击确定,完成订单,等待卖家发货。 6.2 测试环境 1.硬件环境 硬件配置主要包括硬件的选择。网上购物系统的硬件配置要根据用户对系统的稳定性要求、系统的容量来确定。 2.软件环境 网上购物系统的软件配置要根据用户对系统的稳定性要求以及用户的维护水平来确定。当然,一般情况下,对微软Windows界面比较熟悉,因此都使用Windows XP操作系统。 6.3 性能分析 1.对系统用户进行管理。 2.为了加强数据保密性,为用户设置权限。 3.系统最大限度地实现了易安装性、易维护性和易操作性。 4.系统运行稳定、安全可靠。 7 结束语 本系统是的设计与研发基于软件工程学,用来对网上商品等信息进行有效的管理。大体可分为两大功能模块,前台模块和后台模块。往下又可分为许多子模块。前台模块提供了商品展示功能和用户购物功能。后台模块提供了管理用户信息,管理商品信息,以及处理订单信息等功能。本系统至上而下功能层次分明,为用户和管理员的使用提供了便利。 本次毕业设计中,也体现出了自身的不足。首先,在开发网上购物系统的前期,由于对开发工具的掌握还不够全面,浪费了不少时间。其次,前期研发时缺少对本系统的总体设计,考虑的不够全面,导致在底层功能扩充时,遇到了不少困难。再次,网站制作方面的知识比较缺乏,开发软件的能力还有待提高。 参考文献: [1] 程雯.我国网络购物现状浅析[J].价格月刊,2009(09):18-26. [2] 管晶晶.足不出户购物是怎样实现的?[J].今日科苑,2007(21):20-42. [3] 来学伟.基于JSP的学生信息管理系统的设计[J].济源职业技术学院学报,2010(11):1-160. [4] 崔巍陈国青.数据库应用与设计[M].北京:清华大学出版社,2009. [5] 梁小晓.基于B/S结构学生信息管理系统的设计与实现[D].成都.电子科技大学:2009. [6] 陈晓鹏. JavaWeb应用技术开发 . . . .- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 网上 购物 系统 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文