基于jsp的失物招领系统的设计与实现_第1页
基于jsp的失物招领系统的设计与实现_第2页
基于jsp的失物招领系统的设计与实现_第3页
基于jsp的失物招领系统的设计与实现_第4页
基于jsp的失物招领系统的设计与实现_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书基于jsp的失物招领系统的设计与实现学生姓名:学号:学院:信息商务学院系名:电子与计算机科学技术系专业:网络工程指导教师:2015年5月基于jsp的失物招领系统的设计与实现摘要网络的迅猛发展,21世纪的今天人类社会已经进入到了信息化的时代,更是网络化高速发展的阶段。网络逐渐走进人们的生活,五彩缤纷的网上信息与人们的生活密切相关。互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用,它的实时性、方便性得到了人们的喜爱。国内的一些网站也如雨后春笋般的大量涌现。这些网站提供多种服务信息,实现信息的集中化管理,人们更快捷地获取需要的信息。拾金不昧是中华民族的传统美德,在这个网络日益发展的时代,网上寻物成为最简单方便的方式,只需要坐在家里就可以清清楚楚地知道自己丢失物品的情况。随着计算机技术的飞速发展,高校也已进入信息化时代。本次开发的网络爱心网站系统主要对这些问题进行解决,学生只要注册浏览网站就可以看到相关的失物招领信息,学生也可以发布寻物或是招领信息,可以十分方便的找到自己丢失的东西。本此毕业设计在研究目前国内外先进网站的基础上,以java为开发语言,myeclipse为开发工具,mysql作为数据库,结合失物招领相关信息进行开发的网站。这个系统具有伸缩性好,扩展性强,能兼容、易维护、界面美观,功能实用的功能。系统操作上,它对管理的工作人员的要求极低,只需要懂得基本的计算机操作即可胜任中网的工作。本文阐述了校园网的优势,并对所做系统站的分析、设计及实现过程做了详细介绍。系统完成后真正实现了爱心网站的网络化,本次的系统开发是失误招领网站网络化的推进,具有深远意义。关键词:失误招领网站,java,mysqlDesignandimplementationoflostandfoundthewebsiteAbstractTherapiddevelopmentofthenetwork,twenty-firstCenturiestoday,humansocietyhasenteredintotheinformationage,isthenetworkhighspeeddevelopmentstage.Thenetworkhasgraduallyintopeople'slives,closelyrelatedtoonlineinformationandpeople'slifeariotofcolors.TheInternethasbecomeanimportantchannelforpeopletoobtain,releaseandtransferinformation,itplaysanimportantroleinpeople'spolitical,economic,allaspectsoflife,itsreal-time,conveniencehasbeenlovedbythepeople.Somesitessuchastheemergenceofalargenumberofdomesticlikebambooshootsafteraspringrain.Thewebsiteprovidesavarietyofservicesinformation,achievethecentralizedmanagementofinformation,makepeoplemorequicklyfindtheinformationyouneed.ThatisatraditionalvirtueoftheChinesenation,increasingdevelopmentinthiseraofthenetwork,theInternetsearchhasbecomeoneofthemostsimpleandconvenientway,onlyneedtositathomecanclearlyknowyourselflostthings.Withtherapiddevelopmentofcomputertechnology,collegesanduniversitieshaveenteredtheinformationage.Thenetworklovewebsitethedevelopmentofthissystemmainlytosolvetheseproblems,aslongasthestudentsregisteredwebsitecanseethelostandfoundinformation,studentscanalsoreleaselostorfoundinformation,canbeveryconvenienttofindtheirlostthings.Thisgraduateofthedesignonthecurrentdomesticandforeignadvancedwebsitebasis,takingJavaasthedevelopmentlanguage,MyEclipseasadevelopmenttool,MySQLasdatabase,carriesonthedevelopmentwiththelostandfoundtherelevantinformationwebsite.Thissystemhasgoodflexibility,expansibility,compatibility,easymaintenance,theinterfaceisbeautiful,functionalandpracticalfunction.Systemoperation,themanagementofstaff'srequestisverylow,onlyneedtoknowthebasiccomputeroperationcanbecompetentthejob.Thispaperexpoundstheadvantagesofthecampusnetwork,andtomadethesystemanalysisanddesign,therealizationprocessofthestationareintroducedindetail.Afterthecompletionofsystemrealizesthenetworklovewebsite,thesystemdevelopmentistopromotecampuslovewebsitenetwork,hasfar-reachingsignificance.Keywords:lostandfoundwebsite,java,mysql目录摘要 IAbstract II第1章绪论 31.1课题背景 31.2目的与意义 31.3课题研究主要内容 41.3.1管理员功能 41.3.2用户功能 41.4国内外现状 4第2章需求分析 52.1系统用例分析 52.2功能需求分析 52.3数据需求分析 52.4数据字典分析 62.5系统模块E-R图 72.6关键技术介绍 102.6.1java技术简介 102.6.2mysql简介 102.6.3jsp简介 112.6.4S.S.H框架的优点 11第3章系统设计 143.1系统概要设计 143.1.1体系结构图 143.1.2功能层次图 143.2数据设计 153.3功能模块设计 173.3.1用户注册模块设计 183.3.2登录功能模块设计 183.4页面设计 203.4.1后台页面设计 203.4.2前台页面设计 21第4章系统实现 224.1数据库连接的实现 224.2功能模块实现 224.2.1用户注册功能模块实现 224.2.2登录模块实现 244.2.3失物招领总体模块实现 264.3页面实现 264.3.1发布寻物信息页面实现 264.3.2发布招领信息页面实现 284.3.3写感谢信页面实现 294.3.4成功案例页面实现 314.3.5用户管理页面实现 324.3.6物品管理页面实现 344.3.7评论管理页面实现 36第5章系统测试 385.1测试方案 385.2测试结果分析 38第6章结论 396.1总结 396.2展望 39参考文献 40致谢 411绪论1.1课题背景随着互联网的普及,我们越来越多的在网上获得信息的来源,当我们需要发布某些信息的时候我们首先想到的就是运用互联网进行。网站的质量是在于用户的体验和信息的质量,只要网站知识多、信息量大就一定会走进用户的心里。另一方面就是网站的稳定性和安全性,稳定性是基于代码的质量和数据库的优化,安全性在于网站的用户资料的安全和网站后台的安全,所以资料加密是很重要的。现如今随着我们的生活越来越好,珍贵的东西也越来越多,比如手机,钱包等。如果丢失了,我们只能自己去发宣传单去找丢失的东西,这样我们的生活失去了效率,同时也失去了最准确的信息。现在这个团队的社会,我们自己可能无法完成一个事情,可能我们在短期内无法找到帮手帮助到我们,使我们无法直接联系到可以帮助到我们的人。本次开发的系统就是针对这种情况开发的。现在市面上有很多这样的系统,但是大多都是操作复杂,不切实际的,所以开发一套具体的专门的系统很有必要。因为现在的网络对人们来说,已经不单单是查看资料,获取信息的单一用途了,现在它更成为了人们生活的一种理念,越来越多的人喜欢在网上浏览发布信息。1.2目的与意义这个网站可以实现集中性的失物认领功能,我们可以把自己捡到的东西,发到网上,我们也可以把自己丢的东西发到网上,看有没有人来认领或捡到。而且我们还提供了,爱心功能,可能我们的生活,自己无法解决一切问题,如果真要发生问题,短时间内无法寻求到帮助,我们就可以开发这样一项功能,让自己有困难的事情发到网上,寻求帮助。这样可以做到集中管理的效果,规模效应,可以为我们的生活提供更高的效率保证,也可以从中交到朋友,从中收获友谊,使我们每个人都可以奉献出自己的一片爱心。虽然现在很多学校已有失物招领中心,但是这些中心在记录失物等的信息时全部都是用笔纸记录的。当失物招领中心的记录很多时查询起来会耗费大量的时间,同时失主必须到失物招领中心才能报失自己丢失的物品或者确认自己丢失的东西是否保存在失物招领中心。因此开发失物招领管理系统是一件迫在眉睫的事情。所以此系统的开发必将受到师生的广泛好评,具有实际而深远的意义。1.3课题研究主要内容本课题研究一种基于校友爱心网站模式,研究该爱心网站模式下给用户带来的方便以及该模式存在的一些不足,同时研究网页制作的一些基本规律和总结一些基本经验,以及研究分模块开发在网页开发中的优势,以及研究在数据库的设计中,如何设计表,如何设计表和表之间的联系,以及使用JSP制作网页的一些基本经验,使用Javascript技术使页面更加人性化。同时探索采用现在流行的制作网页的模式MVC模式实现页面的流程跳转。失误招领所需要的功能从会员角度进行划分,可以分为普通用户功能和后台管理功能。普通用户功能主要提供给系统的学生使用,包括用户的注册、登录,发布寻物信息,发布招领信息,写感谢信等;后台管理功能主要提供给系统的管理人员使用,包括对用户、物品、感谢信等的管理。1.3.1管理员功能管理员可以修改密码,对用户进行管理,对物品管理如物品信息,更改物品状态,对感谢信管理,评论管理等。1.3.2用户功能系统完成后真正实现了爱心网站的网络化,使师生们随意注册,并可以在系统中发布寻物信息或是招领信息,同时可以写感谢信表达谢意,用户之间也可以通过评论来交流等。1.4国内外现状虽然我国的网络发展较为迅速,但是类似于这类的爱心网站还是不是很多,都是刚刚起步,一些网站的相关功能也不是很完善,近些年随着电脑的普及才被人们了解注意到,更多的开始关注失物招领的网站。如在美、日等信息化程度较高的国家和地区,爱心网站早已被人们所熟知,已经帮助了千千万万的人们,得到了人们的一致好评。所以,我国的失物招领网站的发展还有很长一段路要走,但是它的未来一定是光明的充满正能量的。2需求分析随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。在需求分析的研究中,系统开发人员必须对用户的需求进行调查和分析,结合实际环境的特征,正确定义目标软件的特征。因此,需求分析至关重要。2.1系统用例分析用例图是阐明了业务用例实现的工作流程。业务用例工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作,如图2.1所示。图2.1系统的用例图2.2功能需求分析分层的用例图及用例描述在不同条件下,系统对某一项目相关人员的请求所做出的响应,是系统中各相关人员之间就系统行为所达成的契约,在面向对象软件工程方法的需求阶段用来分析功能需求。失误招领的设计实现以下功能:(1)管理员功能:管理员可以修改密码,对用户进行管理,对物品管理如物品信息,更改物品状态,对感谢信管理,评论管理等。(2)用户功能:师生们随意注册,并可以在系统中发布寻物信息或是招领信息,同时可以写感谢信表达谢意,用户之间也可以通过评论来交流等。2.3数据需求分析概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。本系统E-R图如图2.2所示:图2.2失误招领网站的ER图2.4数据字典分析数据字典是对所有与系统相关的数据元素的一个有组织的列表和精确的、严格的定义,根据前面对网站各个权限用户模块的功能分析和对数据库中实体关系的设计,可以看到网站中所用到的数据信息基本包括:分类表、感谢信表、回复表、失物招领表、用户表等。本系统的主要数据字典如下所示。分类表名称类型空备注idint(11)no主键namevarchar(255)yes分类名感谢信表名称类型空备注idint(11)no主键createtimedatetimeyes添加时间infovarchar(255)yes详情描述titlevarchar(255)yes标题uidint(11)yes添加用户3、回复表名称类型空备注idint(11)no主键contentvarchar(255)yes回复内容createtimedatetimeyes添加时间gidint(11)no关联的失误IDuidint(11)yes关联的用户ID失物招领表名称类型空备注idint(11)no主键addressvarchar(255)yes丢失地点createtimedatetimeyes添加时间happentimedatetimeyes丢失时间infovarchar(255)yes详情描述mobilevarchar(255)yes手机namevarchar(255)yes物品名称qqvarchar(255)yesQQremarkvarchar(255)yes备注resultvarchar(255)yes结果stateint(11)no状态titlevarchar(255)yes标题typenamevarchar(255)yes失物cidint(11)yes子分类claimuidint(11)yes添加的用户uicint(11)yes关联的用户5、用户名名称类型空备注idint(11)no主键createtimedatetimeyes添加时间emailvarchar(255)yes邮箱passwordvarchar(255)yes密码roleint(11)no用户权限userlockint(11)no是否删除标志usernamevarchar(255)yes用户名2.5系统模块E-R图针对本系统特点,数据库设计采用的各个组成部分的数据项和数据结构如下所示:(1)t_category分类实体图图2.3分类实体图(2)t_thanksletter感谢信实体图图2.4感谢信实体图(3)t_reply回复实体图图2.5回复实体图(4)t_goods失物招领实体图图2.6失物招领实体图(7)t_user用户实体图图2.7用户实体图2.6关键技术介绍2.6.1java技术简介Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.5,最近版本为Java1.7。Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。Java的诞生是对传统计算机模式的挑战,对计算机软件开发和软件产业都产生了深远的影响:(1)软件4A目标要求软件能达到任何人在任何地方在任何时间对任何电子设备都能应用。这样能满足软件平台上互相操作,具有可伸缩性和重用性并可即插即用等分布式计算模式的需求。(2)基于构建开发方法的崛起,引出了CORBA国际标准软件体系结构和多层应用体系框架。在此基础上形成了Java.2平台和.NET平台两大派系,推动了整个IT业的发展。(3)对软件产业和工业企业都产生了深远的影响,软件从以开发为中心转到了以服务为中心。中间提供商,构件提供商,服务器软件以及咨询服务商出现。2.6.2mysql简介数据库使用的是MySQL开源数据库。MySQL的特性:使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。支持AIX、FreeBSD、HP-UX、MacOS、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多线程充分利用CPU资源。优化的SQL查询算法,有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。MySQL的应用:与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体成本。2.6.3jsp简介本系统采用jsp技术,基于MVC模式开发,使用SSH框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp页面请求先到action,再到dao,再回到action,回到jsp页面,action主要处理来自页面的请求,dao主要是和数据库的交互,struts2主要用在action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在dao,包括对数据库的增、删、改、查的操作,spring控制程序的流程。2.6.4S.S.H框架的优点S.S.H框架是J2EE应用中struts2+spring+hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,它由以下3个框架构成:1.Struts2框架Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Customtaglibrary。其基本构成如图2.8所示。 图2.8Struts框架工作流程2.Spring框架Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API(ApplicationInterface)提供一致的模型封装,是一个全方位的应用程序框架(Applicationframework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。Spring框架由以下7个部分组成图2.9Spring框架构成3.Hibernate框架Hibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。图2.10Hibernate框架

3系统设计3.1系统概要设计在概要设计中主要确定了系统的实现手段,定义了校园概况的边界和主要技术结构,给出了后续工作继续实施的所有技术要点,是开发人员在下一阶段进行详细设计的指导性文件,也是考核系统总体质量的重要技术文档。本次的系统开发完全是一切为用户着想,界面要美观大方,操作尽量简单明了,使其失误招领网站上爱心网站的管理实现规范化、科学化。因为失误招领网站上爱心网站的使用者大多都是普通的用户,并不具备非常专业的计算机类知识,过于复杂的系统将会使系统操作人员不方便使用,因此,简单实用的系统成为了系统意向非常重要的指标,能够适用于任何人群,不需要太多的计算机类知识,仅仅只要求使用的工作人员具有最基本的计算机知识,即可用系统完成中的基本业务处理,而且系统能够极大的提升工作人员的工作效率。3.1.1体系结构图体系结构图描述根据各子系统如何共享数据、如何分布、如何相互交互,可开发更加特定的风格(模型),分层体系结构图如图3.1所示。图3.1网站分层体系结构图3.1.2功能层次图合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性。功能层次图描述软件的层次结构,用来设计软件体系结构,如图3.2所示。系统功能系统功能用户管理员浏览寻物贴成功案例查看招领贴感谢信用户注册发布寻物贴发布招领贴写感谢信感谢信管理评论管理修改密码用户管理物品管理图3.2系统功能层次图3.2数据设计数据逻辑结构模型-具体数据表的结构:概念结构设计阶段完成的概念模型转换成能被选定的数据库管理系统(DBMS)支持的数据模型。目前常见的是关系模型。如图3.3所示。(1)分类Category类图图3.3分类类图(2)感谢信ThanksLetter类图图3.4感谢信类图(3)回复类图图3.5回复类图(4)失物招领Goods类图图3.6失物招领类图(5)用户User类图图3.7用户类图3.3功能模块设计在结构化系统设计中,模块一般都是按功能划分的,通常称为功能模块。合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性。3.3.1用户注册模块设计用户注册时需要填写邮箱、登录密码、昵称即可完成注册。注册功能模块注册功能模块登录密码昵称图3.8注册功能模块图邮箱3.3.2登录功能模块设计用户必须登录后才可以在网站中发布信息,用户登录流程图如下图3.9所示:系统登录开始系统登录开始显示登陆界面录入用户名、密码验证用户身份进入网站系统登录结束提示:**错误/**错误正确图3.9用户登录流程图顺序图可以显示多个对象之间的动态协作,如图3.7所示。1.感谢信模块时序图图3.10感谢信模块用例的顺序图2.失物招领信息模块时序图图3.10失物招领信息模块时序图3.用户信息模块时序图图3.12用户时序图3.4页面设计人机交互子系统是用户所能直接看到的,是给用户的第一感觉,他现在已经成为判断一个软件好坏的重要标准。设计出一个易用、低错、适应、美观的界面,能够使用户自如的完成操作,而用户不需要有较高的计算机专业知识和技能。前期对项目的大量细致的分析,以及对用户群的调查,充分考虑实际操作的各项细节,使得普通用户在不需要查看用户手册的情况下亦能很自如的操作系统,并对操作流程有清晰的了解。网站首页突出简洁大方的效果。首页是本站所有内容的缩影,可谓“麻雀虽小,五脏具全”。包括用户注册、登录、发布信息、写感谢信等几部分。3.4.1后台页面设计管理员在后台管理物品信息、感谢信管理、评论管理、用户管理等,其具体的模块结构图如下图3.8所示:后台管理后台管理接收后台管理要求根据后台管理要求系统登录管理用户管理物品管理感谢信管理评论管理修改密码图3.8后台总结构图3.4.2前台页面设计在系统前台中用户可以注册、登录、浏览信息、发布寻物信息、发布招领信息、写感谢信、查看成功案例等,具体的前台模块结构图如图3.9所示:前台管理前台管理接收前台管理要求根据前台管理要求用户注册用户登录发布寻物贴发布招领贴写感谢信查看招领贴浏览寻物贴成功案例图3.9前台总体结构图4系统实现4.1数据库连接的实现本系统采用JDBC数据库的连接方法,JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。4.2功能模块实现4.2.1用户注册功能模块实现用户必须先注册成为本站的会员才可以在系统中预定、填写反馈信息等操作,具体实现页面如图4.1所示:图4.1用户注册页面其用户注册流程图如下图4.2所示:图4.2用户注册流程图代码如下: //用户注册 publicvoiduseradd()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setHeader("content-type","text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Stringemail=request.getParameter("email"); Useruser=newUser(); user.setUsername(username); user.setPassword(password); user.setEmail(email); user.setRole(0); user.setUserlock(0); //SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");//设置日期格式 user.setCreatetime(newDate(System.currentTimeMillis())); Userolduser=userDao.selectBean("whereemail='"+email+"'"); if(olduser!=null){ writer.print("<scriptlanguage='javascript'>alert('邮箱已经存在!!');window.history.go(-1);</script>"); return; } userDao.insertBean(user); writer.print("<scriptlanguage='javascript'>alert('注册成功');window.location.href='login.jsp';</script>"); } 4.2.2登录模块实现用户登录后可以发布信息,写感谢信等,具体如图4.3所示图4.3登录页面流程图如图4.4所示:图4.4登录流程图代码如下: //用户登陆操作 publicvoidlogin()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setHeader("content-type","text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); Stringemail=request.getParameter("email"); Stringpassword=request.getParameter("password"); Useruser=userDao.selectBean("whereemail='"+email+"'andpassword='"+password+"'anduserlock=0"); if(user!=null){ HttpSessionsession=request.getSession(); session.setAttribute("user",user); writer.print("<scriptlanguage='javascript'>alert('登陆成功');window.location.href='index.jsp';</script>"); }else{ writer.print("<scriptlanguage='javascript'>alert('用户名或者密码错误');window.location.href='login.jsp';</script>"); } }4.2.3失物招领总体模块实现图4.5失物招领流程图4.3页面实现4.3.1发布寻物信息页面实现用户登录后才可以在系统中发布寻物信息如标题、物品种类、物品名称、丢失时间、丢失地点、描述等信息,页面如下图4.6所示:图4.6发布寻物信息页面代码如下: //寻物 publicStringlost()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="wheretypename='lost'andstate=0orderbyiddesc"; longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"goods!lost","共有"+total+"条记录"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("lost.jsp"); returnSUCCESS; }4.3.2发布招领信息页面实现用户登录后也可以发布招领信息如标题、物品种类、捡到时间、捡到地点、手机号、描述等信息,具体如图4.7所示:图4.7发布招领信息页面代码如下: //招领 publicStringfind()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="wheretypename='find'andstate=0orderbyiddesc"; longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"goods!find","共有"+total+"条记录"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("find.jsp"); returnSUCCESS; }4.3.3写感谢信页面实现用户可以在系统中写感谢信以表达对捡到物品的人感谢,如图4.8所示:图4.8写感谢信页面代码如下: /** *保存 *@authorAdministrator * */ publicvoidwritesave()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); HttpSessionsession=request.getSession(); if(session.getAttribute("user")==null){ PrintWriterwriter=response.getWriter(); writer.print("<scriptlanguage='javascript'>alert('请先登录');window.location.href='login.jsp';</script>"); return; } Stringinfo=request.getParameter("info"); Stringtitle=request.getParameter("title"); Useruser=newUser(); user=(User)request.getSession().getAttribute("user"); Datecreatetime=newDate(System.currentTimeMillis()); ThanksLetterthanks=newThanksLetter(); thanks.setTitle(title); thanks.setInfo(info); thanks.setCreateuser(user); thanks.setCrearetime(createtime); thanksDao.insertBean(thanks); PrintWriterwriter=response.getWriter(); writer.print("<scriptlanguage='javascript'>alert('提交成功');window.location.href='thanks!list';</script>"); }4.3.4成功案例页面实现用户可以查看系统中成功案例信息,如图4.9所示:图4.9成功案例页面代码如下: publicStringsuccess()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="wherestate='1'orderbyiddesc"; longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"goods!success","共有"+total+"条记录"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("success.jsp"); returnSUCCESS; }4.3.5用户管理页面实现管理员可以对系统用户进行管理,如添加用户,查看注册用户信息,删除用户等,如图4.10所示:图4.10用户管理页面代码如下: //用户信息列表 publicStringuserlist()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setHeader("content-type","text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); HttpSessionsession=request.getSession(); if(session.getAttribute("admin")==null){ writer.print("<scriptlanguage='javascript'>alert('请先登录');window.location.href='login.jsp';</script>"); returnSUCCESS; } intcurrentpage=1; intpagesize=10; Stringemail=request.getParameter("email")==null?"":newString(request.getParameter("email").getBytes("ISO-8859-1"),"UTF-8");introle=request.getParameter("role")!=null?Integer.parseInt(request.getParameter("role")):-1; //introle=Integer.parseInt(request.getParameter("role")); if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere="where1=1"; if(!"".equals(email)){where+="andemail='"+email+"'";} if(role!=-1){where+="androle="+role;} where+="orderbyiddesc"; longtotal=userDao.selectBeanCount(where); List<User>list=userDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"method!yuangonglist","共有"+total+"条记录"); request.setAttribute("pagerinfo",pagerinfo); request.setAttribute("email",email); request.setAttribute("role",role); this.setUrl("user/userlist.jsp"); returnSUCCESS; } 4.3.6物品管理页面实现管理员可以查看用户发布的寻物或是招领信息,更改物品状态并可以删除物品信息,如图4.11所示: 图4.11物品管理页面代码如下:/***物品管理列表*@return*@throwsIOException*/ publicStringgoodslist()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); HttpSessionsession=request.getSession(); if(session.getAttribute("admin")==null){ writer.print("<scriptlanguage='javascript'>alert('请先登录');window.location.href='login.jsp';</script>"); returnSUCCESS; } intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } if(request.getParameter("catid")!=null){ catid=Integer.parseInt(request.getParameter("catid")); }=request.getParameter("starttime")==null?"":request.getParameter("starttime");Stringendtime=request.getParameter("endtime")==null?"":request.getParameter("endtime"); Stringwhere="where1=1"; if(!"".equals(typename)){where+="andtypename='"+typename+"'";} if(!"".equals(key)){where+="andtitlelike'%"+key+"%'";} if(catid!=0){where+="andcategory.id="+catid;} if(!"".equals(address)){where+="andaddresslike'%"+address+"%'";} if(!"".equals(starttime)){where+="andhappentime>='"+starttime+"'";} if(!"".equals(endtime)){where+="andhappentime<='"+endtime+"'";} where+="orderbyiddesc"; request.setAttribute("key",key); longtotal=goodsDao.selectBeanCount(where); List<Goods>list=goodsDao.selectBeanList(current1,pagesize,where); request.setAttribute("list",list); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"method!goodslist","共有"+total+"条记录"); request.setAttribute("pagerinfo",pagerinfo); request.setAttribute("type",typename); request.setAttribute("address",address); request.setAttribute("starttime",starttime); request.setAttribute("endtime",endtime); request.setAttribute("key",key); request.setAttribute("catid",catid); this.setUrl("goods/goodslist.jsp"); returnSUCCESS; } 4.3.7评论管理页面实现管理员可以查看用户的评论信息并可以删除信息,如图4.12所示:图4.12评论管理页面代码如下: /***评论列表*@return*@throwsIOException*/ publicStringreplylist()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); PrintWriterwriter=response.getWriter(); HttpSessionsession=request.getSession(); if(session.getAttribute("admin")==null){ writer.print("<scriptlanguage='javascript'>alert('请先登录');window.location.href='login.jsp';</script>"); returnSUCCESS; } intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } Stringwhere=""; longtotal=replyDao.selectBeanCount(where); List<Reply>replylist=replyDao.selectBeanList(current1,pagesize,""); request.setAttribute("list",replylist); Stringpagerinfo=Pager.getPagerNormal((int)total,pagesize,currentpage,"method!replylist","共有"+total+"条记录"); request.setAttribute("pagerinfo",pagerinfo); this.setUrl("reply/replylist.jsp"); returnSUCCESS; }以上是系统中主要页面的介绍。5系统测试5.1测试方案软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论