基于jsp的失物招领系统Word文件下载.docx
《基于jsp的失物招领系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于jsp的失物招领系统Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。
而国外的失物招领在线交易平台已经领先国内很长一段时间,用户可以通过失物招领在线交易平台来实现招领失物的目的,所以应该向国外的先进的失物招领在线交易平台学习,建立起自己的失物招领在线交易平台网站,使失物招领更快地进入计算机网络时代。
第二章系统需求分析
2.1系统需求分析
采用web应用开发技术设计并实现一个失物招领在线交易平台。
该系统能够实现用户浏览查询功能,用户登录,管理员管理失物招领信息等功能。
系统采用B/S模式。
整个系统最关键的就是数据库系统,一个强大的数据库可以支持完善一个优秀的软件设计,通过软件系统与数据库系统的连接来实现通过软件界面观察和处理操作数据。
SQLServer2000
图2.1系统模式图
系统采用三层结构,在客户端用户通过浏览器完成数据下载与模拟操作,浏览器端的表现逻辑通过JSP网页完成。
而系统内部复杂的业务逻辑主要通过JavaBean的组件(Component)实现,JavaBean组件在WWW服务器上运行,通过JSP返回到客户浏览器。
通过表现逻辑与业务逻辑的分离,使网页内容简洁,系统的可维护性和可扩充性增强。
在服务器端,系统使用JDBC中间件访问数据库,数据库服务器定义了本系统所需要的事务逻辑和数据逻辑。
本系统使用JSP技术作为表现手段,服务器采用Tomcat5.0.3作为JSP引擎,系统业务逻辑由JavaBean组件完成,使用JDBC3.0驱动程序访问数据库。
由于系统测试需要成熟的数据库支持,因此系统采用SQLServer2000数据库作为数据库服务器。
2.2本系统采用的关键技术
2.2.1JSP技术
JSP是由Sun微系统公司于1999年6月推出的一项技术,是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。
JSP技术在多个方面加速了动态Web页面的开发。
它主要有如下几个方面的特点:
1)将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐号信息或者一本书的价格)。
生成内容的代码被封装在Servlet和JavaBean组件中,并且结合在脚本中,所有的脚本在服务器端运行。
JSP引擎解释JSP标识和脚本程序,生成所请求的内容(例如,通过访问JavaBean组件,使用JDBC技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
2)强调组件的重用
绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBean或者EnterpriseJavaBean组件)来执行应用程序所要求的更为复杂的处理。
开发人员能够共享和交换执行组件,或者使得这些组件为更多的使用者或者客户团体所使用。
此方法加速了总体开发进程。
3)采用标识简化页面开发
Web页面人开发人员不都是熟悉脚本语言的编程人员。
JSP技术封装了许多功能:
访问和实例化JavaBean组件、设置和检索组件的属性、下载Applet以及执行用其他方法更难于编码和耗时的功能。
JSP技术可以通过开发定制的标识库进行扩展。
第三方开发人员和其他人员可以为常用功能创建自己的标识库。
这使得Web页面开发人员能够使用熟悉的工具和如同标识一样执行特定功能的组件来工作。
当与Java2平台、J2EE和EnterpriseJavaBean(EJB)技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在企业中部署基于Web的应用是必需的。
与微软公司的ASP技术相比,JSP具有如下优点:
(1)开放的技术:
JSP技术基于平台和服务器的相互独立,技术支持来自广泛的、专门的、各种工具包,有服务器的组件和数据库产品开发商提供。
相比之下,ASP技术主要依赖MICROSOFT支持。
(2)平台和服务器的独立性:
JSP编写的代码可运行在任何符合JAVA语法结构的环境中。
这样JSP就能够运行在多种WEB服务器上并支持来自多家开发商提供的各种工具包。
(3)开放的开发过程,开放的源码:
自1995年以来,SUN用开放过程方法同国际JAVA组织合作开发和修改JAVA技术和规范。
(4)JSP标记可扩充性:
JSP技术能够为开发者扩展JSP标记,充分利用与XML兼容的标记技术强大的功能,大大减少对脚本语言的依赖。
(5)JSP跨平台的可重用性:
JSP组件(EJB,JavaBean或定制的JSP标记)都是跨平台可重用的。
2.2.2JavaBean技术
JSP作为一个很好的动态网站开发语言得到了越来越广泛的应用,在各类JSP应用程序中,JSP+JavaBean的组合成为了一种事实上最常见的JSP程序的标准.JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。
在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。
对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。
JavaBean通过Java虚拟机(JavaVirtualMachine)可以得到正确的执行,具有平台无关性。
一个JavaBean有三个部分组成:
1)属性(Property)
Bean的属性就是对象的属性,但提供了属性读取和设置的接口支持。
例如一个时钟Bean可以有时区和镇铃属性,日历Bean可以有年份和月份属性。
每个属性通常遵守简单的方法命名规则。
这样可以很方便的找出Bean提供的属性,然后查询属性值或改变属性值,对Bean进行操作。
2)方法(Method)
3)由于Bean本身是Java对象,调用这个对象的方法是与其交互作用的唯一途径。
JavaBean严格遵守面向对象的类设计逻辑,不让外界访问其任何实例字段(没有Public字段)。
这样,方法调用的是接触Bean的唯一途径。
4)事件(Event)
Bean与其他软件组件交流信息的主要方式是发送和接收事件。
这与对象之间通过消息通信类似。
JavaBean传统的应用在于可视化的领域,如AWT下的应用。
自从JSP诞生后,JavaBean更多的应用在非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。
利用非可视化JavaBean,来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序(如JSP)的分离,使得系统具有更好的健壮性和灵活性。
2.2.3JDBC技术
JDBC是Java的开发者——Sun的JavaSoft公司制定的Java数据库连接JavaDataBaseConnectivity技术的简称,是为各种常用数据库提供无缝联接的技术。
JDBC在Web和Internet应用程序中的作用和ODBC在Windows系列平台应用程序中的作用类似。
JDBC有一个非常独特的动态连接结构,它使得系统模块化。
使用JDBC来完成对数据库的访问包括以下四个主要组件:
Java的应用程序、JDBC驱动器管理器、驱动器和数据源。
简单地说,JDBC能完成下列三件事:
(1)同一个数据库建立连接;
(2)向数据库发送SQL语句;
(3)处理数据库返回的结果。
JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface,应用程序设计接口)。
它由一些Java语言写的类、界面组成。
JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。
也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。
用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。
不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。
Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,RunEverywhere!
”
Java具有健壮、安全、易用等特性,而且支持自动网上下载,是一种很好的与数据库线连接而使用的编程语言。
它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。
JDBC扩展了Java的能力,如使用Java和JDBCAPI就可以公布一个Web页,页中带有能访问远端数据库的Applet。
或者企业可以通过JDBC让全部的职工(他们可以使用不同的操作系统,如Windwos,Machintosh或UNIX)在Intranet上连接到几个全球数据库上,而这几个全球数据库可以是不相同的。
2.2.4用JDBC访问数据库
所有的数据库的对象和方法都在java.sql.*里面,所以首先要importjava.sql.*,要想连接数据库,首先要将驱动程序调入。
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
这是JDBC-ODBC的驱动程序。
要想连接一个指定的数据库,必须创建Connection类的一个实例。
Stringurl="
jdbc:
odbc:
Groceryprices"
;
Connectioncon=DriverManager.getConnection(url);
注意在此用到的数据库名称是在ODBC设置控制面板中输入的数据资源名。
URL语法对于不同类型的数据库会很不一样。
语法是这样的:
jdbc:
subprotocol:
subname开头都是JDBC,后面是子协议,然后是ODBC名称。
若要使用纯JDBC驱动程序,必须安装第三方软件提供的驱动程序,一般在数据库的官方网站上可以找到这里不做讨论。
本系统采用JDBC-ODBC的驱动程序连接数据库,并使用JavaBean组件,有效的避免了代码的重复,具体过程见附录2.2.4:
第三章系统概要设计
根据系统的功能需求分析,将本系统划分为以下几大模块:
表3.1功能实现
主要功能介绍:
用户注册:
如果用户要求发布信息,就必须注册成会员。
用户浏览物品:
用于用户浏览物品信息。
会员添加物品:
用户成功登录后才能使用,失物信息会显示在前台页上。
用户或会员搜索物品:
用于用户或会员搜索物品信息。
会员删除物品:
用户成功登录后用于删除已经发布的信息。
会员修改物品:
用于用户修改物品信息,必须先注册成会员。
会员修改个人信息:
用户成功登录后用与修改信息。
会员之间发消息:
用于会员之间的交流。
会员认领物品等功能:
用户会员用户认领失物。
管理会员信息:
此模块只有管理员才允许使用,用来删除某会员的信息。
管理失物信息:
此模块只有管理员才允许使用,用来删除某失物的信息。
管理认领物品:
用来管理用户认领物品。
第四章系统详细设计
4.1数据库设计
数据字典是系统分析阶段的重要文档,也就是对数据流图中包含的所有元素的定义的集合。
数据字典是为了数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项作出说明。
任何字典最主要的用途是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据字典中包含的每个数据元素的控制信息时很有价值的。
因为列出了使用一个给定的数据元素的所有程序,所以很容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块做出相应的改变。
数据流图表达了数据和处理的关系,数据字典则是系统中关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典的作用正是在软件分析和设计过程中给人提供关于数据的描述信息。
一般说来,数据字典应该由下列4类元素的定义组成:
数据流、数据流分量、数据存储、处理。
下面为本系统的数据字典:
数据流名称:
用户登录信息
别名:
无
简述:
用户登录时填写的信息
来源:
用户
去向:
用户登录
数据流量:
500份/天
组成:
用户名+密码
表4.1.1用户登录信息
1
Adminname
Varchar
管理员名
2
Adminpassword
管理员密码
用户注册信息
用户注册时填写的信息
用户注册
10份/天
用户名+用户真实姓名+密码+电邮+联系电话+性别+(联系地址)+(邮编)
表4.1.2用户注册信息
Username
varchar
用户名
Realname
用户真实姓名
3
Password
密码
4
Email
电邮
5
Tel
联系电话
6
Sex
性别
7
Address
联系地址
8
post
邮编
失物的一般信息
用户添加失物时填写的信息
失物信息的添加
失物信息表文件
50份/天
失物名称+失物简介+失物类别+图片名称
表4.1.3用户添加失物信息
Lostname
名称
Type
类型
Intero
介绍
Photo
图片
Link
联系人
电话
Remark
备注信息
id
int
编号
失物组成明细
失物组成明细添加
失物名称+数量
表4.1.4用户添加失物数量
Id
Int
Name
失物名称
Num
数量
各种相关信息
管理员录入数据或读取数据是的信息
录入
数据文件
各类信息
表4.1.5管理员录入信息
Title
标题
Contetn
内容
Addtime
添加时间
4.2系统E-R图
本图具体实现了功能的管理,通过用户的登录页面后来管理信息。
信息主要包括4项:
1.留言管理;
2.会员管理;
3.新闻管理;
4.失物管理;
同过这4个功能来实现主要的网站主要用途。
具体信息如图4.2.1所示:
图4.2.1系统E-R图
4.3处理流程设计
4.3.1系统操作流程
用户登录主页后可以在右上方的用户登录和注册用户2个功能;
然后选择用户登录后进行系统管理。
首先是检查密码错误,如果密码错误后会返回系统主页面来重新开始录入信息;
如果密码正确在进入功能页面来进一步进行功能处理。
具体信息如4.3.1所示:
图4.3.1系统流程操作图
4.3.2数据增加流程
添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。
数据增加流程图如4.3.2所示:
图4.3.2数据增加流程图
4.3.3数据修改流程
在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。
数据修改流程图如图4.3.3所示。
图4.3.3数据修改流程图
4.3.4数据修改流程
当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。
数据删除流程图如图4.3.4所示。
图4.3.4数据删除流程图
4.4系统模块设计
4.4.1管理员登录
当登陆时,首先出现的是一个用户登陆的界面,主要是维护系统的安全性和完整性。
界面如下图所示:
图4.4.1管理员登录页面
4.4.2认领信息管理
管理员可以对认领信息管理,其中包括物品名称、丢失地点、丢失时间、储存地点、存储时间,可以一一对应来检查。
图4.4.2认领信息管理
4.4.3学生信息管理
管理员可以对学生进行管理,包括删除或回复这些操作来管理学生用户信息。
图4.4.3学生信息管理
4.4.4注册会员
游客可以进行注册会员,注册会员需要填写用户的用户名、登陆密码、真是姓名、性别、出生日期、籍贯、email、密码提示问题、提示答案。
图4.4.4
4.4.5信息查询
会员可以进行查询、发布遗失信息或招领信息,支持模糊查询。
填入所需要的信息后就可以选择为失物信息还是拾物信息。
图4.4.5信息查询图
4.4.6网站首页设计
网站首页主要表框六个导航栏:
包括首页、失物信息、拾物信息、信息查询、收藏本站、设为首页。
网站下方是些网站链接:
包括XX、谷歌、网易。
网页的主体信息是失物信息和拾物信息的发布,信息可以依次按照时间的发布前后自动排列显示,可以方便用户的浏览网页信息。
网站首页如图4.4.6所示:
图4.4.6网站首页
第五章系统调试与测试
5.1程序调试
在设计系统的过程中,存在一些错误是必然的。
对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。
但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。
这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。
5.2程序的测试
5.2.1测试的重要性及目的
(1)测试的重要性
软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。
近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。
采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。
测试是所有工程学科的基本组成单元,是软件开发的重要部分。
自有程序设计的那天起测试就一直伴随着。
统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。
而在软件开发的总成本中,用在测试上的开销要占30%到50%。
如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。
在实践中,软件测试的困难常常使人望