基于Jsp和MySql的垃圾分类查询管理系统

攻城狮0829

发布日期: 2020-12-07 13:32:42 浏览量: 1025
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

1 开发背景

1.1 系统开发背景与意义

20世纪以来,我国社会经济发展极为迅速、人民生活水平不断提高,而由此带来的生垃圾问题也更加显著。近二十年来,工业化和城市化带给人民生活水平提高的同时,与日俱增的城市垃圾产量,使中国成为世界上被垃圾困扰最严重的国家之一。据统计,现在中国668个城市中有三分之二的城市处于垃圾的“围困之中”,全国城市垃圾倾倒掩埋累计侵占上地约五亿平方米,相当于十五万亩耕地,中国的城市固体生活垃圾总产量已位于世界高产国前列,增长率居世界首位。实现垃圾分类对建立两型社会具有实质性意义,从废弃物源头进行分类回收,可避免资源的浪费,减少大自然的开采,减少固体废弃物的质量,降低后续处理成本,给社会带来巨大的经济效益。由于我国实型垃圾分类时间较晚,且我国人口基数较大,人们的 教育水平环保意识层次不齐,因此推出一款垃圾分类查询管理系统来提供人们对日常生活垃圾进行分类查询管理对于从源头开始垃圾分类有着重要的意义。

1.2 研究内容

垃圾分类查询管理系统通过简洁、一目了然的方法进行界面设计,主界面上可以根据垃圾分类查询和其他操作,方便的查看各模块的详细明细等信息。

研究的内容主要包括以下方面:

该系统的开发主要包括后台数据库的建立、连接和维护以及前台网络页面的开发两大方面。由于Java的跨平台性、安全性等诸多优势,本论文采用Jsp+SSMt+MYSQL的技术途径和规范全局设计开发流程,在Eclipse的开发环境下设计、编写垃圾分类查询管理系统。

该系统主要模块有登陆、用户管理、系统日志管理,垃圾分类管理等四大功能模块,用户主要是对垃圾进行分类查询。

1.3 文档的组织结构

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

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

  • 第二章主要讨论了系统的需求以及实现相关功能的关键技术和方法

  • 第三章对系统进行了业务建设与设计,对系统的用户角色和功能需求作了初步设计

  • 第四章主要对系统相关实现作了更详细的阐述,阐述了系统开发过程中所设计的代码、接口等

  • 第五章性能测试与分析

  • 第六章主要阐述了对系统的总结和展望

  • 最后为致谢与参考文献

2 系统需求分析

2.1 系统需求分析

需求是软件开发的基础,也是研发团队进行系统开发的凭据。有资料指出在软件开发周期中,如果软件项目越新颖、所涉及的应用领域越偏僻,需求分析所占用的时间可以达到整个开发周期的一半以上,而如果是迭代式的开发模型,需求时间也不应该少于1/3。可见,软件需求的重要性不言而喻。然而在软件开发中,需求不明确,客户的参与度不高,沟通不及时,获取客户的信息不完整;无法理解某些领域的技术指标和概念;客户想法的多变性都会造成需求的变更,而一旦变更就会对软件的开发进度和整体结构产生影响,甚至是灾害性的重新设计。

2.2 可行性分析

2.2.1 经济可行性

开发本系统的相关资料均可通过网上搜索、线下调查获得,在开发过程中所需的软件系统都可从相关站点免费获得。信息的获取都是通过自己去各大地区长询问人民群众得到,不需要任何其他费用。

所以从经济角度开发工程监管信息系统是完全可行的。

2.2.2 技术可行性

大部分用过程语言比如JSP开发出来的WEB应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不直接,因而很难体现出业务模型的样子或者模型的重要性。产品设计弹性力度很小,很难满足用户的变化性需求。而MVC模式要求对应分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好的体现。一旦模型发生改变也易于维护。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。

开发本系统所需的软件系统都可免费获得,软件所依赖的相关组件都为开源软件并可以免费引用。

所以从技术角度开发垃圾分类查询管理系统也是完全可行的。

2.2.3 操作可行性

操作可行性是指对开发出来的系统的界面是否美观、简洁易操作,是否有操作步骤提示、相关信息能否自动生成或更新等进行分析。操作是否顺畅很大程度上决定了系统的可行性和受欢迎度,总的来说,用户操作必须简便,系统需要有较好的人机交互,改善用户体验。本新闻博客管理系统采用的是目前较为流行的前端开发技术,界面简单美观,用户操作起来应该十分简单,因此,本垃圾分类查询管理系统在界面操作方面也完全可行。

