基于JSP和SQL Server2008的网上便利超市管理系统

阿西可可

发布日期: 2020-12-14 10:05:50 浏览量: 290
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

1 开发背景

1.1 系统开发背景与意义

随着社会的发展,计算机的优势和普及使得网上便利超市系统的开发成为必需。网上便利超市系统主要是借助计算机,通过对网上便利超市系统所需的信息管理,减少管理员繁杂统计工作,同时也方便广大用户对个人所需信息的及时查询。

我们这个项目主要就是采用当前比较流行的技术来实现的,是基于B/S架构,整个系统采用的是自顶向下的一个系统分析,这样总体来描述一个总体功能全面的网上食品超市的开发过程,以及它的基本流程,以及它的核心相关技术。首先对课题研究现状的简述,研究工作的使用价值和理论意义及自己需要解决的问题。就目前来说,整个系统的需求分析功能的介绍,以及整个系统的功能流程等,以及它的数据库的设计与实现,还有测试工作的开始。该系统主要分为管理员和用户两个模块,每个模块所实现的功能及权限不同。网上便利超市系统这个系统的设计实施,以及系统的运行作为基础,为整个系统的开发提供一个良好的开头。

但是随着时代的发展以及网络技术的与时俱进,这个系统的规模也慢慢的被人们接受,以及推广,所以这样大大增加了系统开发的难度,人工的写数据以及不能实现如此庞大的一个数据系统,所以为了更加符合当前时代的先进,我们采用了高效性的技术进行实现与开发,所以这个开发的项目将用于当前社会的发展所提供帮助。网上便利超市系统对管理员,对用户和都有很大帮助,网上便利超市系统通过和数据库管理系软件协作来建立用户与管理员之间的一个很好的交流关系,基于这一点,设计了一个网上便利超市系统。

对于上面所说的系统的一些相关认识以及收集的一些资料,以及数据来说,对网上便利超市系统的实际需求等方面进行了调研,发现目前所采用的手工记录的方法进行管理存在数据储存不方便、数据内容多而复杂等等这些原因,所以网上便利超市系统流程非常需要软件来代替现有的手工操作来管理所有网上便利超市系统相关数据资料。

关键词:网上便利超市, JSP技术, MySQL数据库,B/S架构。

1.2 研究内容

从国内的信息化建设来讲,我国的信息化建设还是比较晚的,所以在这个网络时代的发展过程中,每个临时超市的系统中出现了不断投资采购,各种硬件以及系统软件和网络在另一方面,我们也不断开发实施一些各类的销售,超市管理等应用系统也逐渐形成了具有一定规模的信息化建设体系,但是总体来说,这个信息化程度还是相对落后,资金短缺,理论体系也不健全的条件下,国内网上销售机构,在服务以及质量方面都远不及于国外的一些相关企业,都存在一定的差距,但是国内与国外不同的事,虽然我们信息化建设晚,但是我们有强大的后勤物资做保障。所以这个课件主要是以便利超市为例。开发一个实用性比较强的超时系统。

1.3 文档的组织结构

文档的组织结果安排如下:

  • 第一章开发背景:主要介绍了系统开发的背景与意义,对主要研究内容进行说明,对文档组织结果进行阐述

  • 第二章需求分析:需求分析,这里面主要讲述的就是需求的一些调研,以及客袭击分析,还有系统的开发环境,讲述这个系统开发需要哪些技术以及我们所调查的内容,是否能够实现这个系统的成功开发

  • 第三章系统设计:基于JSP的网上便利超市系统的特点就是利用jsp技术MySQL数据库,基于B/S架构,采用自顶向下的结构化的系统分析方法,阐述了一个功能全面的网上便利超市系统的开发过程、操作流程及其核心的技术

  • 第四章系统实现:系统的运行图的展示与运行页面的主要代码

  • 第五章系统测试:系统实现的工作必须要通过软件测试制定测试计划、设计测试、实施测试、执行测试、评估测试五个阶段完成。设计测试的日的是确定、描述和牛成测试过样和测试用例。实施测试的目的是实施设计测试中定义的测试过程。测试的目的是实施和测试过程定义的设计实现。测试的目的是确保由运行意图建立系统的实现

  • 第六章总结展望:概要地说明下,采用什么技术做了什么东西,最终达到什么样的目的,解决了哪些问题,以及设计过程中的心得体会

2 需求分析

2.1 需求调研

基于JSP的网上便利超市系统主要目标是实现网上便利超市系统相关信息的管理。在确定了目标后,我们从以下四方面对能否实现本系统目标进行可行性分析。

2.2 可行性研究

2.2.1 技术可行性

