还剩54页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摘要意见箱是校方领导和广大师生之间沟通的重要途径,但现状是老式的意见箱并没有发挥其应有的作用解决师生问题,服务校园建设传统校园意见箱已经不能满足学生日常反映问题的需求,诟病逐尽露,急需革新针对同学们的迫切需求和现在所反映出来的明显问题,如意见箱破损,难以寻找,反映意见难,收到意见的回应更难等,本文立足于研究一种新的意见处理方式来解决原有的实体式意见箱的缺点和不足,以便于更好的服务于学生和学校随着社会的发展和网络的普及,网上意见箱这种新载体的出现很好的解决了传统意见箱位置隐蔽,暴露隐私,难以反馈等问题根据调研和分析,本文研究和开发了一种网上的大学校园意见箱系统,旨在更好的反映一线学生的学习和生活问题,更好的促进师生关系,服务校园建设本文的主要研究内容如下
(1)对于原有校园意见箱的使用效果的进行调研
(2)对调研结果进行分析,进而提出网上校园意见箱的可行性和需求性
(3)对网上校园意见箱进行系统分析与设计,提出详细的设计方案,并实现用户与功能、界面之间的良好交互
(4)测试并运行网上意见箱系统,发现使用中的不足并进行修改本文主要使用的技术有Java开发语言,jsp技术,struts2,hibernate技术,ajax,jquery等Javaweb开发技术,以及Mysql数据库技术本文的主要创新点有
(1)将传统的意见箱系统在网站上实现,使得问题的提出方便快捷;问题的收集迅速、明了;问题的回馈方便,使用与交互简单
(2)使用B/S架构使得网站美观,界面友好,使用方便简单本系统可大大提高问题提出和收集的效率,简化旧模式的流程,更好的加强学生和学校管理者的实时交流和问题互动,既解决了和学生生活息息相关的学习生活问题,也更好的服务了校园的各方面建设关键字管理信息系统,网上意见箱,Javaweb开发,mysql数据库,用户体验,测试维护ABSTRACTSuggestionboxisanimportantcommunicationwayamongleadersteachersandstudents.Butthestatusistheold-fashionedsuggestionboxwhichdidnotplayitsdueroletosolvetheproblemforstudentsandservicetocampusconstruction.Suggestionboxcannolongermeetthetraditionalcampusstudentsdailyneedsofreflectingproblemandneedurgentinnovation.Accordingtothereflectedproblemssuchasthedamagedanddifficulttofindsuggestionboxesdifficulttoreflecttheviewsmoredifficulttorespondtothecommentsreceived.Thisarticleisbasedontheopinionsofanewapproachtosolvetheoriginalentitytypesuggestionboxshortcomingsandweaknessesinordertobetterservethestudentsandtheschool.Withthesocialdevelopmentandnetworkpenetrationtheemergenceofonlinesuggestionboxoffersagoodwaytosolvetheproblemofthetraditionalsuggestionbox.Accordingtotheresearchandanalysisthispaperstudiedanddevelopedanonlineuniversitycampussuggestionboxsystemdesignedtobetterreflectthefirst-linelearningandlifeissuestobetterpromotetheteacher-studentrelationshipservingthecampusconstruction.Themaincontentsareasfollows:1researchingthefeedbackofusingtheoriginalsuggestionbox.2analyzingsurveyresultsthenputtingforwardthefeasibilityofonlinecampusandneedsofthesuggestionbox.3analyzinganddesigningtheOnlineCampusSuggestionBoxofferingadetaileddesigninordertoachieveagooduserinteraction.4testingandruningtheonlinesuggestionboxsystemtofindtheshortcomings.Inthispaperthetechniquesusedare:Javadevelopmentlanguagejsptechnologystruts2hibernatetechnologiesajaxjqueryandotherJavawebdevelopmenttechnologiesandMysqldatabasetechnologies.Themaininnovationsare:1thetraditionalsuggestionboxsystemimplementedonthewebsitemakingtheproblemraisedconvenient;problemsquicklyclearlycollectedeasytouseandsimpleinteraction.2usingB/Sstructuremakesthesiteattractiveuser-friendlysimpleandeasytouse.Thissystemcangreatlyimprovetheefficiencyofcollectingissuesandsimplifyingtheprocessoftheoldmodeltoenhancereal-timecommunicationandinteractionbetweenstudentsandschooladministratorsbothsolvingthestudentlearningandlifeissuesandbetterservinginallaspectsoftheconstructionofthecampus.KEYWORDS:ManagementInformationSystemsOnlineSuggestionBoxJavaWebApplicationDevelopmentMysqlDatabaseUserExperienceTestMaintenance目录TOC\o1-3\h\z\uHYPERLINK\l_Toc3599895161绪论1HYPERLINK\l_Toc
3599895171.1研究背景及意义1HYPERLINK\l_Toc
3599895181.2国内研究现状1HYPERLINK\l_Toc
3599895191.3研究目的与内容2HYPERLINK\l_Toc3599895202开发技术与开发工具简介3HYPERLINK\l_Toc
3599895212.1开发技术3HYPERLINK\l_Toc
3599895222.
1.1数据库3HYPERLINK\l_Toc
3599895232.
1.2开发语言4HYPERLINK\l_Toc
3599895242.
1.3开发框架5HYPERLINK\l_Toc
3599895252.
1.4系统架构6HYPERLINK\l_Toc
3599895262.2开发工具7HYPERLINK\l_Toc3599895273需求分析9HYPERLINK\l_Toc
3599895283.1信息采集与调研9HYPERLINK\l_Toc
3599895293.2可行性分析13HYPERLINK\l_Toc
3599895303.
2.1经济可行性13HYPERLINK\l_Toc
3599895313.
2.2技术可行性13HYPERLINK\l_Toc
3599895323.
2.3社会可行性14HYPERLINK\l_Toc
3599895333.3需求分析14HYPERLINK\l_Toc
3599895343.
3.1系统功能模块图14HYPERLINK\l_Toc
3599895353.
3.2系统用例图15HYPERLINK\l_Toc3599895364系统分析18HYPERLINK\l_Toc
3599895374.1系统分析任务和目标18HYPERLINK\l_Toc
3599895384.2类图18HYPERLINK\l_Toc
3599895394.3时序图19HYPERLINK\l_Toc
3599895404.4状态图21HYPERLINK\l_Toc
3599895414.
4.1用户状态图21HYPERLINK\l_Toc
3599895424.
4.2问题状态图22HYPERLINK\l_Toc
3599895434.5活动图22HYPERLINK\l_Toc3599895445系统设计与实现24HYPERLINK\l_Toc
3599895455.1数据库设计24HYPERLINK\l_Toc
3599895465.
1.1数据库概念设计24HYPERLINK\l_Toc
3599895475.
1.2数据库物理结构设计24HYPERLINK\l_Toc
3599895485.2系统连接与配置27HYPERLINK\l_Toc
3599895495.
2.1据库连接配置文件27HYPERLINK\l_Toc
3599895505.
2.2struts2配置文件27HYPERLINK\l_Toc
3599895515.3系统界面及功能详解29HYPERLINK\l_Toc
3599895525.
3.1用户登录过程功能详解29HYPERLINK\l_Toc
3599895535.
3.2管理员登录过程功能详解38HYPERLINK\l_Toc3599895546系统测试运行与维护41HYPERLINK\l_Toc
3599895556.1系统测试41HYPERLINK\l_Toc
3599895566.2系统运行与维护41HYPERLINK\l_Toc
3599895576.3本系统所用测试技术和内容42HYPERLINK\l_Toc3599895587总结与展望43HYPERLINK\l_Toc359989559参考文献45HYPERLINK\l_Toc359989560致谢47HYPERLINK\l_Toc359989561附录48HYPERLINK\l_Toc359989562诚信声明531绪论
1.1研究背景及意义一所学校想要有效的管理和稳定的发展,离不开学校领导的正确决策,更离不开学校学生意见和建议但是学校领导在制定决策时,往往不能听取到最底层的学生们的意见,老式的意见箱系统虽然也能起到反映问题的作用,但是随着时代的不断发展,学生们对于老式意见箱的使用越来越少,收集不便,暴露隐私等问题也是诟病
[3]对于生活在西安工程大学的我,对此更是深有体会,和同学们的深入交流大都反映生活中有问题需要反映但是真正使用学校设置意见箱的寥寥无几,究其原因,一方面是学校意见箱较少,长时间闲置投递的问题得不到回应基本不能发挥应该有的作用因此,我们需要寻找一种信的途径让学生的意见更加方便,快捷的传达到学校领导那里并且得到反馈而网络意见箱正是这么一种传达民意的很好的载体,它有着传统意见箱不能比拟的优势面对这样的情况经过分析和调查问卷调研结合西安工程大学实际情况设计并开发了西安工程大学校园网上意见箱旨在几时了解师生生活学习的一线真实信息,对于学校的管理起到监督作用,促进学校的正常运转,增进师生关系,使得学生日常生活中看似微小的却真实影响正常生活的问题得到及时有效的解决,使学生能够更好将精力投入到学习和提高自身能力中去网上意见箱的普及也能够及时的反映和提供一个公共的信息平台供大家查看,既能讲问题及时迅速的反映给学校相关管理部门也能够避免问题回复的重复性,大大提高了问题回馈的效率
1.2国内研究现状近年来,随着系统集成和网络技术的发展,国内一些大中型中小企业纷纷把过去独立存在的子系统集成起来,形成统一的管理信息系统,较好地解决了信息“孤岛”问题,中小型中小企业也在进行管理信息系统的基础建设信息管理系统依托互联网正从中小企业内部向外部发展,并随之出现了电子商务、电子政务、供应链管理系统和虚拟企业等诸多的新概念到目前约有上千家中小企业建立了自己的MRPⅡ系统,并且国内部分大型中小企业早已开始实施MRPⅡ向ERP管理信息系统的过渡,建立起自己的ERP系统,较有实力的小型中小企业也开始着手ERP的建设与实施从国家软件工业应用现状统计分析,国内中小企业用来进行管理信息系统建设的软件主要通过购买国外先进管理软件、购买国内管理软件、定制开发和在现有软件产品上略加开发这四个途径获得目前我国大型中小企业使用管理软件的比例高达95%以上其中,财务软件占98%以上;业务/商务软件学校内的信息管理系统正在逐步建设中,比较常见的有学生选课系统,图书馆借阅系统,课程评价系统等国内学校的意见箱大都是以前老版的立式或者挂式的实体意见箱,或者直接有问题是一级一级的往上反映意见箱放置过于神秘,而且很多人根本不知道意见箱在哪,意见箱的位置隐秘一些,投意见信就需要一定的勇气,而且这也关系到一定的个人隐私,隐秘的位置更能保护学生的利益,也能让学生更好的提出意见,但是现在学校的意见箱的位置过于神秘,以至于很多同学都不知道意见箱具体位置,更不用说去使用意见箱来表达自己的意见了网上意见箱在多数学校校园正在起步或者管理不善运行并不是很好,仍然存在很多问题
1.3研究目的与内容充分了解学生需求,现状,建立一个旨在解决目前问题的网上网络意见箱使用后可以达到方便反映问题,方便管理的效果促进校园建设因此本文主要研究内容
(1)通过调查问卷和同学间的深入交流了解到同学们的需求
(2)对需求进行分析,进行系统设计,开发语言,框架,数据的选择与设计
(3)提供友好的,简洁的互动易用的网页界面和操作界面
(4)提供详细的分类功能,满足用户对于不同分类浏览的需求
(5)提供问题的提出,回复功能以及实时查询自己已经提出问题
(6)提供管理员登录对问题的管理,回复功能
(7)对与上述功能进行测试与修改2开发技术与开发工具简介
2.1开发技术
2.
1.1数据库本系统使用mysql
6.0数据库进行后台开发MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司在2008年1月16号被Sun公司收购而2009年SUN又被Oracal收购.对于Mysql的前途没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库
[20]
(1)MySQL的特性
①使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;
②支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统 ;
③为多种编程语言提供了API这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等;
④支持多线程,充分利用CPU资源;
⑤优化的SQL查询算法,有效地提高查询速度;
⑥既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名;
⑦提供TCP/IP、ODBC和JDBC等多种数据库连接途径;
⑧提供用于管理、检查、优化数据库操作的管理工具;
⑨可以处理拥有上千万条记录的大型数据库;
(2)MySQL的应用与其他的大型数据库例如Oracle、DB
2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本
(3)企业级数据库功能
(4)易于安装、部署和使用
(5)数据仓库SQLServer2000中包括析取和分析汇总数据以进行联机分析处理OLAP的工具SQLServer中还包括一些工具,可用来直观地设计数据库并通过EnglishQuery来分析数据
2.
1.2开发语言Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称
[16]Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景Java语言风格十分接近C、C++语言Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能,用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库
[4]JSP(JavaServerPages是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准
[7]JSP技术有点类似ASP技术,它是在传统的网页HTML文件*.htm*.html中插入Java程序段Scriptlet和JSP标记tag,从而形成JSP文件*.jspJSP技术强势一次编写,到处运行,除系统之外,代码不用做任何更改系统的多平台支持,基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展相比ASP/.net的局限性显而易见强大的可伸缩性,从只有一个小的Jar文件就可以实现Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务和消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力多样化和功能强大的开发工具支持,这一点与ASP很像,Java已经有许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下支持服务器端组件,web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能
[13]
2.
1.3开发框架
(1)Struts2
①由Action组件承担Struts1中ActionForm和Action的功能
②Action非常灵活可以使用一个普通的Class来充当.
③Action可测性强
④提供了大量的Result组件简化了响应处理的实现
⑤提供了大量的拦截器组件
⑥易于扩展整合和维护
(2)MVC框架MVC思想将一个应用分成了Model,View,Control三个部分三个部分以最少的耦合协同工作,从而提高应用的可扩展性和维护性 Struts2的MVC实现控制器实现:FilterDispatcher早期StrutsPrepareAndExecuteFilter新视图实现:各种类型Result支持各种视图组件的响应.Struts2标签提供了分支循环显示等功能模型实现:普通的POJOAction更加灵活ValueStack组件用于封装请求相关信息例如requestsessionaction对象等 Struts2的大致工作流程可描述为浏览器发送请求Control中的核心控制器FilterDispatcher根据请求调用相应的业务逻辑控制ActionWebWork的拦截器链自动对请求应用通用功能,如数据校验和文件上传等功能 回调Action中的execute方法并在方法体内调用业务逻辑组件来处理请求Modelexecute方法将调用业务逻辑组件Model得到的数据返还并更新视图层View
(3)Hibernate框架Hibernate框架目前使用的数据库都是关系型数据库,而java本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性如何设计一个低耦合,高内聚并且具有良好的可维护性、可扩展性的系统一直是软件工程领域重点研究的问题,在javaweb应用开发中引入优秀的框架使之成为可能
[6]Hibernate是采用ORM映射机制进行持久层数据开发的工具,它是Java应用程序和关系数据库中间的桥梁,负责对Java对象和关系型数据之间映射Hibernate内部封装JDBC进行访问数据库操作,其向上层应用对象提供面向对象的数据库访问API,使开发者能充分运用面向对象的编程思维操作数据库,而无需关心底层数据库操作
[15]Hibernate自身通过hibernate.cfg.xml和类的映射文件将类和数据库相映射,应用程序通过Hibernate和持久化对象类直接访问底层数据库Hibernate的核心任务是根据映射文件中配置信息建立实体对象与关系数据库二维表之间的映射Hibernate首先由SessionFactory将一个普通的java对象(POJO)转换成持久化类,再通过ORM在数据库表和类的对象之间建立起映射,通过JDBC,JNDI等数据库接口访问数据库
[15],关联映射定义在这里尤为重要
2.
1.4系统架构B/S(Browser/Server)结构即浏览器和服务器结构它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构相对于C/S结构属于“胖”客户端,需要在使用者电脑上安装相应的操作软件来说,B/S结构是属于一种“瘦”客户端,大多数或主要的业务逻辑都存在服务器端,因此,B/S结构的系统不需要安装客户端软件,它运行在客户端的浏览器之上,系统升级或维护时只需更新服务器端软件即可,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)
[15]B/S结构系统的产生为系统面对无限未知用户提供了可能以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对来说易于把握、成本也是较低的它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LANWANInternet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全特别是JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效B/S结构的优点具有分布性特点,可以随时随地进行查询、浏览等业务处理业务扩展简单方便,通过增加网页即可增加服务器功能维护简单方便,只需要改变网页,即可实现所有用户的同步更新,开发简单,共享性强
[9]
2.2开发工具
(1)EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)Eclipse是著名的跨平台的自由集成开发环境(IDE)
[15]
(2)MyEclipseMyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate在结构上,MyEclipse的特征可以被分为7类
①J2EE模型
②WEB开发工具
③EJB开发工具
④应用程序服务器的连接器
⑤J2EE项目部署服务
⑥数据库服务
⑦MyEclipse整合帮助MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任何一个模块进行单独的扩展和升级MyEclipse是一个基于Java的开源的可扩展的集成开发环境就其本身而言,它只是一个框架和一组服务它的强大之处在于它可以通过安装不同的插件来建立不同的开发环境以满足各种开发需求另外Eclipse是一个开放源代码的项目,任何人都可以免费下载它的源代码,然后根据自己的需要并在此基础之上开发自己的功能插件
[10]简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错MyEclipse
6.0以前版本需先安装EclipseMyEclipse
6.0以后的版本安装时则不需要安装EclipseMyEclipse的实际价值来自包含的发布包中的大量的工具如CCS/JS/HTML/XML的编辑器,帮助创建EJB和Struts项目的向导并产生项目的所有主要的组件如action/session/bean/form等还包含Hibernate配置文件和执行SQL语句工具
(3)Tomcat服务器Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的tomcat标志改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的这里的诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSPeServlet容器是Tomcat的默认模式不过,Tomcat处理静态HTML的能力不如Apache服务器Tomcat服务器的优点有
①免费
②开源
③支持最新标准
④更新快
⑤跨平台3需求分析
3.1信息采集与调研前期对于校园意见箱的现状和同班同学们做了讨论,大家普遍反映生活学习,校园建设上问题是存在的,同学们也是乐意与通过这个渠道来反映问题的,但是现在的意见箱放置位置,问题回馈等都没有良好的处理,诟病颇多,对于提出的网上意见箱大家普遍表示欢迎,在即方便实用的同时还保护了大家的隐私,而且对于管理员的回复大家可以随时关注,这样能够形成良好循环和校园环境,促进学校的正常运转,解决同学们切合实际的生活问题
[1]最后印制了问卷对于大家的看法进行了问卷调查,问卷内容设计针对意见箱的现状,存在问题,如何解决,如何分类,分哪些类等并且在后期对问卷数据进行了量化取得了一手数据,这对于系统的需求和模块设计有着重要的意义(附录问卷内容)
(1)意见箱的分布调研我们可以看到我们的问卷里面有48人(96%)不知道,2人是知道的图3-1意见箱位置调查图
(2)意见的反馈处理调研我们可以看到有些意见箱布满灰尘,锁也是锈迹斑斑,意见箱的表面都没有得到及时清理,那么可想而知之,对意见箱里的意见信根本就不会得到很好的传达和处理这样也会使得师生们对意见箱的作用感到失望,从而不会去使用意见箱,学校领导得不到师生们的真实信息,由此作出的决策可能会不是特别符合学校的真实情况这样就会产生恶性循环,不利于学校的发展意见箱的问题反馈厄待解决
[2]
(3)同学们对于意见箱看法同学们普遍反映学校把意见箱看成一种面子工程,只是表面上做做样子而已,说明我们学校的民主氛围,廉洁的工作和师生的权利,但是实际上不重视意见箱的作用,也忽视意见箱所带来的效应和积极的影响这领导的不重视,更加导致师生们的不重视,从而,更没有师生通过意见箱的方式来表达自己的意见,从而导致意见箱变成了“垃圾箱”我们可以看到45名(90%)同学认为不重视意见箱是一种很好的沟通方式,但是现在学校意见箱的使用率普遍偏低,我们应该采取一些措施来提高意见箱的使用率,发挥它真实的作用和效应图3-2意见箱意见反馈调查图
(4)意见的反馈处理调研可以再学校设立一个电子公告栏和网络公告栏,将可采取的意见在电子公告栏和网上公告栏双方面的进行公示,并对此进行表扬和鼓励而对那些存在一定问题的意见,可以在网上公告栏进行公示,并对不足进行指点,指出不足,让师生了解他们的不足,并进行重新思考,然后提出更符合实际的意见如果师生投递了意见和建议,无论他们的意见是否得到通过,但是没有得到回馈,作为提供者都会认为这个意见或建议石沉大海而觉得投递意见和建议是无效的,这样不利于意见箱发挥其持续性的作用所以电子公告栏和网络公告栏这样的方式,可以让师生感到了他们的存在感,从而增加了师生们的参与度,给学校领导的决策提供了帮助,这样利于学校的发展,形成一个良好的氛围而且,公示制度可以让师生们重视意见的质量,防止一些针对个人意见的出现
[2]我们可以看到有33人(66%)喜欢学校采取意见公示的方式,17人不喜欢
(5)意见箱公示方式调研校园网上意见箱虽然可以很好的解决传统意见箱的放置,收集问题等问题,但是还需要专人对网上意见的收集和分类,并且对问题进行筛选并上报到学校,学院的负责人,对于问题的回应也应该及时进行回馈,以免造成只提问题而没有回复的空架子工程,不能解决实际问题图3-3意见箱公示调查图图3-4意见箱类别调查图
(6)意见箱的使用形式与问题分类调研意见箱的分类设立了校园建设类,生活类意见,学习类意见设立不用方面的意见箱,不仅可以体现学校的重视程度,更可以节省了整理人员的时间,缩短了上报的时间,更加有效的让意见快速的传递到领导那里,从而更快的给师生反馈,形成一种快速机制,让师生们更加的放心提意见有30人(60%)希望设立细分的意见箱针对问题类型的细分又进行了调查,同学们的投票显示希望将意见主要分为三类,生活类,学习类,校园建设类,能反映几乎全部学生的分类要求图3-5意见箱分类与否调查图图3-6意见箱分类调查图
(7)意见箱的宣传与使用图3-7意见箱使用程度调查图上可以看出学生们还是认可意见箱这种反映问题的方式,网上意见箱相比传统意见箱优势在于它的快速传播性,前期也需要对此进行宣传,也要保证每个学生知道意见箱的存在性它是学校与师生沟通的平台,在将来会起到无可估量的作用,必须要重视加大管理,合理使用
3.2可行性分析
3.
2.1经济可行性系统运行所需的成本较小,主要成本来自服务器及网站维护,管理人员的熟悉和使用以及人员工资,系统设计简单友好,用户很容易掌握,网站可以挂钩到校园网址实行本系统后可以大大的降低日常的意见箱固定成本费用,人员费用提高了管理的效率已经问题的提出以及反馈的效率能够给学生的学习生活,校园的建设带来良好的改变,并且有助于对学校的管理人员做出决策,对校园形象是一个很大的提升综上所述学校只需要投入少量的人力资本和域名费用,便可以大大减少以往成员成本费用所以此系统在经济上是可行的同学们只需要登录校园网站进入意见箱系统就能使用,简单经济
3.
2.2技术可行性本系统使用b/s架构,Java语言开发,mysql数据库tomcat服务器ajax等技术Java语言的web开发在网页上有着很大的优势,页面美观而且逻辑清楚,功能强大,使用方便Mysql数据库对于小型系统的使用稳定方便,关系型清楚明了B/S结构(Browser/Server,浏览器/服务器模式),B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护系统的扩展非常容易Mysql数据库通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配没有内存漏洞简单方便,安全实用Struts2hibernate的使用可以使开发和连接数据库变得简单,MVC建构清晰,分工明确做到了高内聚低耦合cssdivjquery的使用使得页面简洁用户交互良好,ajax的使用使得服务器压力减少用户体验变的更好
3.
2.3社会可行性时代的进步必将带来旧事物的更新和新技术的使用,老式校园意见箱的使用方式必将随着网络的日趋使用和技术的成熟被代替以人为本的思想将会更加深入,所以学生的生活,学习问题校方会越来越重视,网络校园意见箱的使用也会在校园建设的过程中扮演重要角色在学校的推动下进程会加快建设进程
3.3需求分析
3.
3.1系统功能模块图图3-8系统功能模块图本系统的主要使用用户为学生和管理员学生模块的主要功能有注册,登录,提出新的意见,查看意见,查看热点意见,查看分类意见,查看自己已经提出意见,查看意见详情,对意见进行评价,给意见投票管理员模块的主要功能有登录,查看意见,查看意见详细,对意见进行删除操作,对意见进行回复
3.
3.2系统用例图�系统��注册登录查看意见列表登录用户管理员#0;#0;问题管理include删除include提出新意见个人问题管理#0;回复(评论)查看问题详细includeincludeinclude#0;#0;#0;#0;图3-9系统用例图用例介绍用户用例说明用户-注册用户如果没有账号可以,填写邮箱,用户名,密码进行注册成为用户用户-登录用户在注册或者有账号时可以登录系统进行操作用户-查看意见用户登录后获得所有问题的列表,可以分类查看,生活类,学习类,校园建设类,热点问题,最近回复,还可以查看自己提出的历史意见用户-提出新意见用户登录后可以提出新的问题,输入问题的分类,问题标题,内容评论意见用户对于关心的问题可以点击查看仔细,并且可以再问题的下方看到该问题别的用户提出的建议,自己也可以对该问题进行评论给意见投票用户点击查看问题详细之后有问题的热度显示,点击“顶”“踩”可以对该问题进行投票,+1或者-1操作会影响问题的热度下述是对用户“注册”功能的描述用户启动校园意见箱系统系统提示未注册用户进行注册用户进行注册系统进行验证,不成功显示错误,否则显示验证成功下述是对用户“登录”功能的描述用户启动校园意见箱系统系统提示用户进行登录用户进行登录系统进行验证,不成功显示错误,否则显示验证成功下述是对用户“个人问题管理”功能的描述前置条件用户已经登录用户查看问题列表,点击详细系统执行查看个人问题详细下述是对用户“评价”功能的描述前置条件用户已经登录系统显示问题详细用户进行投票系统进行投票操作,执行修改票数下述是对用户“评论”功能的描述前置条件用户已经登录系统显示问题详细用户进行评论系统进行显示操作,执行插入用户评论并显示操作管理员用例功能描述下述是对管理员“登录”功能的描述管理员启动校园意见箱系统系统提示用户进行登录管理员进行登录系统进行验证,不成功显示错误,否则显示验证成功下述是对管理员“查看详细”功能的描述前置条件管理员已经登录管理员查看问题列表,点击详细系统执行查看问题详细下述是对管理员“回复”功能的描述前置条件管理员已经登录系统显示问题详细管理员进行投票系统进行投票操作,执行修改票数下述是对管理员“评论”功能的描述前置条件用户已经登录系统显示问题详细用户进行评论系统进行显示操作,执行插入用户评论并显示操作管理员-登录管理员通过验证可以登录系统管理员-查看问题管理员登录成功后可以查看问题列表,分类,热度管理员-删除问题管理员可以对问题进行删除操作管理员-回复对于问题管理员可以再查看详细后进行回复回复后会在问题的下方显示4系统分析
4.1系统分析任务和目标根据上述的用例图需求分析,通过识别问题域中的实体,设计类图;通过分析类(对象)之间的动态关联关系,根据消息发送的时间先后分析时序图;根据每个对象的生命周期和存在状态设计状态图;根据不同用户的活动内容设计活动图
4.2类图����+getUid+setUid+getUsername+setUsername+getPassword+setPassword+getEmail+setEmail+getRole+setRole-uid-username-password-email-role用户表+getQid+setQid+getUid+setUid+getTitlte+setTitle+getDcontent+setDcontent+getType+setType+getQtime+setQtime+getAnswer+setAnswer+setAnswerContent+getAnswerContent+getCare+setCare-qid-uid-dcontent-type-qtime-answer-care问题表+getMid+setMid+getQid+setQid+getUid+setQid+getMcontent+setMcontent+getMtime+setMtime-mid-uid-qid-mcontent-mtime评论表1�*1�**�
0..11图4-1系统类图在面向对象方法所建立的模型中,类图是最重要的模型图,它描述了系统中各类对象以及他们之间的关系经过对在线销售系统的分析,该系统需要五个类分别是用户类,书籍类,书籍分类类,购物车类,和订单类,且类与类之间存在着联系主要涉及了三个实体类对应数据库三个表用户表uid,问题表qid,评论表mid,问题表主键qid,外键uid,评论表主键mid,外键qid,uid类间的关联关系说明一个用户对应多个评论,一个用户对应多个问题,一个问题对应多个评论
4.3时序图根据本系统设计的对象以及涉及的消息间的信息发送和接受绘制的时序图��注册登录问题列表浏览注册成功顶层包::用户查看全部列表点击注册查看详细问题详细注册失败评论问题问题投票评论问题投票提出新问题提出新意见图4-2系统用户消息时序图用户注册用户如果没有账号可以,填写邮箱,用户名,密码进行注册成为用户登录用户在注册或者有账号时可以登录系统进行操作查看意见用户登录后获得所有问题的列表,可以分类查看,生活类,学习类,校园建设类,热点问题,最近回复,还可以查看自己提出的历史意见提出新意见用户登录后可以提出新的问题,输入问题的分类,问题标题,内容评论意见用户对于关心的问题可以点击查看仔细,并且可以再问题的下方看到该问题别的用户提出的建议,自己也可以对该问题进行评论给意见投票用户点击查看问题详细之后有问题的热度显示,点击“顶”“踩”可以对该问题进行投票,+1或者-1,操作会影响问题的热度详细发出注册消息,系统响应后验证,成功后跳转到登录界面,发出登录消息,系统接受消息后验证用户名,密码,角色验证成功后跳转到详细信息界面,发出查看问题详细消息后系统跳转到问题详细界面,次界面用户可以对问题进行评论,投票,系统接受到请求后将接受的数据写到数据库并实时显示到页面上��注册登录问题列表浏览注册成功顶层包::用户查看全部列表点击注册查看详细问题详细注册失败评论问题问题投票评论问题投票提出新问题提出新意见图4-3系统管理员消息时序图管理员登录管理员通过验证可以登录系统查看问题管理员登录成功后可以查看问题列表,分类,热度删除问题管理员可以对问题进行删除操作回复对于问题管理员可以再查看详细后进行回复回复后会在问题的下方显示详细管理员发出登录消息请求,系统根据输入的用户名,密码,角色进行判断,验证成功后跳转到问题详细列表,管理员可以对问题进行查看,并且发出查看问题详细消息请求,系统接受请求后跳转到问题详细界面,管理员对不合格问题可以进行删除,消息发出后系统接收删除掉数据库中对应的数据,并反映到新的界面上,管理员对于问题可以发出回复请求并输入内容,系统接收请求之后对接收的回复存入数据库,并且将问题的回复状态设置为已回复,显示到页面上
4.4状态图
4.
4.1用户状态图�用户状态为已登录正确用户已经被删除管理员登录管理员已登录删除用户用户退出登录管理员退出登录用户未登录图4-4用户状态图用户登录以后用户的状态更改为已经登录,点击退出后用户状态为已经退出管理员登录后用户状态为管理员已经登录,管理员删除用户后用户的状态更改为用户已经被删除
4.
4.2问题状态图�问题信息显示点击查看问题列表问题热度更改点击投票问题已评论提出新问题评论问题#0;问题信息已更改更新问题信息问题被删除管理员已回复回复问题图4-5问题状态图用户或者管理员登录后点击查看问题列表,问题的状态更改,为显示点击提出新问题后新问题提出,问题信息显示状态更改,刷新列表点击投票按钮,问题的热度更改,热点问题更改点击评论问题,问题的评论状态更改,为已经评论,点击删除问题,问题状态更改为已经删除
4.5活动图活动图(activitydiagram,动态图)是阐明了业务用例http://baike.baidu.com/view/
706238.htm\t_blank实现的工作流程业务用例http://baike.baidu.com/view/
706238.htm\t_blank工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作业务用例http://baike.baidu.com/view/
706238.htm\t_blank由一系列活动组成,它们共同为业务主角生成某些工件工作流程通常包括一个基本工作流程和一个或多个备选工作流程工作流程的结构使用活动图来进行说明选择不同角色,用户或者管理员登录系统,用户注册,注册验证通过可以登录,已经有账号可以直接登录,登录验证成功后进入主页面
1.用户可以查看自己已经提出的历史问题,可以根据分类提出新的问题,可以查看所有用户提出的问题列表,以及问题分类显示,热点问题和最新回复列表,点击查看问题详细后可以查看问题的评论,可以对问题进行投票,“顶”“踩”
2.管理员验证后成功登录系统可以查看问题,问题详情,可以对问题进行分类查看,对于恶意问题或者不符合规则要求管理员可以进行删除问题操作,回复问题图4-6系统活动图5系统设计与实现综合上述的系统分析
[21]系统的设计任务是实现学生模块的主要功能注册,登录,提出新的意见,查看意见,查看热点意见,查看分类意见,查看自己已经提出意见,查看意见详情,对意见进行评价,给意见投票管理员模块的主要功能:登录,查看意见,查看意见详细,对意见进行删除操作,对意见进行回复做到前台UI界面交互友好,后台数据库关系清晰,操作人性化,简单,便于往后的升级维护
[20]
5.1数据库设计数据库设计是在选定的数据库管理系统基础上建立数据库的过程数据库设计应包括概念结构设计、逻辑结构设计和物理结构设计三个阶段
[17]
5.
1.1数据库概念设计概念结构设计是将需求分析得到的用户需求抽象为信息结构即概念模型的过程描述概念模型最有力的工具是E-R图
[18]数据库的表对应程序中的实体类
[10],表间的关系对应hibernate的实体类间的对应关系,图5-1中矩形代表实体,菱形代表关系图中关系为一个用户提出多个问题,一个问题对应多个评论,一个用户可以发表多个评论用户(用户编号,用户名,密码,邮箱,角色)问题问题编号,标题,内容,时间,回复,热度留言留言编号,用户编号,问题编号,内容,时间
5.
1.2数据库物理结构设计系统物理结构主要是数据库在计算机中映像,其包括数据元素的表示和关系的表示
[20]主要是用来表明各个表的存储结构以及各个字段的类型、大小等等
[17]本系统所用数据库为mysql
6.0的所有主键均为自增长
[20]数据库表结构设计如下
(1)评论留言表dmessage留言表设计的时候考虑到留言是由用户提出,留言是针对问题的,所以留言表的主键为mid,外键为qid,uid.通过外键关联寻找留言表主要内容为留言内容,留言时间开始设计的时候设计了一个用户评论表和管理员回复表,使用的时候发现用户和管理员对问题的都可以统称为留言,只是叫法不同,储存的都是相同的,所以将两张表合并���1提出用户问题对应评论发表n1nn1用户名�角色�用户编号�邮箱�密码�问题编号标题用户编号�内容类型时间回复热度评论内容评论编号评论时间用户编号问题编号图5-1数据库关系对应图序号列名字段类型长度描述12345miduidqidmcontentMtimeintIntIntVarcharTimestamp101010200主键外键外键NOTnullCURRENT_TIMESTAMP表5-1留言表
(2)问题表dquestion问题的涉及的关联为用户,所以主键为问题qid外键为用户uid其他为问题的属性,问题标题,问题内容,问题类型,提问时间问题表的使用过程中修改最为频繁,前期表设计的时候字段不够,类型出错等,后期都做了一一修改序号列名字段类型长度描述123456789qiduidtitledcontenttypeqtimeansweranswercontentcareintintvarcharvarcharvarchartimestampcharvarcharint1010202001020320010主键外键NotnullNotnullNotnullCURRENT_TIMESTAMPDefaultnoDefault0表5-2问题表
(3)用户信息表duser用户信息表主要记录用户的信息,主键为uid属性为用户名,密码,邮箱,角色类型开始设计的时候有两张表,用户表和管理员表最后发现两张表几乎是一样的,所以合并成了一张表,增加了一个字段为角色,通过角色的不同来控制为普通用户还是管理员序号列名字段类型长度备注12345Uidusernamepasswordemailroleintvarcharvarcharvarcharvarchar102032326主键NotnullnullNotnullNotnull表5-3用户表
5.2系统连接与配置
5.
2.1据库连接配置文件文件名Hibernate.xmlxmlversion=
1.0encoding=UTF-8!DOCTYPEhibernate-configurationPUBLIC-//Hibernate/HibernateConfigurationDTD
3.0//ENhttp://hibernate.sourceforge.net/hibernate-configuration-
3.
0.dtd!--GeneratedbyMyEclipseHibernateTools.--hibernate-configurationsession-factorypropertyname=myeclipse.connection.profilexiaoyuan/propertypropertyname=connection.urljdbc:mysql://localhost:3306/xiaoyuanuseUnicode=trueamp;characterEncoding=utf8/propertypropertyname=connection.usernameroot/propertypropertyname=connection.passworddx/propertypropertyname=connection.driver_classcom.mysql.jdbc.Driver/propertypropertyname=dialectorg.hibernate.dialect.MySQLDialect/propertypropertyname=show_sqltrue/propertypropertyname=format_sqltrue/propertymappingresource=com/dbmapping/Duser.hbm.xml/mappingresource=com/dbmapping/Dquestion.hbm.xml/mappingresource=com/dbmapping/Dmessage.hbm.xml//session-factory/hibernate-configuration
5.
2.2struts2配置文件文件名Struts.xmlxmlversion=
1.0encoding=UTF-8!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration
2.
1.7//ENhttp://struts.apache.org/dtds/struts-
2.
1.
7.dtdstrutsconstantname=struts.devModevalue=false/!--extends=json-default--packagename=viewofcompusextends=struts-defaultnamespace=/!--验证码--actionname=imageclass=com.action.ImageActionresultname=successtype=streamparamname=inputNameimage/param/result/action!--actionname=validclass=com.action.ValidImageActionresultname=successtype=json/result/action--!--登录--actionname=loginclass=com.action.LoginActionmethod=executeresultname=successmain.jsp/resultresultname=error/error/login_error.jsp/resultresultname=managersuccessmanagermain.jsp/result/action!--新的问题--actionname=addquestionclass=com.action.AddQuestionActionmethod=executeresultname=successmain.jsp/resultresultname=input/user/newnews.jsp/result/action/package!--注册--packagename=usernamespace=/extends=struts-defaultinterceptorsinterceptorname=transactionclass=com.interceptor.TransactionInterceptor/interceptor-stackname=transactionStackinterceptor-refname=transaction/interceptor-refname=defaultStack//interceptor-stack/interceptorsactionname=registclass=com.action.RegistActionmethod=executeinterceptor-refname=transactionStack/interceptor-refname=defaultStack/resultname=successtype=redirect/user/login_form.jsp/resultresultname=input/user/register_form.jsp/resultinterceptor-refname=token/resultname=invalid.token/error/error
1.jsp/result/actionactionname=userinfoclass=com.action.UserInfoActionmethod=executeresultname=successuserInfo.jsp/result/action!--显示热点问题--actionname=careinfoclass=com.action.ShowActionmethod=getcareinforesultname=successcareinfo.jsp/result/action!--显示已回复问题--actionname=answerinfoclass=com.action.ShowActionmethod=getanswerinforesultname=successanswerinfo.jsp/result/action!--显示校园建设问题--actionname=xyinfoclass=com.action.ShowActionmethod=getxyinforesultname=successxyinfo.jsp/result/action!--显示生活问题--actionname=shinfoclass=com.action.ShowActionmethod=getshinforesultname=successshinfo.jsp/result/action!--显示学习问题--actionname=xxinfoclass=com.action.ShowActionmethod=getxxinforesultname=successxxinfo.jsp/result/action/package!--提问问题管理--packagename=questionextends=struts-defaultnamespace=/!--查看问题详细--actionname=singleInfoclass=com.action.QuestionActionmethod=getSingleresultname=success/user/indetail.jsp/result/action!--添加评论--actionname=adddiscussclass=com.action.AddDisscussActionmethod=executeresultname=successtype=redirect/user/indetail.jsp/result/action/package!--管理员模块--packagename=manageextends=struts-defaultnamespace=/!--删除问题--actionname=deletequestionclass=com.action.DeleteQuestionActionmethod=executeresultname=successtype=redirect/user/managermain.jsp/result/action!--管理员查看问题详细--actionname=singleInfomclass=com.action.QuestionActionmethod=getSingleresultname=success/user/mindetail.jsp/result/action!--管理员回复问题--actionname=adddiscussmclass=com.action.AddDisscussmActionmethod=executeresultname=successtype=redirect/user/mindetail.jsp/result/action!--热度加一--actionname=careaddclass=com.action.CareAddActionmethod=addresultname=success/user/indetail.jsp/result/action!--热度减一--actionname=careredclass=com.action.CareRedActionmethod=redresultname=success/user/indetail.jsp/result/action!--热度显示刷新--actionname=refreshclass=com.action.refreshActionmethod=refreshresultname=success/user/main.jsp/result/action/package/struts
5.3系统界面及功能详解
5.
3.1用户登录过程功能详解登录界面Jsp静态包含了页头和页尾左边为系统介绍,右边为登录框体页面包含属性username,password用户类型第一次进入系统需要新注册一个用户,点击连接进入用户注册界面如图5-2所示用户登录界面核心代码formmethod=postaction=loginullispan输入您的nbsp;nbsp;用户名/spaninputtype=textname=usernameid=txtUsernameclass=textbox//lilispanclass=blank密码/spaninputtype=passwordname=passwordid=txtPasswordclass=textbox//liliinputtype=radioid=studentclass=button_enter2name=categoryvalue=userchecked=checked/学生inputtype=radioid=manageclass=button_enter3name=categoryvalue=manage/管理员/lilispaninputtype=submitid=btnSignCheckclass=button_entervalue=登录//spaninputtype=resetid=btnSignCheckclass=button_enter1value=取消//li/ulinputtype=hiddenname=urivalue=${uri}//form图5-2登陆界面登录验证核心代码publicStringexecute{ifusername.trim.equals||password.trim.equals{this.addFieldErrorusernameorpasswordnotnull!;returnERROR;}else{ifcategory.equalsuser{UserDaouserdao=newUserDao;ifpassword.equalsuserdao.findUserByNameusernamecategory.equalsuserdao.findUserByTypeusername{intuid=userdao.finIdByNameusername;session=ActionContext.getContext.getSession;session.putusernameusername;session.putpasswordpassword;session.putuiduid;//查询所有的问题ListDquestionallquestionlist=newQuestionDao.findAllQuestion;//查询已回复问题session.putallquestionlistallquestionlist;returnsuccess;}this.addFieldErroruser1roleerrorusernameerrororpasswordDoesnotexist;returnerror;}ifcategory.equalsmanage{UserDaouserdao=newUserDao;ifpassword.equalsuserdao.findUserByNameusernamecategory.equalsuserdao.findUserByTypeusername{intuid=userdao.finIdByNameusername;session=ActionContext.getContext.getSession;session.putuserusername;session.putpasswordpassword;session.putuiduid;//查询所有的问题ListDquestionallquestionlist=newQuestionDao.findAllQuestion;//查询已回复问题session.putallquestionlistallquestionlist;returnmanagersuccess;}this.addFieldErrormanager1managernameerrorormanagerpassworderror;returnerror;}this.addFieldErroruerror!;returnerror;}用户注册界面(如图5-3所示)接受用户填写基本信息用户名、密码和邮箱,用户表的字段和其对usernamepasswordrepasswordemailcode验证码每一行信息的后面有输入提示,如果输入不正确会提示为空,或者信息错误,验证码错误点击验证码的换一个图标可以更换验证码,点击注册会对填写信息进行验证,验证不成功显示错误信息,返回到注册页面,验证成功跳转到登录页面进行登录操作登录过程用户名或者密码错误会返回错误信息页面login_error.jsp登录成功会直接跳转到主页面,问题列表显示页面main.jsp图5-3系统注册界面用户注册界面核心代码s:formmethod=postaction=registvalidate=truenamespace=/h2以下均为必填项!--验证未通过提示信息展示--s:fielderrorcssStyle=color:red/s:fielderror/h2tableclass=tab_logintrtdvalign=topclass=w1请填写您的Email地址/tdtdinputname=emailtype=textid=txtEmailclass=text_input/divclass=text_leftid=emailValidMsgp请填写有效的Email地址/pspanid=email.infostyle=color:red/span/div/td/trtrtdvalign=topclass=w1设置您的用户名/tdtdinputname=usernametype=textid=txtNickNameclass=text_input/divclass=text_leftid=nickNameValidMsgp您的昵称可以由小写英文字母、中文、数字组成,/pp长度4-20个字符,一个汉字为两个字符/pspanid=name.infostyle=color:red/span/div/td/trtrtdvalign=topclass=w1设置密码/tdtdinputname=passwordtype=passwordid=txtPasswordclass=text_input/divclass=text_leftid=passwordValidMsgp您的密码可以由大小写英文字母、数字组成,长度6-20位/pspanid=password.infostyle=color:red/span/div/td/trtrtdvalign=topclass=w1再次输入您设置的密码/tdtdinputname=password1type=passwordid=txtRepeatPassclass=text_input/divclass=text_leftid=repeatPassValidMsgspanid=password
1.infostyle=color:red/span/div/td/trtrtdvalign=topclass=w1验证码/tdtdimgclass=yzm_imgid=imagesrc=image.action/br/inputtype=textname=ycodeid=codeclass=yzm_input/spanid=msg/spanaonClick=changeImgstyle=cursor:pointernbsp;换一张/abr//td/tr/tabledivclass=login_ininputid=btnClientRegisterclass=button_1name=submittype=submitvalue=注册/s:token//div/s:form主页面主要内容有提出新建议连接,个人问题连接,问题分类查看连接,问题列表,以及问题详细显示连接如图5-4所示主页面,问题显示页面核心代码tablecellSpacing=6cellPadding=2width=100%border=0tbodytrtdtableclass=guidecellSpacing=0cellPadding=0width=100%border=0tbodytrtdwidth=54%ahref=#主页/anbsp;/nbsp;ahref=newnews.jsp提出新建议/anbsp;/nbsp;问题列表nbsp;/nbsp;欢迎ahref=userinfos:propertyvalue=#session.username/同/a/tdtdwidth=9%ahref=careinfo热点问题/a/tdtdwidth=9%ahref=answerinfo已回复/a/tdtdwidth=9%ahref=xyinfo校园建设/a/tdtdwidth=9%ahref=shinfo生活问题/a/tdtdwidth=9%ahref=xxinfo学习问题/a/td/tr/tbody/tablebr/tableclass=tablebordercellSpacing=0cellPadding=0width=100%border=0tbodytrclass=headertdclass=altbg2colspan=6问题列表¡§/td/trtbodytrtdclass=altbg1width=10%bnbsp;nbsp;nbsp;nbsp;nbsp;类型/b/tdtdclass=altbg1width=20%bnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;标题/b/tdtdclass=altbg1width=10%bnbsp;nbsp;nbsp;nbsp;时间/b/tdtdclass=altbg1width=5%bnbsp;nbsp;nbsp;nbsp;nbsp;回复/b/tdtdclass=altbg1width=5%bnbsp;nbsp;nbsp;nbsp;nbsp;热度/b/td/tr/tbodytbodys:iteratorvalue=#session.allquestionlistvar=aqltrtdclass=altbg2s:propertyvalue=#aql.type//tdtdclass=altbg2ahref=singleInfoquestion.Qid=s:propertyvalue=#aql.qid/s:propertyvalue=#aql.title//a/tdtdclass=altbg2s:propertyvalue=#aql.qtime//tdtdclass=altbg2nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;s:propertyvalue=#aql.answer//tdtdclass=altbg2nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;s:propertyvalue=#aql.care//td/tr/s:iterator/tbody/tablebr/centerinputclass=buttontype=buttonvalue=上一页name=settingsubmitonclick=location=computer_list.html;inputclass=buttontype=buttonvalue=下一页name=settingsubmitonclick=location=#;/center/td/tr/tbody/table图5-4问题显示主界面点击提出新问题newnews.jsp跳转到newnews.jsp页面,在此页面可以提出新的问题,分为问题类型,问题标题,问题内容点击提交,问题会写入数据库,跳转到主页面,并且刷新问题列表,将刚提出的问题显示到问题列表中如图5-5所示图5-5提出新的问题提出问题的核心代码s:formaction=addquestionmethod=posttablewidth=//450height=211border=0cellpadding=0cellspacing=0class=form_tabletrtdwidth=58align=rightvalign=middle类型:/tdtdwidth=328align=leftvalign=middleinputtype=radioclass=inputgriname=qtypevalue=校园建设checked=checked/校园建设inputtype=radioclass=inputgriname=qtypevalue=生活意见/生活意见inputtype=radioclass=inputgriname=qtypevalue=学习意见/学习意见/td/trtrtdvalign=middlealign=right标题:/tdtdvalign=middlealign=leftinputtype=textclass=inputgriname=title//td/trtrtdvalign=middlealign=right内容:/tdtdvalign=middlealign=lefttextareaname=dcontentclos=40rows=5//textarea/td/trtb/tb/tablepinputtype=submitclass=buttonvalue=提交//ps:token//s:form添加问题部分核心代码publicStringexecute{SimpleDateFormatdf=newSimpleDateFormatyyyy-MM-ddHH:mm:ss;Stringstr=df.formatnewDate;QuestionDaoquestiondao=newQuestionDao;Dquestionquestion=newDquestion;//实例化用户对象session=ActionContext.getContext.getSession;intuid=Integersession.getuid;System.out.printlnuid;question.setUiduid;question.setTitletitle;question.setDcontentdcontent;question.setTypeqtype;question.setQtimestr;question.setAnswerno;System.out.printlnuid++title++dcontent++qtype;intnum=Integerquestiondao.saveEntityquestion;//查询所有的问题ListDquestionallquestionlist=newQuestionDao.findAllQuestion;session.putallquestionlistallquestionlist;ifnum0{this.setTipthis.getText提出建议信息有误,正在跳转;returnsuccess;}else{this.setTipthis.getText问题信息有误,请仔细按照要求填写;returninput;}}点击个人信息连接跳转到我的信息页面,此页面显示了用户已经提出问题列表显示问题的类型,标题,提问时间,回复与否,以及热度点击连接可以查看详细,如图5-6所示图5-6查看个人问题publicStringexecute{session=ActionContext.getContext.getSession;intuid=Integersession.getuid;//查询用户提问的问题ListDquestionallquestionlist1=newQuestionDao.findAllmyQuestionuid;session.putallquestionlist1allquestionlist1;returnsuccess;}点击问题分类浏览问题按热度分类,按照问题投票的热度降低分类如图5-7所示图5-7按问题分类界面publicStringgetcareinfo{//查询所有的问题ListDquestioncarequestionlist=newQuestionDao.findcareQuestion;session=ActionContext.getContext.getSession;session.putcarequestionlistcarequestionlist;returnsuccess;}问题按类别分类(管理员已经回复问题)图5-8管理员已回复问题校园建设类问题显示核心代码publicStringgetanswerinfo{//查询所有的问题ListDquestionanswerquestionlist=newQuestionDao.findanswerQuestion;session=ActionContext.getContext.getSession;session.putanswerquestionlistanswerquestionlist;returnsuccess;}图5-9查询学习分类列表图查询学习类核心代码publicStringgetxxinfo{//查询所有的问题ListDquestionxxquestionlist=newQuestionDao.findxxQuestion;session=ActionContext.getContext.getSession;session.putxxquestionlistxxquestionlist;returnsuccess;}图5-10学习意见分类页面图5-11生活意见分类列表查询生活类信息核心代码publicStringgetshinfo{//查询所有的问题ListDquestionshquestionlist=newQuestionDao.findshQuestion;session=ActionContext.getContext.getSession;session.putshquestionlistshquestionlist;returnsuccess;}点击查看问题详细页面indetail.jsp页面主要布局为上方部位显示问题的详细信息,右端增加了问题的投票,+1,-1,点击后会对问题的热度进行++和--操作下方显示问题的评论列表,以及评论用户评论下方为输入新的评论,输入评论后点击回复,刚才输入的内容会被显示到上方的评论列表内点击返回会返回到主界面,主界面会重新读取数据,将用户操作的新数据,热度等进行刷新,重新显示如图5-12所示图5-12评论页面显示详细信息页面部分代码publicStringgetSingle{session=ActionContext.getContext.getSession;intqid=question.getQid;session.putqidqid;question=newQuestionDao.getEntityByIDquestion.getQid;session.putquestionquestion;ListDmessageallmessagelist=newMessageDao.findAllmessageqid;session.putallmessagelistallmessagelist;System.out.printlnquestion.getDcontent;returnsuccess;}对问题进行投票-1+1代码publicStringadd{intqid=question.getQid;question=newQuestionDao.getEntityByIDqid;intcare=question.getCare;question.setCarecare+1;QuestionDaoquestiondao=newQuestionDao;questiondao.updateEntityquestion;returnsuccess;}
5.
3.2管理员登录过程功能详解输入用户名密码,选择角色为管理员后系统会进行登录验证,点击登录失败返回错误信息,用户名或者密码错误,或者角色错误验证成功会跳转到管理员主界面managermain.jsp管理员登录后会显示问题的详细信息,回复与否,热度,管理员可以对问题进行删除操作,点击删除连接后确认,该条问题会被删除,并且刷新页面数据库同步更新,页面上此条记录消失如图5-13所示图5-13管理员主页面删除问题核心代码publicStringexecute{session=ActionContext.getContext.getSession;intqid=question
1.getQid;question=newQuestionDao.getEntityByIDqid;newQuestionDao.deleteEntityquestion;//查询所有的问题ListDquestionallquestionlist=newQuestionDao.findAllQuestion;session.putallquestionlistallquestionlist;returnsuccess;}点击问题标题可以查看问题详细管理员详细界面没有对问题的投票连接,管理员可以对问题进行查看,回复,输入回复内容后问题的回复会显示到上方的评论列表框内,会显示用户为管理员点击返回后问题的回复状态会被更改,未回复的no会被更改为yes状态如图5-14所示图5-14管理员回复页面管理员回复问题部分核心代码publicStringexecute{SimpleDateFormatdf=newSimpleDateFormatyyyy-MM-ddHH:mm:ss;Stringstr=df.formatnewDate;MessageDaomessagedao=newMessageDao;Dmessagemessage=newDmessage;//实例化用户对象session=ActionContext.getContext.getSession;intuid=Integersession.getuid;intqid=Integersession.getqid;System.out.printlnuid++qid;message.setUiduid;message.setQidqid;message.setMcontentmcontent;message.setMtimestr;System.out.printlnuid++qid++mcontent++str;Intnum=Integermessagedao.saveEntitymessage6系统测试运行与维护
6.1系统测试系统测试是对完整集成后的系统进行测试的阶段,目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或矛盾的地方,用来评价系统对具体需求规格说明的符合性,系统测试是在单元、组件和集成测试阶段之后进行的主要针对软件系统和其他系统元素(及硬件、数据库和人机交互信息)组合构成完整的计算机应用系统中所有的元素配合是否合适以及整个系统的功能、性能、执行强度、安全性等是否达到规定标准而进行的测试系统测试前的准备工作主要包括对系统各种功能的描述;系统要求的数据处理及传输的速率;对系统性能的要求;对备份及修复的要求;对兼容性的描述;对配置的描述;对安全方面的要求等系统测试所用的数据必须尽可能地像真实数据一样精确和有代表性可以使用真实数据或者使用真实数据的一个复制,复制数据的质量、精度和数据量必须尽可能地代表真实的数据常见的系统测试类型分为功能测试、性能测试、边界测试接口测试、余量测试、安全性测试、强度测试等测试主要内容包括功能测试,即测试软件系统的功能是否正确,其依据是需求文档由于正确性是软件最重要的质量因素,所以功能测试必不可少健壮性测试,即测试软件系统在异常情况下能否正常运行的能力健壮性有两层含义一是容错能力,二是恢复能力对本系统的测试内容
(1)功能测试对本系统的管理员管理问题,回复问题用户提出问题,评论问题,对问题投票等功能进行测试
(2)健壮性测试对本系统的容错能力进行测试
[14]已经投票问题的热度上升,已经删除问题不能查到评论等保证了信息的完整和安全
6.2系统运行与维护管理信息系统开发成功并交付用户以后,便投入到了运行与维护阶段在运行过程中,还会发现一些潜在的错误,或者是用户对某些功能不满意,有改进的要求,也有可能是因为系统内部的业务逻辑或外部的环境发生了变化,这时就需要对其进行维护系统维护的目的就是为了保证系统正常、可靠地运行,并能使系统不断得到改善和提高,以充分发挥作用或者说,系统维护就是为了保证系统中的各个要素随着环境的变化始终处于最佳的和正确的工作状态这是系统生命周期的最后一个阶段,也是很重要的一个阶段,新系统是否有生命力取决于这一阶段的工作系统维护工作的内容大致包括程序的维护、数据库的维护、编码的维护、设备的维护和人员机构调整
6.3本系统所用测试技术和内容本系统采用黑盒测试,输出测试具体测试项目有
(1)系统的权限管理对用户,管理员两种角色分别进行登录验证,测试每一种角色可以使用的功能与其权限的一致性,页面跳转的正确性
(2)系统安全性测试系统的备份功能,备份数据库,更新数据,还原数据库,观察数据库是否还原至备份点
(3)对于系统的输入输出,数据库的连接,数据是否保持一致进行测试7总结与展望本课题研究内容高校网上意见箱管理系统的设计采用当今最为流行的网络编程语言之一的Javaweb开发,数据库采用mysql
6.0,简单易用,提高了数据的存储安全性,另外采用Tomcat服务器加快了系统的整体访问速度,系统整体框架采用B/S结构,利于和用户之间的交互,其功能设计基本达到了现代校园网络意见箱实际应用的需要具体实现了师生登录系统进行问题的提出,问题投票,留言功能管理员登录系统实现了查看问题,删除问题,回复问题功能在高校网上意见箱管理系统的设计实现过程中,明白了要做一个完整的系统,必须先从需求分析下手,拟好系统需要达到的功能和系统的所有需求,先想好设计的主要思路,并且画出系统的大体设计流程图和框架只要做好了这些准备工作,做起系统来才会得心应手,不能再像以前那样,想到那里就做到那里那样不但效率不高,还会影响到系统的完整性和可用性由于缺乏经验和水平欠缺,开发系统之前就应该找出要用到的相关知识,认真对待设计中的每一个问题,从方法到具体技术,对不懂的地方应该多参考资料经过一段时间的学习和使用,对Java已经能很熟练的使用,也有了一定的认识但是在实际的开发中仍然遇到了很多问题,有的时候困扰多时最终解决这段时间也锻炼了自己的耐心毅力和结局问题的能力了解了Java与mysql数据库连接的基本语法,以及Hibernate技术的使用,特别是一对多,多对多映射关系的描述和类的设计,其中遇到很多问题,通过艰难的摸索逐渐的熟悉了hibernate的使用,数据库数据调用同时也对Tomcat的认识更加深入,对MyEclipse软件的操作更加熟练经过大四的毕业设计,很好地锻炼了自己的动手能力,从中也总结出了不少的经验,为我们以后的工作打下了基础在这段时间里不断的发现自己的问题,然后找出问题产生的原因,并想办法解决问题从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达历经了几个月的奋战,紧张而又充实的毕业设计终于落下了帷幕回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助虽然本系统的设计涉及了几乎所有的学生和管理员的功能,但是系统的框架,页面还可以更加简洁,方法可以更加精炼用户的使用上还会有不断的新需求产生系统面临的更新也更多在管理员模块应该有更毒的统计分析功能,便于管理员更方便的宏观的做出决策参考文献
[1]张金传.意见箱如何有效地发挥作用.校长参考.20077:1-
2.
[2]丁星凡.三招活用“意见箱”.校长参考.20077:1-
2.
[3]杨治钊.意见箱不是垃圾箱.社区.20096:1-
2.
[4]java编程思想.北京机械工业出版社.
20076.1:1-
50.
[5]杨少敏樊双灵.struts2开发实录.北京:清华大学出版社.
2011.7:1-
78.
[6]美艾里特刘平利.精通hibernate.北京:机械工业出版社.
2009.
4.1:1-
89.
[7]张跃平耿祥义.jsp程序设计.北京:清华大学出版社.20098:20-
50.
[8]前沿科技.精通css+div.北京:人民邮电出版社.20078:30-
40.
[9]宋海燕.B/S结构将战胜C/S结构.民营科技.200912:20-
45.
[10]王瑜.基于MyEclipse的Hibernate持久层框架的开发过程.北京:清华大学出版社.20075:98-
107.
[11]NicodeWethttp://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22Nico+de+Wet%22+DBID%3aNSTL_QKPieterKritzingerhttp://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22Pieter+Kritzinger%22+DBID%3aNSTL_QK.UsingUMLmodelsfortheperformanceanalysisofnetworksystems.ComputerNetworks2005495:34-
36.
[12]JamesP.Davishttp://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22James+P.+Davis%22+DBID%3aNSTL_QKRonaldD.Bonnellhttp://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22Ronald+D.+Bonnell%22+DBID%3aNSTL_QK.PropositionalLogicConstraintPatternsandTheirUseinUML-BasedConceptualModelingandAnalysis.PropositionalLogicConstraintPatternsandTheirUseinUML-BasedConceptualModelingandAnalysis2007193:12-
13.
[13]杨树林胡洁萍.JavaWeb应用技术与案例教程.北京:人民邮电出版社,20112:267-
303.
[14]楚书来刘蕴.探析软件测试之系统测试.计算机光盘软件与应用.20125:01-
08.
[15]许勇王黎等.编著.Struts2+Hibernate+Spring整合开发技术详解.北京清华大学出版社
2010.10:75-
140.
[16]吴其庆.J2EE编程思想与实战.北京冶金工业出版社,20039:34-
89.
[17]萨师煊王珊.数据库系统概论.第三版高等教育出版社20002:198-
231.
[18]黄梯云.管理信息系统.北京:高等教育出版社
2005.33:152-
154.
[19]孙卫琴李洪成.Tomcat与JavaWeb开发技术祥解.北京:电子工业出版社,20062:78-
112.
[20]崔洋著.mysql数据库应用从入门到精通.北京中国铁道出版社20131:87-
99.
[21]郭东强著.现代管理信息系统. 北京:清华大学出版社 20062:120-
238.附录附录1问卷(发出去50份,回收50份,有效问卷48份)1.您知道学校的意见箱的具体位置吗?A知道B不知道您愿意通过意见箱的方式给学校提意见吗?A愿意B不愿意2.您觉得意见箱是一种学生和学校领导沟通的好方式吗?A是B不是3.您希望学校开设意见箱这样的渠道吗?A希望B不希望4.您觉得学校领导重不重视意见箱里的意见?A重视B不重视5.您更喜欢哪种渠道来提意见?A实体意见箱B电子意见箱6.您希望学校采取意见公示的方式吗?A希望B不希望7.您希望设立各个部门细分的意见箱吗?A希望B不希望
9.您希望设立几个分类来提问?A校园建设类B学习类C生活类D宿舍管理类E饭堂管理类
10.您对于网上校园意见箱的建设和管理有什么意见和建议吗?————————————————————————————————附录2软件开发环境配置与系统使用说明1安装开发工具MyEclipse
8.5在MyEclipse官网上下载myeclipse-
8.
5.
0.rar压缩包解压后,双击“myeclipse-
8.
5.0-win
32.exe”文件按照提示步骤安装,过程中全部用默认设置即可,安装过程耗时较多,不要随便取消2安装Tomcat服务器在Tomcat官网http://tomcat.apache.org/http://tomcat.apache.org/上下载apache-tomcat-
6.
0.
14.rar压缩包并解压3搭建系统运行环境安装完成后,按照下列顺序操作选择“开始”“程序”“MyEclipse
8.5”,进入开发界面,如下图所示图1MyEclipse
8.5开发界面选择“windows”“preferences”弹出如图2所示的界面在左面选择“Tomcat”选项下的“Tomcat
6.x”,右面选择“Enable”并选择安装Tomcat时解压的目录单击“OK”图2添加服务器界面单击图标,选择“ManageDeployments”进行项目部署,出现下图界面图3部署项目界面在server后的下拉列表里选择所用服务器“Tomcat
6.x”单击“Add”按钮添加项目,添加成功后,出现下图界面,单击“OK”,完成部署图4部署成功界面完成部署后,启动服务器单击图标,选择“Tomcat
6.x”服务器“start”启动服务后,需要检测服务器是否启动成功在IE浏览器的地址栏输入http://localhost:8080/http://localhost:8080/单击“回车”,若出现下图界面,则服务器启动成功图5Tomcat服务器启动成功界面4配置数据源,连接数据库“开始”“设置”“控制面板”“管理工具”“数据源”,在系统DSN里添加系统的数据库配置好后,服务器启动的同时Hibernate的配置文件对数据库进行配置并加载映射文件,通过映射文件把持久化对象和数据库表之间建立一个映射关系5运行系统在IE浏览器的地址栏输入http://localhost:8080/viewofcompus/user/login_form.jsphttp://localhost:8080/viewofcompus/user/login_form.jsp单击“回车”,进入系统登录界面参考上文中系统登录您希望学校采取意见公示的方式吗?3366%1734%A希望B不希望您更喜欢哪种渠道来提意见1224%3876%A实体意见箱B电子意见箱您愿意通过意见箱的方式给学校提意见吗4080%1020%A愿意B不愿意西安工程大学校园意见箱用户登录模块管理员模块注册登录提出新意见查看意见删除意见对意见回复我的意见查看全部意见对意见评价给意见投票。