2.3 功能分析

  • 登陆功能:管理员需要登陆后台来完成对网站的管理工作

  • 用户管理:管理网站的用户信息,主要针对后台用户(即管理员)的管理

  • 系统日志管理:管理网站后台的日志

  • 垃圾分类管理:管理垃圾的名称以及各个名称垃圾所属的垃圾分类类别

2.4 技术分析

在当今JSP开发中有两种模式,模式一是JSP+Model的结合,模式二是JSP+Model+Controller的结合。模式一中,JSP页面独自响应请求并处理结果返回客户。所有数据通过Model处理,JSP实现页面的表现。而本系统开发采用的模式二遵循了MVC模式,它的主要思想是使用一个或多个Controller作为控制器。请求由前沿的Controller(可能是多个Controller构成的一个处理链)接受后,通过JDBC来连接数据库,执行数据库的操作,然后再用Model来封装执行的结果,把结果保存到请求对象中,最后把视图派发到用于显示的JSP页面。在模式二中,JSP用于显示,充当了视图的角色;Controller组件用于数据的封装,相当于模型的角色;Controller用于执行业务逻辑,相当于控制器的角色。

3 系统设计

3.1 系统概述

垃圾分类查询管理系统分为前台模块和后台模块两大部分。前台模块主要提供用户用来查询垃圾所属分类的。后台模块是管理垃圾分类的。

垃圾分类查询管理系统采用JAVA的三层架构开发,发布版本的运行环境包括:

  • 客户端:

    • 操作系统:Win10
    • 浏览器:谷歌浏览器
  • 服务器端:

    • 操作系统:windows server 2003
    • 应用服务器:Tomcat
  • 数据库服务器端:

    • 操作系统:windows server 2003
    • 数据库系统:MYSQL5.5

3.2 系统功能

系统功能模块

3.3 数据库设计

3.3.1数据库概念设计

概念模型用于信息世界的建模,与具体的DBMS无关。为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型。人们常常首先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统和具体的DBMS,而是概念级的模型,然后再把模型转换为计算机上某一个DBMS支持的数据模型。实际上,概念模型是现实世界到机器世界的一个中间层次。

信息世界中包含的基本概念有实体和联系。

实体 (entity)

客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、一门课、一个供应商、一个部门、一本 书、一位读者等都是实体。

联系 (relationship)

在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是组成实体的各属性之间的联系。两个实体型之间的联系可以分为3类,一对一联系,(1:1);一对多联系(1 : n);多对多联系(m : n)。

概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体,联系方法(Entity-Relationship Approach)简记为E-R表示法)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型,简称E-R模型。根据数据流程分析,绘制酒店管理系统的全局E-R模型如图3-1所示。

根据系统分析的主要实体有:用户、角色、垃圾分类名称、垃圾名称。各个实体具体的描述属性图如下(实体属性在下图中并没有全部给出,因为属性过多的原因):

用户实体(如图3-2所示)

日志实体(如图3-3所示)

角色实体(如图3-4所示)

垃圾实体(如图3-5所示)

3.3.2 数据库的物理结构设计

结合本系统的功能及所选开发工具和数据库系统的特点,对系统数据库进行设计,建立一个具有良好的数据组织结构的数据库,应遵循的原则有:

  • 尽可能减少数据冗余和重复

  • 结构设计和操作设计相结合

  • 数据结构具有相对的稳定性

由于数据库中所保存的数据是系统中非常重要的资源,所以在数据库设计时一定要注意数据结构的安全性、完整性,并发控制与恢复,而一般的数据库管理系统都提供了一定的数据保护功能。

本系统中一共有十一张数据表,分别为用户表(如表3-6所示),菜单表(如表3-7所示),日志表(如表3-8所示),用户权限管理表(如表3-9所示),垃圾表(如表3-10所示),垃圾类别表(如表3-11所示)。

用户表(tb_user)表结构

字段名称 数据类型 主键 是否空 说明
id int Y N 主键,用户ID
username varchar(50) N N 用户登录名
password varchar(50) N N 用户登录密码
roleId int N N 用户类别,是否为管理员
photo varchar(128) Y N 用户头像
sex int(1) N N 性别
age int(3) N N 年龄
address varchar(128) Y N 住址

菜单表(tb_menu)表结构

