2.系统开发环境
2.1 JSP技术
JSP在web技术中的位置也很重要,对于刚进入编程行业的人们来说,编程语言JSP相对比较好学,而且也有很多高级特性[15]。在开发程序的工作中,jsp经常被使用到,例如,收集表单数据、处理字符串信息等,JSP能够快速完成上述处理工作,降低时间成本,节省时间,最近,JSP又发布了新版本,新版本的JSP具有非常优异的兼容性和面向对象[16]。因此,JSP可可任意挑选面向过程的设计、面向对象的设计或者混合方式的设计[17]。
JSP有很多优点,例如:可延展、缩短,很多开发语言都支持,兼容性好,很多平台都可运行,编写一次,始终运行[18]。
2.2 JAVA技术
Java编程语言具有跨平台、分布式、可移植等多种特性,很多平台Java都能运行,世界各地都能够运行Java编写的程序。1995年,开发出了JAVA编程语言。JAVA编程语言具有多种特性,例如:简单、安全、可移植、鲁棒性(Robust)、编写能效高、线程多等。在互联网飞速发展的时代,Java编程语言应用也越来越普遍[19]。它的特点具有:
一、面向对象:JAVA适用于分布式环境,JAVA能够完全面向对象,包括对象的设计及联系;
二、分布式:JAVA工作的同时,带动其他计算节点工作,只要有网络,就可以访问其他对象;
三、健壮性:JAVA能够自动处理垃圾和异常,并且机制类型强;
四、安全性:当指针和内存被删除时,非法的内存就可以避免。
2.3 MYSQL数据库
数据库在每个网站的开发中都是必不可少的,过去数据库只具有数据的保存和管理功能,但随着后来的不断更新和迭代,目前的数据库不仅能够进行数据的处理,而且还能够储存不计其数的数据[20]。
该校园失物招领小程序所使用的就是MYSQL数据库,当初是微软公司开发出的MYSQL数据库。MYSQL数据库总共建立了十几个相对应的表,它们之间独立联系,数据库和程序是密不可分的[21]。
MYSQL数据库的特点包括:能够应用于多种操作系统中;查询SQL时优化了算法,搜索速度提高的不少;还可以进行数据库的管理、控制、优化等操作;一个数据库可以记录不计其数的数据。
2.4 B/S结构
当前比较流行的网络化结构模式是B/S(浏览器/服务器)结构,它能够在服务器上面集中系统的所有核心功能,使系统开发人员的工作变得简单,并且开发出的系统也更容易使用和后期维护。用于比较熟悉的浏览器有360浏览器、谷歌浏览器、QQ浏览器等,用于比较熟悉的数据库有sqlserver、mysql数据库等,上边这些数据库和浏览器都可以安装在客户端上。B/S结构没有什么限制,并且还不需要专门的安装软件,只要笔记本、电脑有网络就能够访问系统。采用B/S结构开发的程序,比较好维护,只需要在客户端就可处理,不需要非得在服务器上处理,并且跟用户的交互性比较好,刷新浏览器就可进行数据信息的实时更新[22]。B/S架构如图2-1所示:

图2-1 B/S模式架构图
2.5 SSM框架技术
该校园失物招领小程序是基于Spring、SpringMVC、Mybatis框架开发出来的。
2004年,Spring 框架才第一次亮相,后面也进行了很多次的更新。Spring框架包括SpringCore、Spring AOP、Spring ORM、Spring DAO、Spring Web Flow、Spring Context和Spring Web MVC等七个模块,企业应用程序就是通过这七个模块气筒不同的平台来进行开发的,Spring Web MVC中的各个元素之间形成了松散耦合[23-25]。
3. 系统分析
3.1 可行性分析
开发者在进行开发系统之前,都需要进行可行性分析,保证该系统能够被成功开发出来。
3.2 技术可行性
开发该校园失物招领小程序所采用的技术是JSP和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识,同时也接触了很多编程软件,所以在技术开发方面还是比较有信心的。
3.3 操作可行性
该校园失物招领小程序的界面简洁清楚,操作简单,用户一看就会操作。操作界面上每一步都有提示,用户只要按照提示进行操作就可以了。该校园失物招领小程序具有操作可行性。
3.4 经济可行性
我现在还是一名学生,还没有一份稳定的经济收入,所以我会将开发程序的成本控制在自己所能接受的范围内。我所使用的开发软件、数据库还有设计界面用的photoshop软件都是在网上免费下载的,另外程序编写阶段所用到的源代码也是在网上免费得到的,现在在网上能下载很多有用的、免费的东西,所以开发该系统基本不花钱,具有经济可行性。
3.5 法律可行性
我是通过图书馆、百度文库、百度网页等获得的开发该校园失物招领小程序所需要用到的资料和软件,都是采用的合法渠道,另外源代码和论文内容都是我自己一字一字写出来的,没有抄袭别人的,具有法律可行性。
通过上述的技术可行性、操作可行性、经济可行性以及法律可行性分析,可以看出,该校园失物招领小程序完全可以进行顺利开发。
3.6 系统性能分析
- 存储性:该校园失物招领小程序的数据库功能比较强大,能够录入很多纷繁复杂的信息,且能够保证数据的实时性;
二、易学性:该校园失物招领小程序使用起来非常简单,用户一看就会,不需要进行专门的培训,非常好上手,使用个一两次就能够熟练操作;
三、数据要求:录入的数据准确可靠,能够及时进行更新,可以独立保存,删除一些不需要的数据;
四、稳定性:该校园失物招领小程序能够稳定的运行,界面清晰明了;
五、可靠性:该校园失物招领小程序安装有拦截器,可以对病毒等进行拦截,并且还对信息进行了保护措施,用户可以放心使用。
3.7 系统功能分析
角色需求
该校园失物招领小程序主要为管理员和用户两类用户角色提供需求,管理员在后台可以对系统进行全面管理,用户在前台可以进行查看系统信息,注册登录,查询书籍,评论,下载书籍等操作。
用户静态结构如图3-1所示。

图3-1 用户静态结构图
功能需求
该校园失物招领小程序具有完善的功能,界面一目了然,用户一看就会操作,管理员功能模块和用户功能模块是该系统的两大主要功能模块,其功能需求具体如下:
管理员的功能需求:
管理员在后台可以全面管理系统,管理员的功能主要包括用户管理、新闻管理、书籍管理和评论管理等。
用户的功能需求:
用户在没有注册之前,进入网站,用户的主要功能包括查看网站首页、公告信息、书籍分类和书籍信息,用户在注册登录后进入网站,用户的主要功能包括书籍评论、加入书架、书籍下载、个人信息管理、我的书架和我的留言。
系统流程分析
注册流程
用户注册之后才可以登录系统,用户注册流程如图3-2所示:

图3-2 注册流程图
登录流程
用户需要登录系统之后,才可以进行书籍评论、书籍下载等操作。而管理员也只有登录系统之后,可以对系统各个方面的内容进行管理,不受任何限制。用户登录流程如图3-3所示。

图3-3 登录流程图
4.系统设计
4.1 系统概要设计
本文通过B/S结构(Browser/Server,浏览器/服务器结构)开发的该校园失物招领小程序,B/S结构的优点很多,例如:开发容易、强的共享性、便于维护等,只要有网络,用户可以随时随地进行使用。
系统工作原理如图4-1所示。

图4-1 系统工作原理图
4.2 系统结构设计
系统结构设计就像一个树状结构一样,一个树干有很多分支,大任务相当于树干,小任务相当于树枝,只有需求分析信息弄清楚之后,才能保证每个小任务都能实现目标,对初步设计好的系统再进行不断优化,最终得到一个具体现实的系统结构。
管理员功能模块和用户功能模块是该校园失物招领小程序的两大部分,系统结构如图4-2所示。
图4-2 系统结构图
4.3 数据库设计
开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。
4.3.1 数据库概念设计
这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。
(1)下图是论坛实体和其具备的属性。

图4.1 论坛实体属性图
(2)下图是失物认领实体和其具备的属性。

图4.2 失物认领实体属性图
(3)下图是用户实体和其具备的属性。

图4.3 用户实体属性图
(4)下图是公告实体和其具备的属性。

图4.4 公告实体属性图
(5)下图是字典表实体和其具备的属性。

图4.5 字典表实体属性图
(6)下图是失物招领实体和其具备的属性。

