如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让管理模式进行升级,也为了更好的维护信息,校园失物招领网站的开发运用就显得很有必要。并且通过开发校园失物招领网站,不仅可以让所学的jsp技术得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象,无论是前期的分析与设计,还是后期的编码测试等环节,都可以有一个深刻的了解。
借助于校园失物招领网站这样的工具,让信息系统化,流程化,规范化是最终的发展结果,让其遵循实际操作流程的情况下,对信息实施规范化处理,让信息通过电子的方式进行保存,无论是管理人员检索信息,可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。
关键字:校园失物招领网站,jsp技术,MySQL
1.1 选题背景
如今的信息时代,对信息的共享性,信息的流通性有着较高要求,尽管身边每时每刻都在产生大量信息,这些信息也都会在短时间内得到处理,并迅速传播。因为很多时候,管理层决策需要大量信息作为参考依据,也有些时候,各大企业或学校也需要使用工具宣传自身的文化理念等等,所以信息能够得到迅速传播并带给人们一定的参考价值,充分发挥信息本身的作用是很有必要的,而这些恰恰是传统模式所不能相比的。因此,借助工具让信息系统化,流程化,规范化是最终的发展结果,而这个工具则是计算机软件。本次设计实现的计算机软件校园失物招领网站,让其遵循实际操作流程的情况下,对失物招领实施规范化处理,让失物招领通过电子的方式进行保存,无论是管理人员检索失物招领,维护失物招领都可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。
1.2 选题意义
为了让失物招领的管理模式进行升级,也为了更好的维护失物招领,校园失物招领网站的开发运用就显得很有必要,因为它不仅可以让失物招领的管理人员统一完成信息管理,而且还会在保证失物招领处于安全状态的情况下,让失物招领的处理流程缩短,让信息的管理工作量减少,让失物招领的录入和后期维护缩短时间,以及节省管理失物招领需要投入的精力与资金。由于校园失物招领网站运用的技术比较成熟,所以它本身就具备了稳定的性能,连续24小时运行都毫无压力。而且还可以保证数据处理的质量。另外,校园失物招领网站为了满足易用性的用户需求,特意在页面的设计上合理布局各元素,让重要内容和导航功能在关键区域展示,让操作系统的用户可以毫不费力的完成系统的操作。总的说来,校园失物招领网站实现了信息资源的共享,让信息可以以更好的方式进行传播,让管理员的管理水平得到提升的同时,也让失物招领计算机化。
1.3 研究内容
根据校园失物招领网站设计与实现的流程来对整个系统进行说明。本文将从下述6个部分介绍系统。
第一部分:介绍选题的动因,包括介绍课题背景和意义等。
第二部分:介绍本系统选用的开发手段,包括编程语言,后台支持的数据库,开发类技术等。
第三部分:介绍系统的分析内容,包括投资决策必须的可行性研究,用户对功能的要求,系统运行的性能要求等知识。
第四部分:介绍系统的设计。包括对系统功能结构的设计,数据表结构设计等。
第五部分:介绍系统的实现。包括各模块实现的具体运行效果。
第六部分:介绍系统测试。包括检查系统功能,测试知识点的介绍等。
第二章 开发环境
对校园失物招领网站进行开发,需要了解开发技术的理论与实际运用,对开发工具,尤其是数据库的使用方法需要进行掌握。
2.1 SSM框架
SSM框架不是一个框架的名称,而是三个框架的首字母缩写,分别是Spring框架、SpringMVC框架、MyBatis框架。是目前Java开发者中学习的首选框架。
Spring框架继承了JavaEE和EJB框架的优点,在依赖注入方面去掉了臃肿的配置,在面向切面方面也简化了代码数量,提高了代码品质。依赖注解进行配置,让所有的依赖都可以通过程序的自动配置和寻找,减少了代码写作数量,提高了代码阅读性。
SpringMVC框架与Spring只是一个公司的,在底层代码结构上可以复用,但是最主要的功能是对数据提交请求进行过滤,并且对数据的返回进行过滤,不限于页面是jsp技术,也可以是其他的技术,更容易大型开发的集合技术。
MyBatis框架摒弃了Hibernate框架的配置臃肿方面,有时候Hibernate框架业务比较复杂的时候,代码量反而增加,性能下降,无法对底层的数据库语句优化,而MyBatis框架则有效的解决了这个方面,可以通过Java语句,对数据库操作语句进行优化,代码更简洁,执行效率更高,并且可以生产一些模块化代码,解决了开发过程中容易出现的实体映射方面的操作。
2.2jsp技术
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计。它是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件。
JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。
Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。
JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。
2.4 HTML简介
HTML是超文本标记语言,都是用各种声明以及对称性的的特殊符号作为标记,用以浏览器解析。HTML还有一些基本标签,比如根元素标签就是<html>,而文档元数据一般都写在了<head>标签里面,标题就是浏览器左上角的显示的网页内容,用的是<title>标签描述,<body>里是很重要的,描述的是浏览器显示的可见内容,如果想要在浏览器上面显示一些数据,那么肯定是要写在<body>标签里面的。关于定义标题或者换行以及段落,都有对应的标签。基本上各个浏览器都支持调试模式,一般都是用到了键盘上面用F12就可以看到标签形式的代码。
HTML作为一种超文本标记语言,是目前学习网站必须学习的第一门语言,要熟悉里面很多种标记,这种标记就是网页专属标记,只有这样浏览器才能解析相关信息。HTML里面包含了整整一套的标签,各种标签都有自己的功能,并且可以循环嵌套这些标签,比如一个表格里套着两个小小的表格。HTML一般文件名称的后缀都是html作为后缀,文档一般叫做web页面,里面的描述性标记语法被称为代码。
2.5 MyEclipse开发工具
MyEclipse是功能最全面的Java IDE。Java语言发展至今,已经与好多语言相互配合,并且各种语法都不一样,实现的效果不一样,造成现在的程序开发人员需要学习很多种语言,出现问题就解决问题,这是各种新的工具产生的一些动力。刚开始的Java需要自己安装开发环境和运行环境,然后手动新建文本,一句话一句话的进行编写,这样的功底需要极其的扎实,效率也是相当的低下,所以各种文本编辑工具就开始像雨后春笋一样的冒了出来,经过互联网的传播,大家使用后经过口碑,自然优胜略汰,大浪淘沙,到现在为止MyEclipse开发工具已经牢牢地占据了Java开发的半壁江山。MyEclipse的立足就是为了企业人员用的,企业开发讲究效率,不可能让所有的开发人员来了从电脑安装软件先开始,配置环境又需要花费太久的时间,MyEclipse就解决了这样的烦恼,只要安装了软件,各种Java程序都可以进行开发,可以对各种语法自动的进行检测,有效的提示细节处错误,并且可以在写作上面让对一些整段代码的移动复制都很便利,应用部署也是一键到位。
3.3系统性能分析
用户使用系统,一是为了阅读需要的信息;二是为了享受系统提供的服务。因此一个质量较好的系统就更容易让用户频繁使用。而能够反馈系统的质量的信息就是系统的性能。常见的能够表示系统性能的指标有安全性,系统可扩展性,数据完整性等。接下来就对这些指标进行介绍。
3.3.1数据完整性
只要是系统中的数据,其长期保存在数据库里面,就要求其具备可靠性。这样才能发挥出数据具备的参考价值。一般来说,为了保证数据信息是准确的,并且可靠的,在数据处理上,包括录入数据,编辑数据等,都要求数据信息是完整登记的。同时,系统中的数据其自身需要具备完整性外,也要求数据之间产生的关系也要具备完整性。另外,在数据库中填充信息时,同样的信息应该以同样的方式出现在不同的表中。对于数据进行完整性定义,也是方便后期对数据的使用和查看。
3.3.2系统可扩展性
站在当前用户需求的角度考虑问题具有一定的局限性,由此设计的系统也一样。为了保护开发系统的财产,同时也为了让系统长远立足市场,系统开发人员就需要充分预留系统的空间,让系统在未来的日子里可以扩充功能,并进行更新和升级。这就是系统具备可扩展性的表现。
3.3.3系统安全性
系统在投入使用中,用户与系统的交互会产生数据,比如插入数据,编辑数据等操作都会产生数据。而作为系统的后台支持的数据库,主要任务就是保存这些数据。为了不让数据信息被窃取或者泄露,也是为了对系统的安全性进行保证,所以市面上也出现了很多的加密技术,其中MD5单向加密技术在系统中运用得最多。其原因有三点:
第一点,面对任意两段明文,在经过MD5加密处理后,它们的密文不一样;
第二点,面对任意一段明文,进行MD5加密处理后,其密文不变;
第三点,破解MD5加密的数据非常困难;
目前,关于MD5加密技术的代码已经可以从网站上下载,可以直接将模块化的代码在系统中直接引用。一般来说,用户注册的数据还有管理员登录系统使用的数据都是很重要的资源,所以这部分数据常常会经过加密处理,这样也就消除了系统安全上的隐患。
第四章 系统设计
设计一个系统不单单是设计系统的页面,可以说系统设计其本质是一个结合了众多设计过程的比较复杂的系统工程。一般来说,在完成系统设计时,需要了解和掌握很多设计的知识,有界面布局技术的知识,页面采用的字体和颜色的运用,还有页面空白的规范使用等,如何将这些元素进行组合,让页面可以直观表达信息内容的同时,也能维持页面整体的美观。
4.1 系统设计思想
系统开发必然需要统一设计思想。根据这个设计思想指导系统的开发,可以加快系统开发进程。根据目前用户对校园失物招领网站的需求,确定下述原则即为本系统的设计思想。
(1)实用性:本系统依照用户需求设计功能,遵循用户使用方便的原则,把用户在实际工作中的各个操作细节也充分考虑进来,让使用者在没有系统操作说明书的情况下,也能很容易的完成系统的操作。
(2)先进性:为了让本系统具备高性能,设计时,需要把目前的各种成熟技术加以考虑,比如软件开发技术也要考虑进去,比如计算机技术也需要进行考虑。对于系统结构的选择,本系统将毫不犹豫的选择成熟先进的B/S结构,方便开发的同时,对于后期的维护也提供了便利。
(3)高安全性:设计本系统时,对于一些系统的关键数据要严加看管,比如管理员本人的账号和密码,一定要加密保存在数据库里面。除此以外,也需要充分使用安全措施对用户的共享资源进行保护。
(4)可维护性:设计时,要提前考虑本系统的可维护性,因为一个便于维护的系统在后期产生的维护成本将会大大降低。维护一般包括软硬件的维护还有对于网络的维护等。
(5)可扩展性:重新开发一个新系统相比在原有系统上升级,会花费大量的资金和精力,由此,一个好的系统必定具备良好的可扩展性。在用户需求变动的情况下,可以通过系统的更新和升级来持续满足用户需求,这样的系统就具备了可扩展性。
4.2功能结构设计
这部分内容使用结构图这样的工具,显示设计结果,设计的管理员功能见下图。管理员为用户忘记密码时可以重置用户密码,管理失物招领、物品挂失、光荣榜、公告信息、及失物认领,、
4.3.2 数据库表结构
很多时候,在进行数据表的存储结构的设计时,都会遇到一些困扰,比如每张数据表如何命名,如何设计每张数据表里面的字段,如何为各个字段进行命名,以及如何设置字段的取值范围等信息。很多初学者,在进行表结构设计时,无论是对表进行命名,还是对字段进行命名,都是采用中文的方式,导致在编码阶段,在对数据进行操作时,总是报错,影响编码人员的开发速度,而且一旦数据表结构建立之后,后期进行修改也比较麻烦。因为设计数据表的结构,就意味着程序中需要长期保存的数据都是根据这样的结构进行保存的,在后面的使用中,无论是程序数据往数据表中写入,还是需要编辑或删除数据,都是按照这个规则进行。如此说来,设计数据库也是非常重要的任务,它关系到后面程序的开发,也关系到程序的运行使用。
通常在设计数据表结构时,会把前面设计的E-R图进行表结构的转化。把实体用来代表数据表,把其属性,也就是椭圆形代表的内容用来表示数据表中的字段,然后根据程序对于数据的存储要求,设计字段的类型和长度。比如用户的年龄可以用int(整数型),设置其长度为4或者6等。总之,数据表结构一旦建立,就可以往里面填充数据了。
表4.1字典表表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 dic_code String 字段 是
3 dic_name String 字段名 是
4 code_index Integer 编码 是
5 index_name String 编码名字 是
6 super_id Integer 父字段id 是
7 beizhu String 备注 是
8 create_time Date 创建时间 是
表4.2论坛表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 forum_name String 帖子标题 是
3 yonghu_id Integer 用户 是
4 forum_content String 发布内容 是
5 super_ids Integer 父id 是
6 forum_state_types Integer 帖子状态 是
7 insert_time Date 发帖时间 是
8 update_time Date 修改时间 是
9 create_time Date 创建时间 是
表4.3光荣榜表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 guangrongbang_name String 标题 是
3 yonghu_id Integer 用户 是
4 shiwuzhaoling_id Integer 物品 是
5 guangrongbang_photo String 图片 是
6 guangrongbang_content String 详情 是
7 create_time Date 创建时间 是
表4.4公告表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 news_name String 公告名称 是
3 news_types Integer 公告类型 是
4 news_photo String 公告图片 是
5 insert_time Date 公告时间 是
6 news_content String 公告详情 是
7 create_time Date 创建时间 是
表4.5失物认领表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shiwuzhaoling_id Integer 失物id 是
3 yonghu_id Integer 认领用户 是
4 yesno_types Integer 审核 是
5 shiwurenling_text String 详情 是
6 insert_time Date 认领时间 是
7 create_time Date 创建时间 是
表4.6失物招领表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shiwuzhaoling_uuid_number String 失物编号 是
3 shiwuzhaoling_name String 物品名称 是
4 shiwuzhaoling_types Integer 物品类型 是
5 status_types Integer 物品状态 是
6 yonghu_id Integer 用户 是
7 shiwuzhaoling_photo String 物品图片 是
8 shiwuzhaoling_time Date 拾遗时间 是
9 shiwuzhaoling_dizhi String 拾遗地址 是
10 shiwuzhaoling_content String 详情 是
11 create_time Date 创建时间 是
表4.7失物招领留言表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shiwuzhaoling_id Integer 物品 是
3 yonghu_id Integer 用户 是
4 shiwuzhaoling_liuyan_text String 留言内容 是
5 reply_text String 回复内容 是
6 insert_time Date 留言时间 是
7 update_time Date 回复时间 是
8 create_time Date 创建时间 是
表4.8物品挂失表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 wupinguashi_name String 物品名称 是
3 shiwuzhaoling_types Integer 物品类型 是
4 status_types Integer 物品状态 是
5 wupinguashi_photo String 物品图片 是
6 wupinguashi_time Date 丢失时间 是
7 yonghu_id Integer 用户 是
8 wupinguashi_dizhi String 丢失地址 是
9 wupinguashi_content String 详情 是
10 create_time Date 创建时间 是
表4.9物品挂失留言表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 wupinguashi_id Integer 物品 是
3 yonghu_id Integer 用户 是
4 wupinguashi_liuyan_text String 留言内容 是
5 reply_text String 回复内容 是
6 insert_time Date 留言时间 是
7 update_time Date 回复时间 是
8 create_time Date 创建时间 是
表4.10用户表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_name String 用户姓名 是
3 yonghu_id_number String 身份证号 是
4 yonghu_phone String 手机号 是
5 yonghu_photo String 照片 是
6 create_time Date 创建时间 是
表4.11用户表表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 username String 用户名 是
3 password String 密码 是
4 role String 角色 是
5 addtime Date 新增时间 是