字段名称 数据类型 主键 是否空 说明
id int Y N 主键
parentId int N N 本菜单的父菜单的ID
name int N N 菜单名称
url int N N 菜单连接
icon int N N 菜单的图片

日志表(tb_log)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 主键
content varchar(255) N Y 日志内容
createTime datetime N Y 销售时间

用户权限管理表(tb_authority)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 主键
roleId int(11) N N 用户类别ID
menuId int(11) N N 用户可以访问的菜单ID

垃圾表(tb_rubbish)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 主键
name varchar(32) N N 名字
catrgoryId varchar(256) N N 类别ID

垃圾类别表(tb_rubbish_category)表结构

字段名称 数据类型 主键 是否空 说明
id int(11) Y N 主键
name varchar(32) N N 名字
explain varchar(256) N N 说明
require varchar(256) N Y 要求
common varchar(256) N Y 该类别的常见垃圾

4 系统实现

4.1 系统开发规划

垃圾分类查询管理系统采用JAVA标准分层的基于组件模型设计。将处理过程拆分到不同的层级、不同服务、不同应用服务器中分别处理,使服务器资源得到更好的利用,解决网络传输时高并发的问题。

垃圾分类查询管理系统采用经典的三层结构,面向对象的JAVA语言和MYSQL数据库存储数据。三层框架包括了界面层、逻辑层和数据层。

表现层:是系统数据来源和UI部分,承担用户操作与逻辑层之间的交互。在本层中实现前台页面的信息显示。后台登录和基本信息的管理操作。用户通过界面操作和业务逻辑层传输数据。

逻辑层是整个系统的核心,它与这个系统的业务紧密相关。

数据层:其功能主要是负责数据库的访问。简单的说就是实现对数据表的Select, Insert, Update, Delete的操作。数据库的设计是在这一套开发系统中十分重要的,好的数据库建立可以让其更快的完成项目。整个数据库的创建是垃圾分类查询管理系统开发和创立的核心技术,概括的说,就是根据用户的需求创立起满足用户的需要的数据库。数据库的整体设计是在软件开发是其最主要的问题。

4.2 开发语言简介

4.2.1 MYSQL数据库

垃圾分类查询管理系统使用MYSQL平台,MYSQL相比其它数据库软件有独特的优越性,可视化的数据库创建平台,自动生成数据库关系图,视图的可视化编辑,这些特性都为程序员带来了很大便捷。MYSQL数据库和JAVA配合较为紧密,选用MYSQL数据库,无须再编写驱动或者下载驱动。ADO.NET提供了所有操作MYSQL数据库的方法。而MYSQL数据库是相对比较成熟和完善的,适合垃圾分类查询管理系统的要求。

4.2.2 JavaScript

JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。

Javascript语言与Java语言在语法上比较相似,但随着对Javascript的深入了解后你会发现,它们说到底是两种语言!

4.2.3 JQuery

jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript框架,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。

jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。

4.2.4 SSM

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

Spring

Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。

Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。

SpringMVC

SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

mybatis

mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

4.2.5 EasyUI

jQuery EasyUI是一个基于jQuery的框架,集成了各种用户界面(UI)插件。

jQuery EasyUI能够帮助Web开发者更轻松的打造出功能丰富并且美观的UI界面。通过jQuery EasyUI,开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,只需要了解一些简单的HTML标签即可。

  • easyui是一个基于jQuery的框架,集成了各种用户界面插件

  • easyui提供建立现代化的具有交互性的javascript应用的必要的功能

  • 使用easyui,您不需要写太多javascript代码,一般情况下您只需要使用一些html标记来定义用户界面

  • HTML网页的完整框架

  • easyui节省了开发产品的时间和规模。非常简单,但是功能非常强大

4.3 开发页面简介

4.3.1首页

本界面是垃圾分类查询管理系统的首页设计,其功能主要具体如图4-1所示。