图4.6 失物招领实体属性图
(7)下图是寻物启事留言实体和其具备的属性。

图4.7 寻物启事留言实体属性图
(8)下图是用户表实体和其具备的属性。

图4.8 用户表实体属性图
(9)下图是失物招领留言实体和其具备的属性。

图4.9 失物招领留言实体属性图
(10)下图是寻物启事实体和其具备的属性。

图4.10 寻物启事实体属性图
4.4 数据库表设计
采用MYSQL数据库对该校园失物招领小程序的数据进行存储,数据库中所包括的各个数据库表的详细信息如下所示:
表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 | news_name | String | 公告名称 | 是 |
3 | news_types | Integer | 公告类型 | 是 |
4 | news_photo | String | 公告图片 | 是 |
5 | insert_time | Date | 公告时间 | 是 |
6 | news_content | String | 公告详情 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.4失物认领表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | xiaoyuanshiwuzhaoling_id | Integer | 失物id | 是 |
3 | yonghu_id | Integer | 认领用户 | 是 |
4 | yesno_types | Integer | 审核 | 是 |
5 | shiwurenling_text | String | 详情 | 是 |
6 | insert_time | Date | 认领时间 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.5失物招领表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | xiaoyuanshiwuzhaoling_uuid_number | String | 失物编号 | 是 |
3 | xiaoyuanshiwuzhaoling_name | String | 物品名称 | 是 |
4 | shiwuzhaoling_types | Integer | 物品类型 | 是 |
5 | status_types | Integer | 物品状态 | 是 |
6 | yonghu_id | Integer | 用户 | 是 |
7 | xiaoyuanshiwuzhaoling_photo | String | 物品图片 | 是 |
8 | xiaoyuanshiwuzhaoling_time | Date | 拾遗时间 | 是 |
9 | xiaoyuanshiwuzhaoling_dizhi | String | 拾遗地址 | 是 |
10 | xiaoyuanshiwuzhaoling_content | String | 详情 | 是 |
11 | create_time | Date | 创建时间 | 是 |
表4.6失物招领留言表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | xiaoyuanshiwuzhaoling_id | Integer | 物品 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | xiaoyuanshiwuzhaoling_liuyan_text | String | 留言内容 | 是 |
5 | reply_text | String | 回复内容 | 是 |
6 | insert_time | Date | 留言时间 | 是 |
7 | update_time | Date | 回复时间 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.7寻物启事表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | xunwuqishi_name | String | 物品名称 | 是 |
3 | shiwuzhaoling_types | Integer | 物品类型 | 是 |
4 | status_types | Integer | 物品状态 | 是 |
5 | xunwuqishi_photo | String | 物品图片 | 是 |
6 | xunwuqishi_time | Date | 丢失时间 | 是 |
7 | yonghu_id | Integer | 用户 | 是 |
8 | xunwuqishi_dizhi | String | 丢失地址 | 是 |
9 | xunwuqishi_content | String | 详情 | 是 |
10 | create_time | Date | 创建时间 | 是 |
表4.8寻物启事留言表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | xunwuqishi_id | Integer | 物品 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | xunwuqishi_liuyan_text | String | 留言内容 | 是 |
5 | reply_text | String | 回复内容 | 是 |
6 | insert_time | Date | 留言时间 | 是 |
7 | update_time | Date | 回复时间 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.9用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
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.10用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | role | String | 角色 | 是 |
3 | addtime | Date | 新增时间 | 是 |
5. 系统的实现
5.1功能模块的实现
5.1用户信息管理
如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,
还进行了对用户名称的模糊查询的条件


图5.1 用户信息管理页面
5.2 失物招领管理
如图5.2显示的就是失物招领管理页面,此页面提供给管理员的功能有:查看已发布的失物招领数据,修改失物招领,失物招领作废,即可删除,还进行了对失物招领名称的模糊查询 失物招领信息的类型查询等等一些条件。


图5.2 失物招领管理页面
5.3寻物启事管理
如图5.3显示的就是寻物启事管理页面,此页面提供给管理员的功能有:根据寻物启事进行条件查询,还可以对寻物启事进行新增、修改、查询操作等等。


图5.3 寻物启事管理页面
5.4公告信息管理
如图5.4显示的就是公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。


图5.4 公告信息管理页面