技术可行性就要考虑现有的技术条件能否支持顺利完成开发工作,软硬件配置可不可以满足开发的需要等内容。通过本来就有的系统和开发系统的系统流程图和数据流图,对系统来进行评估比较,分析原有系统的优越性和运行后环境等对其影响程度的大小。在开发过程中,尽可能采用比较成熟的技术,用于提高该系统的成功率,并且其优化程度好,可操作性强,鉴于以上原因,本系统开发工具是MyEclipse和SQL Server2008数据库,开发的语言是Java,主要是使用了J2EE的技术,java是一种面向对象编程语言,简单易学而且灵活方便。因为本人在大学中学习过软件工程,软件测试,UML统一建模语言等一些课程,每个学期也会完成对应的课程设计,具备一定的系统分析、设计和测试能力。因此,完成系统实现在技术上完全具有可行性。技术方面采用了当前比较流行的JSP框架,目前在网上这方面的资源也比较多,所以实现起来也比较容易开发的,软件也有很多,而而且也比较成熟,例如数据库Mysql,在本系统上面也不会出现很多性能问题,他的技术也比较发达,因为生活中有很多这种实例,所以在技术上是可行的,这此外我也要考虑到程序员的开发水平,今年大三,我也学习一些这样的知识,所以对这个系统的编写我也是有一些思绪,我想大概应该发个几个月的时间,应该就能写出这个程序,再花几天用来测试计划在这个月应该就能完成并投入使用,在大三期间我也自学了,数据库的一些知识以及数据库的原理,还有网络技术的一些相关的网络课程,也对数据库的设计与应用和维护也有一定的了解,并且也动手实践自己的动手能力也比较强,在这个基础上,具备开发一个小系统的能力,还有就是在系统的处理方面打到准确性,及时性。系统的准确性和及时性,是这个系统的主要性能展现。这个系统在开发的过程中也要充分的考虑这个系统将来的存在量,存在客户量能多大,然后使这个系统的处理能力和反应能力可以达到客户处理这个需求的控制时间之内。系统在开发的期间也要考虑到以后可扩展性,例如数据库中的数据表,中用户选择的字段的增加与修改用户查询的需求也要不断地完善与更新在这些,我们都要求用足够的一些方法去进行一些功能的调整与增加,从而实现这个系统开放来完成记这个系统是一个开放的系统,那就一定要符合它的规范,就是可以开放给广大人民。系统的易用性和维护性要实现,这一点就是要求系统能够在用户手使用的,很方便用户使用起来也很舒服,维护性就是用户使用这个系统所出现的问题,客服人员提出问题,并交给开发人员进行解决维护。

2.2.2 经济可行性

因为这次的项目系统是作为毕业设计由我自己开发的,所以经济有限,系统完成之后为企业采购管理提供更多的便利,原因是服务器端的安装更加的简单易懂,客户机端不再需要安装任何软件,可以直接通过浏览器进行访问,无论你人咋哪里,只要可以访问Internet都可以操作本系统内容。该系统对计算机配置的要求并不高,企业机房更换下来的不要的低配置电脑完全都可以满足该需求,所以本系统在经济上具有完全的可行性。在经济方面因为本项目主要是属于一个开放的系统,就是免费的系统,但是在经济方面也是有提升的空间,例如可以接一些广告之类的植入费,但是收益虽然小,但目前来说,这属于一个小型的系统,因为从投入的人力,财力物力的话来讲,他的花费也是比较小,所以目前来说暂时发到网上,需要后期进行整改,才能发布,因为这样在管理人员以及在复杂的工作中,我们目前还没有面对这么多方面的问题的解决方式,所以目前来说可能比较难以赚钱,但是如果后期的话还是可以进行一些方面的盈利,在这个系统的开发过程中,是所有使用的一些资源都属于网上找到的,所以都是免费的,在开发商面也没有很大的功能实现,所以产生的费用不是很大,后期的维护和部署中暂时没有太多要求,所以经济上还是可行的。

2.2.3 操作可行性

这个系统目前只是针对于青少年所开发的一个系统,它的潜在用户还是非常的可观的,在这个营运过程中,宣传也是比较简单,同学们之间也可以起到一个很好的宣传作用,所以在操作方面的话还是可以的。

2.3 系统开发环境

2.3.1 JSP技术

JSP运用到了Java语言,JSP封装了动态网页。JSP对基于Web的应用程序进行设计。当服务器接端接收到请求,访问JSP时,程序片段是最先运行的,然后用户可以在界面上看到当前HTML所展示出来的页面内容。因为HTML文本可以自动返回给用户端,所以我们只要安装好浏览器,就能浏览HTML页面。HTML程序和穿插在内部的Java程序可以构建JSP网页。服务器端被访问时,它可以处理部分Java代码,编译出来的HTML页面输送给用户端。

2.3.2 JavaScript

JQuery是一个开源的Js脚本库,目前使用的人数也是超级多的。因为这个目前来说,使用简单,而且是开源版的,是免费的,所以对于目前开发人员来说是一个最适合的选择,对于学生来说,这方面是做的很不错的,而且也有很好。在这个系统的开发过程中我使用这个软件完成了很重要的任务,发挥这个重要的位置。

2.3.3 SQL Server2008数据库

2008年10月11日,SQL Server 2008中文版在我国正式上市了,主要就是实现系统的中的增删改查功能的实现,完整的为这个系统设置属于自己的数据库语句,Mysql也是一个十分好用的软件。它的使用方式简单,对数据库的兼容性与共享性都比较优越。

3 系统设计

3.1 系统的功能设计

根据上述分析,得出基于JSP的网上便利超市系统的功能结构还有时序图,如图3.1、3.2、3.3、3.4、3.5、3.6所示。

功能结构图

登录注册时序图

订单时序图

留言时序图

商品时序图

销量分析时序图

3.2 系统开发流程