客户可以进行搜索垃圾分类查询、其他模块查询等等功能,以下为html关键代码:

  1. <div class="row">
  2. <div class="col-md-1 col-xs-0"></div>
  3. <div class="col-md-9 col-xs-12">
  4. <div class="row"><span style="font-size: 20px;padding-left: 10px">长沙市日常生活垃圾分为四类</span> </div>
  5. <br>
  6. <div class="row">
  7. <div class="col-md-6 col-xs-12">
  8. <div class="row">
  9. <div class="col-md-3 col-xs-3">
  10. <img style="max-width: 100px;" alt="可回收垃圾" src="https://lajifenleiapp.com/static/img/t5.png">
  11. </div>
  12. <div class="col-md-9 col-xs-9" style="color: #653F34;padding-left: 22px;">
  13. <h3 style="color: #00457C;margin-top: 0px">可回收物是指</h3>
  14. <p style="color: #00457C"> 废纸、废塑料、废玻璃制品、废金属、废织物等适宜回收,并且可以回收重复利用的生活废弃物。</p>
  15. </div>
  16. </div>
  17. </div>
  18. <div class="col-md-6 col-xs-12">
  19. <div class="row">
  20. <div class="col-md-3 col-xs-3" style="color: #653F34">
  21. <img style="max-width: 100px;" alt="有害垃圾" src="https://lajifenleiapp.com/static/img/t4.png">
  22. </div>
  23. <div class="col-md-9 col-xs-9" style="padding-left: 22px;">
  24. <h3 style="margin-top: 0px;color:#FF5722">有害垃圾是指:</h3>
  25. <p style="color:#FF5722">废电池、费灯泡灯管、废药品、废油漆,以及有损人身体健康或者对环境直接或者间接会造成污染,有潜在危害的生活用品。</p>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. <div class="row">
  31. <div class="col-md-6 col-xs-12">
  32. <div class="row">
  33. <div class="col-md-3 col-xs-3">
  34. <img style="max-width: 100px;" alt="湿垃圾" src="https://lajifenleiapp.com/static/img/t3.png">
  35. </div>
  36. <div class="col-md-9 col-xs-9" style="color: #653F34;padding-left: 22px;">
  37. <h3 style="color: #653F34;margin-top: 0px">湿垃圾是指</h3>
  38. <p>易腐垃圾,如食材废弃料、剩饭剩菜、过期食品、水果皮、干果垃圾,废弃植物、中药残渣等生活废弃物品。</p>
  39. <p>如:剩菜剩饭、瓜皮果核、花卉绿植、过期食品等。</p>
  40. </div>
  41. </div>
  42. </div>

4.3.2 后台登陆页面

本界面是垃圾分类查询管理系统的后台登陆页面设计,其功能主要具体如图4-2所示。

登录页面以简明的形式提供给用户一个登录界面。用户登录后会显示当前系统的基本信息。在本系统中实现了用户角色管理、基于角色的权限管理、用户基本信息录入修改、用户管理等功能;关键代码如下:

  1. @RequestMapping(value="/login",method=RequestMethod.POST)
  2. @ResponseBody
  3. public Map<String, String> loginAct(User user,String cpacha,HttpServletRequest request){
  4. Map<String, String> ret = new HashMap<String, String>();
  5. if(user == null){
  6. ret.put("type", "error");
  7. ret.put("msg", "请填写用户信息!");
  8. return ret;
  9. }
  10. if(StringUtils.isEmpty(cpacha)){
  11. ret.put("type", "error");
  12. ret.put("msg", "请填写验证码!");
  13. return ret;
  14. }
  15. if(StringUtils.isEmpty(user.getUsername())){
  16. ret.put("type", "error");
  17. ret.put("msg", "请填写用户名!");
  18. return ret;
  19. }
  20. if(StringUtils.isEmpty(user.getPassword())){
  21. ret.put("type", "error");
  22. ret.put("msg", "请填写密码!");
  23. return ret;
  24. }
  25. Object loginCpacha = request.getSession().getAttribute("loginCpacha");
  26. if(loginCpacha == null){
  27. ret.put("type", "error");
  28. ret.put("msg", "会话超时,请刷新页面!");
  29. return ret;
  30. }
  31. if(!cpacha.toUpperCase().equals(loginCpacha.toString().toUpperCase())){
  32. ret.put("type", "error");
  33. ret.put("msg", "验证码错误!");
  34. logService.add("用户名为"+user.getUsername()+"的用户登录时输入验证码错误!");
  35. return ret;
  36. }
  37. User findByUsername = userService.findByUsername(user.getUsername());
  38. if(findByUsername == null){
  39. ret.put("type", "error");
  40. ret.put("msg", "该用户名不存在!");
  41. logService.add("登录时,用户名为"+user.getUsername()+"的用户不存在!");
  42. return ret;
  43. }
  44. if(!user.getPassword().equals(findByUsername.getPassword())){
  45. ret.put("type", "error");
  46. ret.put("msg", "密码错误!");
  47. logService.add("用户名为"+user.getUsername()+"的用户登录时输入密码错误!");
  48. return ret;
  49. }
  50. //说明用户名密码及验证码都正确
  51. //此时需要查询用户的角色权限
  52. Role role = roleService.find(findByUsername.getRoleId());
  53. List<Authority> authorityList = authorityService.findListByRoleId(role.getId());//根据角色获取权限列表
  54. String menuIds = "";
  55. for(Authority authority:authorityList){
  56. menuIds += authority.getMenuId() + ",";
  57. }
  58. if(!StringUtils.isEmpty(menuIds)){
  59. menuIds = menuIds.substring(0,menuIds.length()-1);
  60. }
  61. List<Menu> userMenus = menuService.findListByIds(menuIds);
  62. //把角色信息、菜单信息放到session中
  63. request.getSession().setAttribute("admin", findByUsername);
  64. request.getSession().setAttribute("role", role);
  65. request.getSession().setAttribute("userMenus", userMenus);
  66. ret.put("type", "success");
  67. ret.put("msg", "登录成功!");
  68. logService.add("用户名为{"+user.getUsername()+"},角色为{"+role.getName()+"}的用户登录成功!");
  69. return ret;
  70. }

4.3.3 垃圾管理页面

本界面是垃圾分类查询管理系统的垃圾管理页面设计,其功能主要具体如图4-3所示

管理员可以进行垃圾进行设置,可以搜索,增加,修改,删除垃圾信息,以下为Controller关键代码:

  1. /**
  2. * 垃圾列表页面
  3. * @param model
  4. * @return
  5. */
  6. @RequestMapping(value="/list",method=RequestMethod.GET)
  7. public ModelAndView list(ModelAndView model){
  8. model.addObject("rubbishCategoryList", rubbishCategoryService.findList(null));
  9. model.setViewName("rubbish/list");
  10. return model;
  11. }
  12. /**
  13. * 获取垃圾列表
  14. * @param page
  15. * @param name
  16. * @param roleId
  17. * @param sex
  18. * @return
  19. */
  20. @RequestMapping(value="/list",method=RequestMethod.POST)
  21. @ResponseBody
  22. public Map<String, Object> getList(Page page,
  23. @RequestParam(name="name",required=false,defaultValue="") String name,
  24. Long categoryId
  25. ){
  26. Map<String, Object> ret = new HashMap<String, Object>();
  27. Map<String, Object> queryMap = new HashMap<String, Object>();
  28. if(categoryId != null){
  29. queryMap.put("categoryId", categoryId);
  30. }
  31. queryMap.put("name", name);
  32. queryMap.put("offset", page.getOffset());
  33. queryMap.put("pageSize", page.getRows());
  34. ret.put("rows", rubbishService.findList(queryMap));
  35. ret.put("total", rubbishService.getTotal(queryMap));
  36. return ret;
  37. }

4.3.4 用户管理页面

本界面是垃圾分类查询管理系统的用户管理页面设计,其功能主要具体如图4-4所示。

管理员可以进行用户进行设置,可以搜索,增加,修改,删除用户信息,以下为Controller关键代码:

  1. /**
  2. * 用户列表页面
  3. * @param model
  4. * @return
  5. */
  6. @RequestMapping(value="/list",method=RequestMethod.GET)
  7. public ModelAndView list(ModelAndView model){
  8. Map<String, Object> queryMap = new HashMap<String, Object>();
  9. model.addObject("roleList", roleService.findList(queryMap));
  10. model.setViewName("user/list");
  11. return model;
  12. }
  13. /**
  14. * 获取用户列表
  15. * @param page
  16. * @param username
  17. * @param roleId
  18. * @param sex
  19. * @return
  20. */
  21. @RequestMapping(value="/list",method=RequestMethod.POST)
  22. @ResponseBody
  23. public Map<String, Object> getList(Page page,
  24. @RequestParam(name="username",required=false,defaultValue="") String username,
  25. @RequestParam(name="roleId",required=false) Long roleId,
  26. @RequestParam(name="sex",required=false) Integer sex
  27. ){
  28. Map<String, Object> ret = new HashMap<String, Object>();
  29. Map<String, Object> queryMap = new HashMap<String, Object>();
  30. queryMap.put("username", username);
  31. queryMap.put("roleId", roleId);
  32. queryMap.put("sex", sex);
  33. queryMap.put("offset", page.getOffset());
  34. queryMap.put("pageSize", page.getRows());
  35. ret.put("rows", userService.findList(queryMap));
  36. ret.put("total", userService.getTotal(queryMap));
  37. return ret;
  38. }