这个开发流程主要就是讲述这个系统的整个开发过程,以及系统的操作流程,还有他系统的核心技术,这方面来说,首先就是对这个课题研究现状进行一个简单的说明,还有研究工作的价值,以及它的意义,还有自己需要解决的问题,这个系统主要就是分为两个模块。一个是管理员模块,一个是用户模块,这两个模块的权限不同,所以这个系统的设计实施以及系统的各方面都要有改变,首先,这个系统在开发过程中,我们首先进行了需求分析,以及对系统总体进行了一个设计规划,还有一个功能模块的一些规划以及数据库的设计开发流程如下如图3.7所示:

3.3 用户登录

基于JSP的网上便利超市系统主要分为两个模块,分别是管理员和用户,其具体功能如下:

管理员(后台):管理员在后台的主要管理模块有会员管理,用户管理,资讯管理,友情链接管理,滚动图片管理,关于我们管理,商品类别管理,商品品牌管理,商品管理,商品库存管理,订单管理,留言管理,统计分析。

用户(前台):用户在前台的主要模块有进口食品,蛋糕饼干,坚果炒货,站内资讯,留言板,关于我们,购物车,我的订单,我的收藏,收货地址,会员资料,安全退出。

为了保证系统的安全性,要使用本系统对网上便利超市系统相关信息进行管理,必须先登陆到系统中。其登录流程图如图3.8所示。

3.4 数据库设计

3.4.1 数据库设计原则

在概念设计中,通常用四种方法:自顶向下、自底向上、逐步扩张、混合策略,以它为骨架集成由自底向上策略中设计的各局部概念结构。

3.4.2 数据库E-R图设计

在同概念模块这一方面来说,它的设计方法主要就是以需求分析来作为主要基础,然后用概念设计模型就是E-R模型来表示数据之间的流向以及关系,这个模型我们在大学里面是没有学过的,但是在自己网上进行搜搜,然后自己慢慢进行学习所学会的,从总的来说,通常概念设计主要目标就是这个应用领域的范围,并且能够支持这个用户所需要的相关应用,最后面就是方便进行转化为数据库逻辑系统能够实现的,以及用户方便理解的模型,所以在此阶段,用户也可以进行参与以及评价这个系统的设计,最终保证整个数据库设计能够完美实现,以及和用户完美吻合,下面就是整个系统,所有的E-R图设计。

留言信息实体E- R图

商品信息实体E- R图

订单信息实体E- R图

3.4.3 数据库表

基于JSP的网上便利超市系统需要后台数据库,本系统采用MySQL数据库作为数据存储,下面介绍数据库中的各个表的详细信息:

订单信息表

列名 数据类型 长度 是否可空 注释
id bigint 20 订单编号
goods varchar 255 订单商品
price varchar 255 订单金额
fkstate varchar 255 付款状态
fhstate varchar 255 发货状态
wl varchar 255 物流
shstate varchar 255 收获状态
ddtime datetime 8 订单时间

商品信息表

列名 数据类型 长度 是否可空 注释
id bigint 20 编号
pp varchar 255 品牌
type varchar 255 类别
price varchar 255 价格
name varchar 255 名称
photo varchar 255 图片

留言信息表

列名 数据类型 长度 是否可空 注释
id bigint 20 编号
lycomments varchar 255 留言内容
hfcomments varchar 255 回复内容
user varchar 255 留言人
lytime datetime 8 留言日期

4 系统实现

4.1 登录界面

管理员和用户可以通过账号,密码进行登录,如图4.1所示:

主要代码如下所示:

  1. 1. <div class="row">
  2. 2. <div class="col-md-6">
  3. 3. <%String no = (String)request.getAttribute("no");
  4. 4. if(no!=null){%>
  5. 5. <div class="alert alert-info">
  6. 6. <button type="button" class="close" data-dismiss="alert">×</button>
  7. 7. <%=no %>
  8. 8. </div>
  9. 9. <%}%>
  10. 10. <div class="heading"><h2>登录</h2></div>
  11. 11. <form name="form1" id="ff1" method="post" action="/schoolsupermaket/schoolsupermaket?ac=frontlogin">
  12. 12. <div class="form-group">
  13. 13. 用户名<input type="text" class="form-control" placeholder="Username :" name="uname" id="uname" required>
  14. 14. </div>
  15. 15. <div class="form-group">
  16. 16. 密码<input type="password" class="form-control" placeholder="Password :" name="upass" id="upass" required>
  17. 17. </div>
  18. 18. <button type="submit" class="btn btn-1" name="login" id="login">Login</button>
  19. 19.
  20. 20. </form>
  21. 21. </div>
  22. 22.
  23. 23. </div>

4.1.1 订单管理界面

管理员可以管理订单信息,主要管理物流信息,如图4.2所示:

主要代码如下所示:

  1. 1. <form name="form2" id="form2" method="post" action="/schoolsupermaket/schoolsupermaket?ac=submitorder" >
  2. 2. <div class="row">
  3. 3. <%String suc = (String)request.getAttribute("suc");
  4. 4. if(suc!=null){%>
  5. 5. <div class="alert alert-info">
  6. 6. <button type="button" class="close" data-dismiss="alert">×</button>
  7. 7. <%=suc %>
  8. 8. </div>
  9. 9. <%}%>
  10. 10. <div class="product well">
  11. 11. <div class="col-md-9">
  12. 12. <div class="caption">
  13. 13. <div class="info">
  14. 14. <%ArrayList<HashMap> goodlist = (ArrayList<HashMap>)dao.select("select *,a.id as aid,b.id as bid from car a,goods b where a.gid=b.id and a.mid='"+member.get("id")+"' and b.delstatus='0' order by a.id desc");
  15. 15. double totalprice = 0.0;
  16. 16. for(HashMap carmap:goodlist){
  17. 17. if(carmap.get("tprice")!=null&&!carmap.get("tprice").equals("")){
  18. 18. totalprice += Double.valueOf(carmap.get("tprice").toString())*Integer.valueOf(carmap.get("sl").toString());
  19. 19. }else{
  20. 20. totalprice += Double.valueOf(carmap.get("price").toString())*Integer.valueOf(carmap.get("sl").toString());
  21. 21. }
  22. 22. }%>
  23. 23. 订单金额:<%=totalprice %>元
  24. 24. </div>
  25. 25. </div>
  26. 26. </div>
  27. 27. </div>
  28. 28. <%
  29. 29. ArrayList<HashMap> addrlist = (ArrayList<HashMap>)dao.select("select * from addr where memberid='"+member.get("id")+"' and delstatus='0'");
  30. 30. for(HashMap addrmap:addrlist){%>
  31. 31. <div class="product well">
  32. 32. <div class="col-md-9">
  33. 33. <div class="caption">
  34. 34. <div class="info">
  35. 35. <ul>
  36. 36. <li>
  37. 37.
  38. 38. <input name="addr" type="radio" value="<%=addrmap.get("id") %>" checked="checked"/><%=addrmap.get("shraddr") %> 姓名: <%=addrmap.get("shr") %> 电话: <%=addrmap.get("shrtel") %></li>
  39. 39. </ul>
  40. 40. </div>
  41. 41. </div>
  42. 42. </div>
  43. 43. </div>
  44. 44. <%} %>
  45. 45. </div>
  46. 46. <input type="hidden" id="addrlist" name="addrlist" value="<%=addrlist.size() %>">
  47. 47. <button type="button" class="btn btn-1" onclick="suborder()">提交订单</button>
  48. 48. </form>

4.1.2 留言管理界面

管理员可以管理留言信息,可以对用户的留言进行回复,如图4.3所示:

主要代码如下所示:

  1. 1. public int getInt(String sql)
  2. 2. {
  3. 3. int i = 0;
  4. 4. try {
  5. 5. Statement st = conn.createStatement();
  6. 6. ResultSet rs = st.executeQuery(sql);
  7. 7. if(rs.next())
  8. 8. {
  9. 9. i = rs.getInt(1);
  10. 10. }
  11. 11. st.close();
  12. 12. } catch (SQLException e) {
  13. 13. // TODO Auto-generated catch block
  14. 14. e.printStackTrace();
  15. 15. }
  16. 16. return i;
  17. 17. }

4.1.3 商品管理界面

管理员可以管理商品信息,后台管理的商品信息会在前台同步显示,如图4.4所示:

!

主要代码如下所示:

  1. 1. <div class="tab-content" id="tags">
  2. 2. <div id="tagContent0" class="tab-pane fade in active">
  3. 3. <p><%=map.get("note") %></p>
  4. 4. </div>
  5. 5. <div id="tagContent1" class="tab-pane fade">
  6. 6.
  7. 7. <table class="bordered">
  8. 8. <thead>
  9. 9. <tr>
  10. 10. <th>评分等级</th>
  11. 11. <th>评价内容</th>
  12. 12. <th>回复</th>
  13. 13. <th>评价人</th>
  14. 14. <th>评价时间</th>
  15. 15. </tr>
  16. 16. </thead>
  17. 17. <%String sql = "select * from pj where goodid='"+id+"' order by savetime desc ";
  18. 18. String url ="/schoolsupermaket/goodsx.jsp?1=1&id="+id;
  19. 19. PageManager pageManager = PageManager.getPage(url,10, request);
  20. 20. pageManager.doList(sql);
  21. 21. PageManager bean= (PageManager)request.getAttribute("page");
  22. 22. ArrayList<HashMap> pjlist=(ArrayList)bean.getCollection();
  23. 23. for(HashMap pjmap :pjlist)
  24. 24. {
  25. 25. HashMap mmm = dao.select("select * from member where id="+pjmap.get("memberid")).get(0);
  26. 26. %>
  27. 27. <tr>
  28. 28. <td><%=pjmap.get("jb") %>分</td>
  29. 29. <td><%=pjmap.get("msg") %></td>
  30. 30. <td><%=pjmap.get("hf") %></td>
  31. 31. <td><%=mmm.get("tname") %></td>
  32. 32. <td><%=pjmap.get("savetime") %></td>
  33. 33. </tr>
  34. 34. <%} %>
  35. 35. <tr>
  36. 36. <td colspan="9">${page.info }</td>
  37. 37. </tr>
  38. 38. </table>
  39. 39.
  40. 40. </div>
  41. 41. </div>

4.1.4 销量分析界面

管理员可以查看销量分析图,主要以柱状图的形式展示,如图4.4所示:

主要代码如下所示:

  1. 1. public Connection getConn()
  2. 2. {
  3. 3. try
  4. 4. {
  5. 5. String d = new Date().toLocaleString().substring(0,9);
  6. 6. Class.forName("com.mysql.jdbc.Driver");
  7. 7. String dburl = (String)config.get("dburl");
  8. 8. conn = DriverManager.getConnection(dburl,"root","123");
  9. 9.
  10. 10. // String d = new Date().toLocaleString().substring(0,9);
  11. 11. // Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  12. 12. // String dburl = (String)config.get("dburl");
  13. 13. // conn = DriverManager.getConnection(dburl);
  14. 14. }
  15. 15. catch(Exception e)
  16. 16. {
  17. 17. e.printStackTrace();
  18. 18. }
  19. 19. return conn;
  20. 20. }

4.1.5 管理员主界面

管理员在后台的主要管理模块有会员管理,用户管理,资讯管理,友情链接管理,滚动图片管理,关于我们管理,商品类别管理,商品品牌管理,商品管理,商品库存管理,订单管理,留言管理,统计分析等,如图4.6所示:

主要代码如下所示:

  1. 1. public CommDAO()
  2. 2. {
  3. 3. conn = this.getConn();
  4. 4. }
  5. 5.
  6. 6.
  7. 7.
  8. 8. private static Properties config = null;
  9. 9.
  10. 10. static {
  11. 11. try {
  12. 12.
  13. 13. config = new Properties();
  14. 14. // InputStream in = config.getClass().getResourceAsStream("dbconnection.properties");
  15. 15.
  16. 16. InputStream in = CommDAO.class.getClassLoader().getResourceAsStream("dbconnection.properties");
  17. 17.
  18. 18.
  19. 19.
  20. 20. config.load(in);
  21. 21.
  22. 22. in.close();
  23. 23. } catch (Exception e) {
  24. 24. e.printStackTrace();
  25. 25. }
  26. 26. }

4.2 前台主界面

4.2.1 商品列表

用户可以点击导航栏中的分类查看不同分类的商品,商品列表如下,点击相应商品可以查看详细的商品信息,如图4.7所示:

主要代码如下所示:

  1. 1. <div class="row">
  2. 2. <div class="col-lg-12">
  3. 3. <ul class="breadcrumb">
  4. 4. <li><a href="index.jsp">Home</a></li>
  5. 5. <li><a href="goods.jsp">商品列表</a></li>
  6. 6. </ul>
  7. 7. </div>
  8. 8. </div>
  9. 9. <%String suc = (String)request.getAttribute("suc");
  10. 10. if(suc!=null){%>
  11. 11. <div class="alert alert-info">
  12. 12. <%=suc %>
  13. 13. </div>
  14. 14. <%}%>
  15. 15. <div class="row">
  16. 16. <div class="alert alert-info" id="cartsinfo" style="display: none;">
  17. 17. <button type="button" class="close" data-dismiss="alert">×</button>
  18. 18. </div>
  19. 19.
  20. 20. <%HashMap member = (HashMap)session.getAttribute("member");
  21. 21. String key1 = request.getParameter("key1")==null?"":request.getParameter("key1");
  22. 22. String key2 = request.getParameter("key2")==null?"":request.getParameter("key2");
  23. 23. String key3 = request.getParameter("key3")==null?"":request.getParameter("key3");
  24. 24. String url ="goods.jsp?1=1";
  25. 25. String sql = "select * from goods where delstatus='0' ";
  26. 26. String f = request.getParameter("f");
  27. 27. if(f==null)
  28. 28. {
  29. 29. //key1 = Info.getUTFStr(key1);
  30. 30. }
  31. 31. if(!key1.equals(""))
  32. 32. {
  33. 33. sql+=" and (goodname like'%"+key1+"%' or goodpp like'%"+key1+"%')";
  34. 34. url+="&key1="+key1;
  35. 35. }
  36. 36. if(!key2.equals(""))
  37. 37. {
  38. 38. sql+=" and (sid ='"+key2+"')";
  39. 39. url+="&key2="+key2;
  40. 40. }
  41. 41. if(!key3.equals(""))
  42. 42. {
  43. 43. sql+=" and (goodpp ='"+key3+"')";
  44. 44. url+="&key3="+key3;
  45. 45. }
  46. 46. sql+=" order by savetime desc"; %>
  47. 47.
  48. 48. <div id="main-content" class="col-md-8">
  49. 49. <div class="row">
  50. 50. <div class="col-md-12">
  51. 51. <div class="products lm-products">
  52. 52. <ul class="lm-imgList">
  53. 53. <%
  54. 54. PageManager pageManager = PageManager.getPage(url,9, request);
  55. 55. pageManager.doList(sql);
  56. 56. PageManager bean= (PageManager)request.getAttribute("page");
  57. 57. ArrayList<HashMap> goodslist=(ArrayList)bean.getCollection();
  58. 58. int a = 0;
  59. 59. for(HashMap goodsmap :goodslist)
  60. 60. {
  61. 61. %>
  62. 62. <li class="lm-imgItem">
  63. 63. <a href="good.jsp?id=<%=goodsmap.get("id") %>"><img src="upfile/<%=goodsmap.get("filename") %>"/></a>
  64. 64. <div class="buttons">
  65. 65. <a class="btn cart" href="javascript:tocar(<%=goodsmap.get("id") %>)" title="加入购物车"><span class="glyphicon glyphicon-shopping-cart"></span></a>
  66. 66. <a class="btn wishlist" href="/schoolsupermaket/schoolsupermaket?ac=addfav&goodid=<%=goodsmap.get("id") %>&page=index.jsp" title="收藏此商品"><span class="glyphicon glyphicon-heart"></span></a>
  67. 67. </div>

4.2.2 站内资讯模块

用户可以查看系统中的资讯信息,点击资讯列表可以查看资讯详细信息,如图4.8所示:

主要代码如下所示:

  1. <div class="row">
  2. 2. <div class="col-lg-12">
  3. 3. <ul class="breadcrumb">
  4. 4. <li><a href="index.jsp">Home</a></li>
  5. 5. <li><a href="news.jsp">站内资讯</a></li>
  6. 6. </ul>
  7. 7. </div>
  8. 8. </div>
  9. 9. <div class="alert alert-info" id="tsinfo" style="display: none;">
  10. 10. <button type="button" class="close" data-dismiss="alert">×</button>
  11. 11. </div>
  12. 12. <%
  13. 13. String sql = "select * from news where type='新闻' order by id desc";
  14. 14. String url ="/schoolsupermaket/news.jsp?1=1";
  15. 15. PageManager pageManager = PageManager.getPage(url,10, request);
  16. 16. pageManager.doList(sql);
  17. 17. PageManager bean= (PageManager)request.getAttribute("page");
  18. 18. ArrayList<HashMap> newslist=(ArrayList)bean.getCollection();
  19. 19. for(HashMap newmap:newslist){
  20. 20. %>
  21. 21. <div class="product well">
  22. 22. <div class="col-md-3">
  23. 23. <div class="image">
  24. 24. <a href="newsx.jsp?id=<%=newmap.get("id") %>"><img src="upfile/<%=newmap.get("img") %>" border="0"/></a>
  25. 25. </div>
  26. 26. </div>
  27. 27. <div class="col-md-9">
  28. 28. <div class="caption">
  29. 29. <div class="name"><h3><a href="newsx.jsp?id=<%=newmap.get("id") %>"><%=newmap.get("title") %></a></h3></div>
  30. 30. </div>
  31. 31. <div class="info">
  32. 32. <%=newmap.get("savetime") %>
  33. 33. </div>
  34. 34. </div>
  35. 35. </div>
  36. 36. <%} %>
  37. 37. <div class="row">
  38. 38. ${page.info }
  39. 39. </div>
  40. 40.
  41. 41.
  42. 42. </div>

4.2.3 商品详情界面

用户可以点击商品列表,查看商品的详细信息,主要显示商品的编号,名称,类别,价格等信息,如图4.9所示:

主要代码如下所示:

  1. 1. public void doGet(HttpServletRequest request, HttpServletResponse response)
  2. 2. throws ServletException, IOException {
  3. 3. this.doPost(request, response);
  4. 4. }
  5. 5. MainMethod responses = new MainMethod();
  6. 6. public void go(String url,HttpServletRequest request, HttpServletResponse response)
  7. 7. {
  8. 8. try {
  9. 9. request.getRequestDispatcher(url).forward(request, response);
  10. 10. } catch (ServletException e) {
  11. 11. e.printStackTrace();
  12. 12. } catch (IOException e) {
  13. 13. e.printStackTrace();
  14. 14. }
  15. 15. }
  16. 16.
  17. 17. public void gor(String url,HttpServletRequest request, HttpServletResponse response)
  18. 18. {
  19. 19. try {
  20. 20. response.sendRedirect(url);
  21. 21. } catch (IOException e) {
  22. 22. // TODO Auto-generated catch block
  23. 23. e.printStackTrace();
  24. 24. }
  25. 25.
  26. 26. }

4.2.4 商品评论

用户可以对商品信息进行评论,评论会显示在商品的下方,如图4.10所示:

主要代码如下所示:

  1. 1. <form name="form2" id="ff2" method="post" action="/schoolsupermaket/schoolsupermaket?ac=pj&goodid=<%=goodid %>">
  2. 2. <%String suc = (String)request.getAttribute("suc");
  3. 3. if(suc!=null){%>
  4. 4. <div class="alert alert-info">
  5. 5. <button type="button" class="close" data-dismiss="alert">×</button>
  6. 6. <%=suc %>
  7. 7. </div>
  8. 8. <%}%>
  9. 9. <div class="form-group">
  10. 10. <label>商品名称:</label>
  11. 11. <%=map.get("goodname") %>
  12. 12. </div>
  13. 13. <div class="form-group">
  14. 14. <label>评分等级:</label>
  15. 15. <select id="jb" name="jb" required>
  16. 16. <option value="5">5</option>
  17. 17. <option value="4">4</option>
  18. 18. <option value="3">3</option>
  19. 19. <option value="2">2</option>
  20. 20. <option value="1">1</option>
  21. 21. </select>
  22. 22. </div>
  23. 23. <div class="form-group">
  24. 24. <input type="text" class="form-control" placeholder="评价内容:" name="msg" id="msg" required>
  25. 25. </div>
  26. 26. <button type="submit" class="btn btn-1">Submit</button>
  27. 27. </form>

4.2.5 留言板

用户可以进行留言,系统管理员会给予相应的回复,如图4.11所示:

主要代码如下所示:

  1. 1. <div class="row">
  2. 2. <table class="bordered">
  3. 3. <thead>
  4. 4. <tr>
  5. 5. <th>留言内容</th>
  6. 6. <th>回复内容</th>
  7. 7. <th>留言人</th>
  8. 8. <th>留言日期</th>
  9. 9. </tr>
  10. 10. </thead>
  11. 11. <%
  12. 12. PageManager pageManager = PageManager.getPage(url,10, request);
  13. 13. pageManager.doList(sql);
  14. 14. PageManager bean= (PageManager)request.getAttribute("page");
  15. 15. ArrayList<HashMap> infoslist=(ArrayList)bean.getCollection();
  16. 16. for(HashMap infosmap :infoslist)
  17. 17. {
  18. 18. HashMap mbmap = dao.select("select * from member where id="+infosmap.get("memberid")).get(0);
  19. 19. %>
  20. 20. <tr>
  21. 21. <td><%=infosmap.get("msg") %></td>
  22. 22. <td><%=infosmap.get("hfmsg")==null?"":infosmap.get("hfmsg") %></td>
  23. 23. <td><%=mbmap.get("tname") %></td>
  24. 24. <td><%=infosmap.get("savetime").toString()%></td>
  25. 25. </tr>
  26. 26. <%} %>
  27. 27. <tr>
  28. 28. <td colspan="9">${page.info }</td>
  29. 29. </tr>
  30. 30. </table>
  31. 31. <%if(membersession!=null){ %>
  32. 32. <form id="form" action="/schoolsupermaket/schoolsupermaket?ac=msgadd" method="post">
  33. 33. <table class="bordered">
  34. 34. <tr>
  35. 35. <td>
  36. 36. <label>留言内容</label>
  37. 37. <textarea rows="4" cols="60" id="msg" name="msg" required>

4.2.6 我的订单

用户可以购买一些便利超市的商品,支付成功后会形成订单,可以在我的订单模块中查看以及管理,如图4.12所示:

主要代码如下所示:

  1. 1. <div class="row">
  2. 2. <div class="col-lg-12">
  3. 3. <ul class="breadcrumb">
  4. 4. <li><a href="index.jsp">Home</a></li>
  5. 5. <li><a href="mydd.jsp">我的订单</a></li>
  6. 6. </ul>
  7. 7. </div>
  8. 8. </div>
  9. 9. <%String suc = (String)request.getAttribute("suc");
  10. 10. if(suc!=null){%>
  11. 11. <div class="alert alert-info">
  12. 12. <%=suc %>
  13. 13. </div>
  14. 14. <%}%>
  15. 15. <div class="alert alert-info" id="tsinfo" style="display: none;">
  16. 16. <button type="button" class="close" data-dismiss="alert">×</button>
  17. 17. </div>
  18. 18.
  19. 19. <%
  20. 20. String sql = "select * from ddinfo where memberid='"+member.get("id")+"' order by id desc";
  21. 21. String url ="/schoolsupermaket/mydd.jsp?1=1";
  22. 22. String did = request.getParameter("did");
  23. 23. if(did!=null){
  24. 24. HashMap mm = dao.select("select * from ddinfo where id="+did).get(0);
  25. 25. dao.commOper("delete from ddinfo where id="+did);
  26. 26. dao.commOper("delete from dddetail where ddnoddno="+mm.get("ddno"));
  27. 27. }
  28. 28. String shid = request.getParameter("shid");
  29. 29. if(shid!=null)
  30. 30. {
  31. 31. dao.commOper("update ddinfo set shstatus='已收货' where id="+shid);
  32. 32. }
  33. 33. %>
  34. 34. <div class="row">
  35. 35. <table class="bordered">
  36. 36. <thead>
  37. 37. <tr>
  38. 38. <th>订单号</th>
  39. 39. <th>订单商品</th>
  40. 40. <th>订单金额</th>
  41. 41. <th>付款状态</th>
  42. 42. <th>发货状态</th>
  43. 43. <th>物流</th>
  44. 44. <th>收货状态</th>
  45. 45. <th>订单日期</th>
  46. 46. <th>操作</th>
  47. 47. </tr>
  48. 48. </thead>
  49. 49. <%
  50. 50. PageManager pageManager = PageManager.getPage(url,10, request);
  51. 51. pageManager.doList(sql);
  52. 52. PageManager bean= (PageManager)request.getAttribute("page");
  53. 53. ArrayList<HashMap> infoslist=(ArrayList)bean.getCollection();
  54. 54. for(HashMap infosmap :infoslist)
  55. 55. {
  56. 56. %>
  57. 57. <tr>
  58. 58. <td><%=infosmap.get("ddno") %></td>
  59. 59. <td>
  60. 60. <%ArrayList<HashMap> dddetaillist = (ArrayList<HashMap>)dao.select("select * from dddetail where ddnoddno="+infosmap.get("ddno"));
  61. 61. for(HashMap dddetail:dddetaillist){
  62. 62. HashMap gmap = dao.select("select * from goods where id="+dddetail.get("goodid")).get(0);
  63. 63. %>
  64. 64. <a href="good.jsp?id=<%=gmap.get("id") %>"><%=gmap.get("goodname") %></a> 数量:<%=dddetail.get("sl") %>
  65. 65. <% ArrayList<HashMap> pjlist = (ArrayList<HashMap>)dao.select("select * from pj where goodid='"+gmap.get("id")+"' and memberid='"+member.get("id")+"'");
  66. 66. if(pjlist.size()==0&&infosmap.get("shstatus").equals("已收货")){ %>
  67. 67. <a href="pj.jsp?id=<%=gmap.get("id") %>">[评价]</a>
  68. 68. <%} %>
  69. 69. <br/>
  70. 70. <%} %></a>
  71. 71. </td>
  72. 72. <td><%=infosmap.get("ddprice") %></td>
  73. 73. <td><%=infosmap.get("fkstatus") %></td>
  74. 74. <td><%=infosmap.get("fhstatus") %></td>
  75. 75. <td><%=infosmap.get("wlinfo") %></td>
  76. 76. <td><%=infosmap.get("shstatus") %></td>
  77. 77. <td><%=infosmap.get("savetime").toString().substring(0,10) %></td>
  78. 78. <td>
  79. 79. <%if(infosmap.get("fkstatus").equals("待付款")){ %>
  80. 80. <a href="ddpay.jsp?ddid=<%=infosmap.get("id") %>&ddprice=<%=infosmap.get("ddprice") %>">付款</a>|
  81. 81. <%} %>
  82. 82. <%if(infosmap.get("fhstatus").equals("待发货")){ %>
  83. 83. <a href="mydd.jsp?did=<%=infosmap.get("id") %>">撤销</a>
  84. 84. <%} %>
  85. 85. <%if(infosmap.get("shstatus").equals("待收货")&&infosmap.get("fhstatus").equals("已发货")){ %>
  86. 86. <a href="mydd.jsp?shid=<%=infosmap.get("id") %>">确认收货</a>
  87. 87. <%}%>
  88. 88. </td>
  89. 89. </tr>
  90. 90. <%} %>
  91. 91. <tr>
  92. 92. <td colspan="9">${page.info }</td>
  93. 93. </tr>
  94. 94. </table>

5 系统测试

5.1 测试目的与意义

为什么要进行系统测试?因为系统测试是用来检验你这个系统是否能够符合当前社会所需要的功能以及需求,程序进行测试的目的主要就是找错误,然后对这个错误进行更改,但是测试来说主要就是进行找错误,通过自己的一些功能的实现,一个一个去摸索,去找出系统中可能存在的bug,一个完整的系统是需要进行系统测试,这个阶段,每一个系统在上市之前都要经过测试人员进行测试来检验,这个系统是否合格?

5.2 性能测试

性能测试主要就是通过模拟这个系统进行运行,然后测试系统整个性能是否符合客户的要求,以及性能测试的主要指标就是系统能运行速度多快,还有运行响应时间得多久?还有能够支持多个并发点的数量,首先系统运行速度就是通过在不同计算机上来进行运行,然后检测这个系统是否出现延迟或者停顿,或者卡出等方面,然后响应时间就是整个系统,点击点开之后,系统反应的时长是多少来通过计算出它的响应时间是否符合要求,以及平均响应时间,然后经过多个参数的对比,然后再进行判断,这里就可能要涉及,就是网络的关系,如果网络卡的话,响应时间是会变慢,这里就会涉及你,需要把网络自己调好,然后并发点的话就是,用多个电脑进行测试,就是同时登录看这个系统能否出现波动或者卡顿之类的,然后如果没有什么波动,卡顿之类的话就符合客户的要求 。

5.3 测试分析

测试分析就是整个系统在测试完成之后对他进行一个整体的分析,这个系统在设计时,主要就是借鉴于国外很多优秀网站的一些例子,从中选取比较优秀的方面,从整个界面设计到系统的设计,都保证了管理员以及用户能够更加方便,更加快捷的使用,它主要的优点,我就归纳如下,这个系统它的移植性比较强,针对性也比较好,因为针对性比较高的话,可以提供更加完美的服务,还有能再多个系统上同时运行,给客户带来极大的方便,而且本系统所扩容的内容比较全面,能够处理各种错误,极易长这样,所以就避开了所有用户,可能会因为自己的马虎操作而导致出来的失误,他的操作特别简单,也特特别方便,界面也友好,能够让更多人接受以及很好的进行操作,所以经过总体的设施来说,这个系统还是符合客户的要求以及需求,它的功能也比较方便,简单快捷,所以它的前景还是不错的 。

上传的附件 cloud_download 基于JSP的网上便利超市管理系统设计与实现.zip ( 21.41mb, 4次下载 )
error_outline 下载需要13点积分

keyboard_arrow_left上一篇 : 基于JSP和SSH框架实现的班级管理系统 基于ANTLR实现的Tiger编译器前端 : 下一篇keyboard_arrow_right



一只爱猫的蛙
2021-01-02 22:32:12
可以实现 的吗
Cathy_fu
2021-01-05 21:12:42
我服了,说是SQL sever,却是mySQL的数据库文件, 这就算了,里面中文还乱码,这不是欺骗消费者吗

发送私信

26
文章数
1
评论数
最近文章
eject