4.3.5 日志管理页面

本界面是垃圾分类查询管理系统的日志管理页面设计,其功能主要具体如图4-5所示。

管理员可以进行日志进行设置,可以搜索,增加,修改,删除日志信息,以下为Controller关键代码:

  1. /**
  2. * 日志列表页面
  3. * @param model
  4. * @return
  5. */
  6. @RequestMapping(value="/list",method=RequestMethod.GET)
  7. public ModelAndView list(ModelAndView model){
  8. model.setViewName("log/list");
  9. return model;
  10. }
  11. /**
  12. * 获取日志列表
  13. * @param page
  14. * @param content
  15. * @param roleId
  16. * @param sex
  17. * @return
  18. */
  19. @RequestMapping(value="/list",method=RequestMethod.POST)
  20. @ResponseBody
  21. public Map<String, Object> getList(Page page,
  22. @RequestParam(name="content",required=false,defaultValue="") String content
  23. ){
  24. Map<String, Object> ret = new HashMap<String, Object>();
  25. Map<String, Object> queryMap = new HashMap<String, Object>();
  26. queryMap.put("content", content);
  27. queryMap.put("offset", page.getOffset());
  28. queryMap.put("pageSize", page.getRows());
  29. ret.put("rows", logService.findList(queryMap));
  30. ret.put("total", logService.getTotal(queryMap));
  31. return ret;
  32. }

5 性能测试与分析

测试是开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是”探测”,在”探测”中发现软件的毛病。

5.1 系统测试的定义

软件测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到”一锤定音”的作用。

5.2 系统测试的目的及意义

软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。

5.3 系统测试的重要性

软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。

事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。

5.4 系统测试的常用方法

程序测试的主要方法分为两大类,白盒测试和黑盒测试。

  • 白盒测试:一种是以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称结构测试或玻璃盒测试,将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多地发现程序中的错误。主要有两种方法:一种称为逻辑覆盖法,另一种称为路径覆盖法

  • 黑盒测试:也称功能测试,数据驱动测试等,它将待测对象堪称是一个黑盒子,在完全不考虑程序的内部结构和特性的情况下,只依据规格说明书检查程序的功能是否能正常使用。黑盒测试主要是根据输入条件和输出条件的确定测试数据,来检查程序是否能产生正确的输出。进行黑盒测试主要有下面几种方法:等价分类法、边界值分析法、猜错法、因果图法

本系统的测试综合了白盒测试、黑盒测试两种方法,但主要使用的是黑盒测试方法。在测试当中遵循了“尽早地和不断进行测试”,“保证测试用例的完整性和有效性”原则。通过测试达到以下测试目的:

  • 功能检查:检查功能是否争取,是否遗漏或实现不了应该实现的功能等

  • 接口检查:检查能否正确地接受信息或输出信息

  • 数据检查:检查数据结构或外部信息是否有(如数据文件)访问错误

  • 性能检查:检查性能需求能否得到满足

  • 初始化、终止检查:检查是否能进行正确地初始化或终止

5.5 测试环境与测试条件

  • 处理器:Inter(R) Core (TM)2 Duo T5750

  • 内存:6GB

  • 硬盘:500G

  • 操作系统:Windows 10

  • 数据库: mysql

5.6 软件测试

通过对垃圾系统的分析、设计和实现,完成了系统功能,下面对垃圾分类查询管理系统进行系统测试,完成软件开发最后步骤。

在测试过程中,可以使用测试工具进行系统测试、功能测试,测试过程中,遇到的Bug,需要及时修改,并形成测试文档,说明测试过程、修改情况。

软件测试包括了黑盒测试和白盒测试,不同的测试方法,测试目的不同,通过对垃圾分类查询管理系统的详细测试,完成了测试目的。

5.7 功能测试

垃圾分类查询管理系统包括了多个功能,下面对各主要功能进行测试用例说明。由于测试过程具有一定的相似性,所以本系统选取一部分功能进行测试,其余相似功能模块不再一一展示。

5.8 测试总结

通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行。

6 总结与展望

垃圾分类查询管理系统,实现了该网站的登陆模块、用户管理模块、系统日志管理模块、垃圾分类管理模块。本系统介绍了垃圾分类查询管理系统的设计与实现过程,主要经过需求分析,相关技术研究,系统架构设计,后台数据库设计,模块设计和数据库设计,最后进行了编码,最终实现了一个B/S模式的垃圾分类查询管理系统。在系统的设计和开发过程中,主要完成了以下工作:

  • 对垃圾分类查询管理系统进行用户需求调研,将现有业务与传统技术进行对比总结,完成本系统的用户需求分析。通过对用户需求分析和技术背景研究,分析了系统的业务流程,并采用UML工具对用户需求进行统一建模,导出系统的软件需求分析说明

  • 垃圾分类查询管理系统使用ECLIPSE和MYSQL数据库开发

  • 根据系统业务需求对系统数据库进行详细设计,主要采用了数据库3NF标准对数据库内部各种关系进行抽象分析,建立数据库E-R模型图,最大程度上避免数据冗余,保证数据的一致性

  • 实现了垃圾分类查询管理系统的架构设计,在系统的设计与实现的过程中,系统采用经典的三层结构,面向对象的JAVA语言和MYSQL数据库存储数据。三层框架包括了界面层、逻辑层和数据层

系统不免有错误和待改进之处,真诚欢迎各位师长、同行提出宝贵意见。

参考文献

[1] 甘启宏,崔亚强,王皓,余淇,冯鸟东.基于SSM框架的高校教学设备管理系统设计与实现[J/OL].软件导刊:1-4[2019-11-20].http://kns.cnki.net/kcms/detail/42.1671.TP.20190906.1321.002.html.

[2] 许旻. 基于CDIO和3DCC的Javascipt课程教学探究[A]. Intelligent Information Technology Application Association.Education and Education Management(EEM 2011 V2)[C].Intelligent Information Technology Application Association:智能信息技术应用学会,2011:4.

[3] 蔡晓庆,陈燕平.在基于Ajax的Web应用中的使用MVC模式[J].电子测试,2019(12):73-74.

[4] 谢春祥,叶舒畅.用AJAX解决模态对话页面的刷新异常问题[J].南昌师范学院学报,2019,40(03):30-32.

[5] 刘景丽,谭晓丹,杨琨.高职现代学徒制“JSP”人才培养模式探析[J].教育与职业,2019(16):53-56.

[6] 孙曼曼.MySQL数据库中group by语句与update语句的用法研究[J].传播力研究,2019,3(27):252.

[7] 李亚娟,张宝丽,秦爽,陈岩.基于JSP技术的动态网页开发技术研究[J].电脑知识与技术,2019,15(23):262-263.

[8] Mingli Lin,Huanhuan Liu,Jingjing Deng,Ran An,Minjuan Shen,Yanqiu Li,Xu Zhang.Carboxymethyl chitosan as a polyampholyte mediating intrafibrillar mineralization of collagen via collagen/ACP self-assembly[J].Journal of Materials Science & Technology,2019,35(09):1894-1905.

[9] 袁江琛.基于jQuery+Ajax的ECharts在成绩统计中的实现[J].智能计算机与应用,2019,9(05):217-219+222.

[10] Juan C. Roldán,Patricia Jiménez,Rafael Corchuelo. On extracting data from tables that are encoded using HTML[J]. Knowledge-Based Systems,2019.

[11] Yinfei Chen,Injazz J Chen. Mediated power and sustainable supplier management (SSM)[J]. International Journal of Physical Distribution & Logistics Management,2019,49(8).

[12] Zhe Wang. The realization of background management system based on SSM[A]. International Informatization and Engineering Associations.Proceedings of 2019 2nd International Conference on Information Science and Electronic Technology(ISET 2019)[C].International Informatization and Engineering Associations:计算机科学与电子技术国际学会(Computer Science and Electronic Technology International Society),2019:5.

[13] Zhen Wang. Dynamic Job Shop Scheduling Problem with New Job Arrivals:A Survey[A]. 中国自动化学会智能自动化专业委员会.2019中国智能自动化大会(CIAC 2019)论文集[C].中国自动化学会智能自动化专业委员会:中国自动化学会智能自动化专业委员会,2019:8

上传的附件 cloud_download 基于JSP垃圾分类管理系统的设计与实现.zip ( 27.31mb, 19次下载 )
error_outline 下载需要11点积分

发送私信

53
文章数
12
评论数
最近文章
eject