




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号:分类号:TP311.52 U D C:D10621-408-(2013) 2054-0 密密 级:公级:公 开开 编编 号:号:2009102061 成成 都都 信信 息息 工工 程程 学学 院院 学学 位位 论论 文文 基于基于 JSF 的失物招领登记系统的失物招领登记系统 论文作者姓名:论文作者姓名:XXX 申请学位专业:申请学位专业:通信工程通信工程 申请学位类别:申请学位类别:工学学士工学学士 指指导导教教师师姓姓名名(职职称称) : XXX(教授)(教授) 论文提交日期:论文提交日期: 2013 年年 06 月月 05 日日 基于基于 JSF 的失物招领登记系统的失物招领登记系统 摘摘 要要 校内公告栏上时常会有各种寻物启示,但很少有人真正去问津,去了解和 关心别人的心情,贴启示者更是在花费了印务费用之后,却达不到应有的效果。 为解决此问题,我们计划开发失物招领登记系统,为信息时代的学生提供 了更多的便利。通过该应用系统,注册者可以登记自己的失物信息,并按时间 顺序在主页上显示,任何人都可以看到一个集中的校内失物寻物信息及其联系 人和联系方式,为在校学生提供了更廉价便捷的失/拾物方式。 以 J2EE 作为开发基础,使用了 JSF 等多种协议或技术,用 MyEclipse 作为 开发工具,以 Oracle 公司的 MySql 作为数据库,开发实现了基于 web 技术的在 线失物招领登记系统。系统实现了的以下主要功能模块,包括:管理员权限, 管理和维护;用户注册、登录、注销,个人信息的查询、修改;物品管理,查 看;广告添加,修改。经测试验证,该在线失物招领登记系统界面简单、操作 方便,容易维护。 关键词:关键词:失物招领; j2EE; JSF; MySql The Lost and Found Registration System Based on JSF Abstract There are often few of lost objects on campus bulletin boards, but just a little of people actually interested in them, understand and care about others mood, paste the enlightenment is after spending printing costs, but fail to achieve the desired effect. In order to solve this problem, we plan to develop the lost property registration system, provide more convenience for the information age students. By the application, registration can register their lost information, and according to the time sequence on the home page display, anyone can see a centralized campus lost information and contacts, provide more cheap and convenient way in lost and found for students. Using J2EE as development basis, using JSF and other agreements and technology, using MyEclipse as a development tool, MySql as the database, developed to achieve online lost property registration system based on Web technology. The following main function modules, system include: administrator rights, management and maintenance; user registration, login, logout, query, modify personal information; lost and found information management, view; advertisement add, modify. The system has a simple interface, easy operation, and easy maintenance. Key words: Lost and Found; j2EE; JSF; MySql 目录目录 论文总页数: 31 页 1 引言1 1.1 课题背景.1 1.2 课题目的和意义.1 1.3 课题研究方法.1 1.4 论文结构.1 2 系统应用的关键技术和工具2 2.1 J2EE 介绍 2 2.1.1 J2EE 概述 .2 2.1.2 J2EE 优势 .2 2.2 JSF 技术介绍.3 2.2.1 JSF 的概述3 2.2.2 JSF 配置4 2.2.3 JSF 的优点4 2.3 MYSQL 数据库4 2.3.1 数据库概述5 2.3.2 MYSQL概述5 2.3.3 MYSQL的特点.5 2.3.4 MYSQL5.5 安装过程 .6 2.4 TOMCAT 服务器6 2.4.1 TOMCAT 服务器简介.6 2.4.2 TOMCAT的特点6 2.4.3 TOMCAT的优势7 2.4.4 TOMCAT服务器的安装和配置7 2.5 MYECLIPSE 开发工具.8 2.5.1 MYECLIPSE概述.8 2.6 小结.9 3 系统需求分析和总体设计.9 3.1 系统功能需求9 3.2 系统角色及其功能分析9 3.2.1 系统支持的角色.9 3.2.2 系统角色的功能.9 3.3 总体设计思想概述.10 3.4 数据库设计11 3.4.1 数据库表设计.11 3.5 系统类的设计12 3.5.1 ENTITY层12 3.5.2 DAO 层.12 3.5.3 DTO 层13 3.5.4 WEB 应用层.13 3.6 小结14 4 系统的详细设计.14 4.1 数据库与 ENTITY层映射14 4.2 主要模块的使用与界面15 4.2.1 应用主界面.15 4.2.2 信息发布与管理界面.16 4.2.3 用户注册与登录界面.17 4.2.4 超级管理员广告管理界面.19 4.2.5 超级管理员物品信息管理界面.21 4.2.6 超级管理员用户管理界面.22 4.3 主要模块的设计思路及核心代码22 4.3.1 后台逻辑核心22 4.3.2 前台显示页面核心代码25 4.4 系统的测试27 4.5 小结27 5 总结与展望.28 5.1 工作总结28 5.2 展望28 参考文献28 致 谢.30 声 明.31 第 1 页 共 31 页 1 引言引言 1.1 课题背景课题背景 随着当今世界进入信息时代,Internet 的飞速发展和在全球的普及给人类生 活带来革命性的改变,Internet 将传统意义上的物理空间转变成电子空间,把人们 带入了一个网络社会中,网络时代的到来,带给人们的不只是快捷、方便,它带 来的是划时代的进步1。 校内应用的兴起,为信息时代的学生提供了更多的便利,失物招领登记系 统也正是基于这个想法。公告栏上时常会有各种寻物启示,但很少有人真正去 问津,去了解和关心别人的心情,贴启示者更是在花费了印务费用之后,却达 不到应有的效果。在此应用系统上,注册者可以登记自己的失/拾物品信息,并 按登记时间顺序在主页上显示,任何人都可以看到一个集中的校内失/拾物品信 息及其联系人和联系方式,为在校学生提供了更廉价便捷的失/拾物方式。 1.2 课题目的和意义课题目的和意义 校内应用是开发以针对学校局域网络内的常见应用程序,通常包含:教务 管理系统,OA 办公系统,图书馆应用系统,学生管理系统等大型应用,也有 如留言板,FTP 校内下载,校内二手网,学院独立管理系统等中小型应用。 作为校内应用的扩展,本系统目的和意义就是在校内失物招领这个常见的 现实模块扩展为网络应用,为在校学生提供更廉价便捷的失/拾物方式,并实现 统一管理。利用本系统,用户可以自由地浏览已经登记在数据库中的全部失/拾 物信息,并可通过现在有学号登录,或重新注册成为用户,登记自己的失/拾物 信息,实现低廉便捷操作。 1.3 课题研究方法课题研究方法 底层数据库层采用 MySql,由 eclipselink 作为持久化管理,建立实体 bean;整体运用 MVC 设计思路,各层之间独立,分为实体 Entity 层,实体操作 DAO 层,实体扩展及操作 DTO 层,javaBean 后台 APP 层和最终 WEB 应用层; 页面采用 JSF Bean 管理;前台后台通过登录用户权限控制进入。 1.4 论文结构论文结构 第一章,主要介绍了相关开发的背景、目的以及意义。 第二章,主要介绍了开发本系统所用到的关键技术和开发工具,为接下来 的设计奠定基础。 第三章,主要介绍了对系统进行了需求分析和进行总体设计。需求分析阶 段通过分析系统的角色的划分以及功能模块的划分,为系统的整体体设计提供 了依据。整体设计阶段通过对数据库、DAO 及 DTO 层和实体类的设计,并形 成了完整的开发思路。 第 2 页 共 31 页 第四章,主要介绍了主要模块的设计与实现以及使用,并给出相关关键源 代码和最终的效果展示图。 第五章,主要是对本次毕业设计的总结以及对后续工作的展望。 2 系统应用的关键技术和工具系统应用的关键技术和工具 2.1 J2EE 介绍介绍 2.1.1 J2EE 概述概述 J2EE(Java 2 Platform Enterprise Edition)是 java 技术行业标准的应用技术 开发企业级平台(Sun 公司为了自身的利益,并没有将 Java 及其相关技术纳入 标准化组织体系) ,它是 Java 技术不断更新和适应市场的产品,促进企业应用 程序在 Java 平台上的发展。目前,java 平台有三个版本:适合小型设备和智能 卡的 J2ME(Java 2 Platform Micro Edition) ,适用于桌面系统的 J2SE(Java 2 Platform Standard Edition) 、企业应用 J2EE(Java 2 Platform Enterprise Edition) 。 Sun 推出了 J2EE 为了克服传统的客户机/服务器(C/S)模式缺点,以浏览器/服 务器(B/S)体系结构的发展趋势,提供了 Java 技术在服务器端应用程序在一个独 立于平台的,便携式,多用户的开发应用,安全和基于标准的企业平台,从而 简化了企业应用程序的开发,管理和部署。J2EE 是一个标准,而不是一个产品, 每个平台开发商按照 J2EE 标准开发 J2EE 应用服务器,J2EE 应用服务器部署的 J2EE 企业应用平台,因为他们遵循 J2EE 规范。因此,企业应用开发采用 J2EE 技术可以部署在各种 J2EE 应用服务器的体系结构,以促进和规范企业应用的 J2EE 框架的使用,同时 Sun 给定了一个建议性的 J2EE 应用设计模式:J2EE 蓝 图,J2EE 蓝图提供了系统的体系结构。J2EE 企业应用设计模式的实现和相关 代码,采用 J2EE 蓝图描述系统模型,可以简化这个复杂的工作,企业应用集成 架构,J2EE 蓝图是开发和优化的 J2EE 组件设计的基本原则。在发展的同时, 给出的引导性策略也有助于职能分工,帮助应用开发和设计人员合理配置科技 资源2。 2.1.2 J2EE优势 J2EE 的优势主要有以下几点: 高效的开发:J2EE 允许其它公司把通用的,繁琐的服务端事务,交由服 务器中间件厂商去代替完成,使真正的开发人员可以专注于如何创建高效业务 逻辑,缩短开发周期。先进的中间件厂商提供这些复杂的中间件服务:状态管 理服务允许开发者写更少的代码,不在乎如何管理状态,因此可以更快的完成 程序开发。 持续性服务 :让开发人员不用编码代码就可以编写数据访问逻辑应用, 可以产生更轻巧,应用程序完全与数据库无关,便应用程序更易于开发和维护, 第 3 页 共 31 页 分布式共享数据对象缓存系统服务,让开发人员来制备高性能可扩展性大大提 高的系统,总体部署伸缩性强。 支持异构环境:J2EE 可以开发和部署在异构环境中的可移植的程序,对 J2EE 应用程序不依赖于任何特定的操作系统,中间件,硬件的基础上,基于 J2EE 合理的应用程序,开发一次,可以部署到多个平台。在典型的企业异构环 境的计算环境很重要,J2EE 标准也允许排序与 J2EE 第三客户端的现成的组件 兼容,在异构环境中部署他们,降低整个开发维护成本。 可伸缩性:企业应用必须选择一个服务器平台,该平台可以满足商业运 行在他们的系统上的大量新客户,并提供良好的可扩展性,由于 J2EE 平台的应 用程序可以部署到各种实例的基础上,不区分操作系统。例如部署到高端 UNIX 主机系统,这个系统的一个单一的机器可支持 64 到 256 个处理器, (这 是 NT 服务器所不能达到的)J2EE 供应商提供广泛的负载平衡策略,可以消除 系统中的瓶颈,允许多个服务器集成部署,多达数千个处理器的配置,实现系 统具有高度的可扩展性,满足未来业务应用的需要。 稳定的可用性:服务器平台必须能够在二十四小时运作来满足客户、合 作伙伴的需求。由于互联网是全球的,无处不在的,即使在晚上的计划停机时 间也可能造成严重的损失。如果意外关闭,它将有灾难性的后果。J2EE 部署可 靠的运行环境,他们支持的长期可用性。在 Windows 环境下的一些 J2EE 部署, 客户可以选择的操作系统,如 Sun Solaris 更好的鲁棒性,IBM 的 OS390。最 好的操作系统的鲁棒性,可以实现 99.999%的可用性或每年只有 5 分钟的停机 时间。这是一个强大的实时性能理想的业务系统2。 2.2 JSF 技术介绍技术介绍 2.2.1 JSF 的概述的概述 JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架, 它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开 发,JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。 “企业开发人员” 和 Web 设计人员将发现 JSF 开发可以简单到只需将用户界面 (UI) 组件拖放 到页面上,而“系统开发人员”将发现丰富而强健的 JSF API 为他们提供了无与 伦比的功能和编程灵活性,JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后, 由于 JSF 是通过 Java Community Process (JCP) 开发的一种 Java 标准,因此 开发工具供应商完全能够为 JavaServer Faces 提供易于使用的、高效的可视化 开发环境3。Jsf 请求步骤如图 1 所示。 第 4 页 共 31 页 图 1 JSF 请求步骤 2.2.2 JSF 配置配置 JSF 是一个标准的网络应用框架,是以 Servlet 为调度核,因此,如果想正常 运行 JSF 程序,必须把 JSF 作为 servlet 来运行。 JSF 是作为 Servlet 来运行,也有自己的配置文件,就是上面 param 所指定 的 faces-config.xml,这个文件中配置了 JSF 正确运行需要的一些信息,包括 managed-bean(将 JSF web 页面中需要的 bean 以 managed 的方式配置起来,这样, 就可以在 web 页面中直接调用该 bean 的属性和方法) ,navigation-rule(JSF 页 面之间的流转/调度配置)等。 JSF 程序在 web 页面中也表现为用户标签,也就是说,JSF 也跟 strtus 一样, 有自己的一套标签库,它通过解析这些标签来实现对 JSF 程序的控制。目前, JSF 有 2 套标签:jsf_core.tld 和 html_basic.tld,从名字上可以看出来,第一个主要 是核心 JSF 程序使用的标签,包括视图层(所有的 JSF 程序都必须有的标签包围) ,loadBundle(资源相关),validator(校验相关)等第二个是 web 页面设计相关 的的一些 html 组件标签,这些组件,可以组成普通或者复杂的 web 应用程序。 这里提一下,JSF 最主要的特性之一,事件驱动,就是通过 html 组件来体 现的,在定义了一个按钮(commandButton)以后,只要定义一下它的事件,就可 以直接的将这个动作映射到后台的某个管理 Bean 的某个方法上,这样,大大减 少了原来中间层的 javascript 调用,也就缩短了开发时间,并且,也减少了中间 出错的几率。 2.2.3 JSF 的优点的优点 JSF 具有以下优点: 基于 MVC,可以有效的将数据显示与业务逻辑分开处理。 有功能强大丰富的 web 开发组件,可以可视化的设计开发 web 应用程序。 事件驱动,这是 JSF 比较重要的特点,这种机制大大减少了开发时间, 提高了开发效率。 2.3 Mysql 数据库数据库 第 5 页 共 31 页 2.3.1 数据库概述数据库概述 根据一些数据模型的数据库的组织并存放二级存储器的数据集,该数据集 具有以下特点:尽可能不重复,提供各种各样的最佳的应用程序给某个特定的 组织,其数据结构独立于使用它的应用程序,对数据的添加,删除,修改的统 一管理和控制软件。数据搜索从历史的发展中看,数据库是数据管理的高级阶 段,它是由文件管理系统的开发。在数据库中,一个项目的所有信息可以被称 为一条记录(Record) ,每条记录由一系列字段(Field)组成,一系列的记录的 集合形成数据表(Table) ,一个简单的“平面文件数据库”,它只包含一个数据 表,而一个“关系数据库”,它包含两个或两个以上的数据表,其中一个或多个 字段形式之间存在关系(有时被称为“链接”) 4。 常用数据库:IBM 的 DB2、Oracle、Informix、Sybase、SQL Server、PostgreSQL、mySQL。 2.3.2 Mysql 概述概述 MySQL 是一个关系数据库管理系统,由瑞典公司 MySQL AB 公司开发, 现在属于 Oracle 公司。MySQL 是一个关系数据库管理系统,关系数据库是在 不同的表中保存数据,而不是所有的数据都在一个大仓库,增加存取速度,并 提高灵活性。MySQL 的 SQL 语言是最常见的用于访问数据库的标准语言。 MySQL 软件采用双授权政策,它分为社区版和商业版,因为它体积小,速度快, 成本低,尤其是开放源代码的特点,一般中小型网站发展会选择 MySQL 作为 数据库。由于其卓越的社区版本的性能,使用 PHP 和 Apache 可以形成一个良 好的发展环境4。 2.3.3 mysql 的特点的特点 MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS) ,MySQL 数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库 管理3。 因为 MySQL 是开源的,所以任何人都可以通用公共许可证允许下载并根 据个人需要修改。MySQL 由于其速度,可靠性和适应性的问题,大多数人认为 不需要事务处理条件下,MySQL 是内容管理的最佳选择,提供完全的多线程运 行模式下的多线程系统利用为核心。提供了一种编程接口, C+,Java,Perl,Eiffel,PHP,Python 和 TCL 程序语言(API) ,多个字段类 型的支持,提供了一个完整的支持查询中 SELECT 和 WHERE 操作4。 目前 MySQL 被广泛地应用在 Internet 上的中小型网站中,因为它体积小, 速度快,成本低,尤其是开放源代码的特点。许多中小型网站为了降低网站总 体运营维护成本而选择 MySQL 作为网站数据库3。 第 6 页 共 31 页 2.3.4 MySQL5.5 安装过程(本系统使用的安装过程(本系统使用的 MySql 版本)版本) 运行 mysql 安装文件。 按 Next,然后选择安装方式,有“Typical(默认) ”、 “Complete(完全) ”、 “Custom(用户自定义) ”,选择第二个选 项“Custom”,下一步,MySQL Server(mysql 服务器) ,Developer Components(开发者部分),Debug Symbols(调试 符号),Server data files(服务器数据文件)默认 改变安装路径,原路径是“C:Program FilesMySQLMySQL Server 5.5”, 也可以修改为:“E:Program FilesMySQL Server 5.5”。下一步,安装,会弹出窗口,点 下一步,再点下一步,选择“Launch the MySql instance Configuration Wizard”,意思 是启动 MySQL 实例配置向导,再点击 Finish,再点下一步,Detailed Configuration(详细配置)和 Standard Configuration(标准配置),选择详细配置,下 一步。 选择服务器类型, “Developer Machine(开发测试类,mysql 占用很少资源) ”、 “Server Machine(服务器类型,mysql 占用较多资源) ”、 “Dedicated MySQL Server Machine(专门的数据库服务器,mysql 占用所有可用资源) ”,根据自己 的类型选择,测试软件选“Developer Machine”,服务器选“Server Machine” ,下 一步。 选择创建 MySQL 表时使用的表处理器, “Multifunctional Database”(通用 多功能型,同时使用 InnoDB 和 MyISAM 储存引擎) 、 “Transactional Database Only”(服务器类型,专注于事务处理,主要使用 InnoDB 只偶尔使用 MyISAM, 一般) 、 “Non-Transactional DatabaseOnly”(非事务处理型,较简单,完全禁用 InnoDB 储存引擎,将所有服务器资源指派给 MyISAM 储存引擎) ,随自己的用 途而选择。 2.4 Tomcat 服务器服务器 2.4.1 Tomcat 服务器简介服务器简介 Tomcat 是一个免费的开源 serlvet 容器,这是 Apache 基金会的 Jakarta 项目 中的一个核心项目。项目在 Apache 基金会,Sun 公司和其他一些公司和个人共 同开发,由于 Sun 的参与和支持,最新的 Servlet 和 JSP 标准都可以反映在 Tomcat 中5。 Tomcat 中采用了 Servlet 容器:Catalina,完整的实现了 Servlet2.3 和 Jsp1.2 规范,Tomcat 提供了不同平台的各种版本供下载,可以从其官方网站上下载其 源代码版或者二进制版,由于 Java 的跨平台特性,基于 Java 的 Tomcat 也具有 跨平台性5。 2.4.2 Tomcat 的特点的特点 第 7 页 共 31 页 在 Tomcat 中,应用程序的部署非常简单,你只需要把你的 WAR 包到 Tomcat Webapp 目录。Tomcat 会自动检测该文件,解压,您访问此应用程序时, 在有 JSP 的浏览器路径中,通常是非常缓慢的,因为 Tomcat 将 JSP 转为 Servlet 文件,然后编译,编译,之后将很快,Tomcat 还提供一个应用程序: manager,访问此应用程序需要一个用户名和密码,用户名和密码存储在一个 tomcat-users.xml 文件,通过这个应用,基于 FTP,您可以远程通过 Web 部署和 撤回申请,当然,本地也可以5。 2.4.3 Tomcat 的优势的优势 Tomcat 不仅是一个 servlet 容器,它具有传统的 Web 服务器的一般功能: 处理 HTML 页面,但与 Apache 相比,其处理静态 HTML 页面不及 Apache 的 能力。把 Tomcat 和 Apache 可以集成到一块的话,让 Apache 处理静态的 HTML,而 Tomcat 处理 JSP 和 Servlet,这种整合只需要修改 Apache 和 Tomcat 配置文件就可达到效果5。 2.4.4 Tomcat 服务器的安装和配置服务器的安装和配置 安装 JDK 1.7 添加环境变量:在 我的电脑-属性-高级-环境变量 新建系统变量,变量名:JAVA_HOME 变量值:C:Program FilesJavajdk1.7.0 (JDK 的安装目录) 在原有的系统变量 Path 后面加上英文分号,再添加% JAVA_HOME%bin;%JAVA_HOME%libdt.jar;%JAVA_HOME%jrebin; 不要 删除原来的。它们之间的分号,是英文的分号。 重启电脑生效(因为添加的是系统变量,如果你的系统是 win7,则不 需要重启) 。 测试 JDK 是否安装成功,运行-cmd -D: 进入 D 盘,输入 javac 看能否出来很多命令,出来则说明 JDK 配置成功。 Tomcat 7.0 的安装配置 Tomcat 7.0 的免安装版的配置(假如将 Tomcat 解压到 C:Program Files 目录,目录结构为:C:Program Filesapache-tomcat-7.0.11 添加环境变量:在 我的电脑-属性-高级-环境变量 新建系统变量,变量名:CATALINA_HOME 变量值:C:Program Filesapache-tomcat-7.0.11 (Tomcat 解压到的目录)。 在系统变量 Path 的最后面添加%CATALINA_HOME%lib;% CATALINA_HOME%libservletapi.jar;%CATALINA_HOME%libjsp-api. jar 注意它们之间的分号,一定是英文的分号。 第 8 页 共 31 页 安装完成 打开 tomcat 服务器,默认端口:8080,启动浏览器,在地址栏上输入: http:/localhost:8080/若出现图 2 所示界面说明安装成功。 图 2 tomcat 启动页面 2.5 MyEclipse 开发工具开发工具 2.5.1 MyEclipse 概述概述 MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称 MyEclipse)是对 EclipseIDE 的扩展,利用它我们可以在数据库和 JavaEE 的开 发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富 的 JavaEE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支 持 HTML,Struts,JSP,CSS,Javascript,Spring,SQL, Hibernate6。 MyEclipse 是一个十分优秀的用于开发 Java, J2EE 的 Eclipse 插件集合。 MyEclipse 的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十 分不错,MyEclipse 目前支持 Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC 数据库链接工具等多项功能。可以说 MyEclipse 几乎囊括 了目前所有主流开源产品的专属 eclipse 开发工具6。开发界面如图 3。 图 3 MyEclipse 工程页面 第 9 页 共 31 页 2.6 小结小结 本章全面介绍了失物招领登记系统所用到的关键技术和开发工具,其中 JSF 作为整个 WEB 应用开发的基础,理解它的运行机制很重要,同时还得明白 它的优劣势;j2ee 作为开发的标准也作了简单介绍。最后介绍了本系统使用的 数据库 mysql 以及 tomcat 服务器的安装与配置和工发工具 MyEclipse。只有掌 握了这些基础技术,本系统的开发才能正常进行。 3 系统需求分析和总体设计系统需求分析和总体设计 3.1 系统功能需求系统功能需求 图 4 系统功能需求模块 如图 4 所示,在本系统中主要阐述用户管理、物品信息管理、广告展示三 个模块。 用户管理:实现游客注册成为用户,并可自身修改用户显示名和密码, 同时管理员可以对用户进行密码进行重置和显示名修改。 物品管理:实现登录用户添加删除失/寻物品信息,并对自己添加物品进 行状态更改,同时管理员也可以对所有物品信息进行查看或者删除。 广告展示:实现管理员对页面头部广告显示的添加,修改,删除和选择 相应广告激活。 3.2 系统角色及其功能分析系统角色及其功能分析 3.2.1 系统支持的角色系统支持的角色 站点注册用户 超级管理员 普通的网站浏览者(即游客) 3.2.2 系统角色的功能系统角色的功能 第 10 页 共 31 页 普通用户 网站的普通浏览者只能浏览登录用户已登记的失/拾物品信息。 注册用户 网站的普通浏览者只要注册为失物招领登记系统用户后,获得自己的登录 用户名,设置自己的登录密码就具有以下功能:登录,登出。并可登记和管理 自己的失/拾物品信息。 管理员 拥有注册用户的所有功能,还可以对用户进行管理,包括重置用户密码、删 除用户。页面头部广告显示的添加,修改,删除和选择相应广告激活。删除用 户登记的失/拾物品信息。 3.3 总体设计思想概述总体设计思想概述 本系统是基于 B/S 架构下的 MVC 多层结构应用系统。 B/S(Browser/Server)结构即浏览器和服务器结构。它是随着网络信息时代的 发展,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面 是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事 务逻辑在服务器端(Server)实现,形成所谓三层 3-tier 结构。这样就可以大大 简化客户端电脑载荷,减轻系统维护与升级的成本和工作量,降低了用户的总 体开发,运营和维护成本(TCO)7。 在软件的体系架构设计中,MVC 分层式结构是最常见,也是最重要的一种 结构。推荐的分层式结构一般分为三层,从下至上分别为:持久化层、业务逻 辑层、表现层,如下图 5: 图 5 系统架构 总体而言,采用 MVC 结构的设计思路,有一层中完成一组特定的功能实 现,可以由多个相关的类或组件构成。层与层之间所存在的依赖关系是自上而 下的,上层组件会对下层组件的 API 产生依赖关系,而下层组件却不会依赖于 上层组件。例如:表现层会依赖于业务逻辑层的 API,再向下业务逻辑层又会 依赖于数据库层。并且每个依赖层都会对其上层公开 API,但每一层具体的实现 细节却会对外透明。当对其中某一层修改后,只要 API 不变,依然不会影响其 他层。 第 11 页 共 31 页 在本系统的开发过程中,使用了开源的 mysql 数据库,由 eclipselink 作为 持久化管理,表现层运用基于 JSF 托管 Bean 实现。 3.4 数据库设计数据库设计 3.4.1 数据库表设计数据库表设计 下面列出了设计过程中所用到的数据库表及其字段结构: Lost_Thing 表用来保存用户登记的失/拾物信息,如表 1: 表 1 Lost_Thing l_thing 列名类型长度描述 lost_idint失/拾物品 ID lost_namevarchar50失/拾物品名称 lost_descvarchar1000失/拾物品描述 lost_pickervarchar30拾物用户名(弃用) lost_picker_authvarchar20拾物用户权限(弃用) lost_ownervarchar30失物用户名(弃用) lost_owner_authvarchar20失物用户权限(弃用) lost_publish_uservarchar30信息发布者用户名 lost_publish_timedatetime信息发布时间 lost_imgurlvarchar200物品图片链接地址 lost_statusvarchar10失/拾物品状态 lost_typevarchar50物品类型(弃用) lost_orvarchar10Pick Or Lost lost_starttimedatetime开始时间(弃用) lost_endtimedatetime结束时间(弃用) lost_connvarchar50联系方式 lost_connNamevarchar50联系人 Lost_User 表用来保存用户信息,如表 2: 第 12 页 共 31 页 表 2 Lost_User l_user 列名类型长度描述 user_idint用户 ID user_namevarchar30用户登录名 user_realnamevarchar50用户显示名 user_passwordvarchar50用户密码 user_authvarchar20用户权限 user_regtimedatetime用户注册时间 user_logintimedatetime用户最后登录时间 Lost_Show 表用来保存广告信息,如表 3: 表 3 Lost_Show l_show 列名类型长度描述 show_idint广告 ID show_namevarchar50广告名 show_descvarchar1000广告描述 show_changetimedatetime广告修改时间 show_pulishtimedatetime广告发布时间 show_change_uservarchar30发布广告用户 show_urlvarchar200广告图片链接地址 show_statusvarchar50广告当前状态 3.5 系统类的设计系统类的设计 3.5.1 Entity 层层 Entity 层,也叫实体层,作为和数据库关联最紧密的一层,其直接作用就 是映射数据库字段,将数据库字段反映到普通 java 类属性上,并添加注解。结 构如图 6 所示。 图 6 Entity 设计 3.5.2 DAO 层层 第 13 页 共 31 页 DAO 层,也叫数据库操作层,通过已经写好的 JpaFacade 通用接口连接到 数据库映射 java 类。DAO 层一般有接口和该接口的实现类,接口用于规范实现 类,实现类一般用于操作数据库,包括修改,添加,删除,查询数据库等基础 操作,就写了一个公共类 DAO 类 ,当需要修改,添加,删除,查询数据库操 作时,直接调用公共类 DAO 类,向上对 DTO 层提供访问接口。结构如图 7 所 示。 图 7 LostFacadeDAO 设计 3.5.3 DTO 层层 DTO 层,也叫数据传输对象层,主要用来再次封装对数据库的访问,就是 对 Entity 的扩展和对操作 DAO 暴露出来的接口,以便让最终的 WEB 层可以在 DTO 层的帮助下更加轻松的操作数据库中的数据。结构如图 8 所示。 图 8 LostDTOFacadeBean 设计 3.5.4 WEB 应用层应用层 WEB 应用层是整个业务逻辑的体现,所有业务相关的逻辑都写在 WEB 层 的 JavaBean 内,通过调用底层包装过的方法,将结果处理之后返回到页面上作 显示,并与用户交互。结构如图 9 所示。 图 9 Web 应用层设计 第 14 页 共 31 页 3.6 小结小结 本章内容在开头分析了系统的功能需求,通过对系统角色的划分以及功能 模块的划分,明确了系统将要实现的需求,总体设计也有了依据。在接下来的 小节里阐述了系统的总体设计思路,本系统是基于 B(浏览器)/S(服务器) 架构下的 MVC 应用系统。最后通过对数据库、Dao,Dto 和实体类的设计分析, 形成了完整的开发思路,为接下来编程实现各个具体功能模块铺平了道路。 4 系统的详细设计系统的详细设计 4.1 数据库与数据库与 Entity 层映射层映射 EclipseLink 除了支持传统的 ORM 和 OXM 之外,另外提供了对 SOA 的支 持,比如能够将 Domain Model 部署成 Web Service,比如利用 ORM 和 SDO 将 实体部署为 SDO,甚至利用 DAS 来查询和修改这些实体。 EclipseLink 持久化配置文件为 persistence.xml。 本系统连接到数据库 MySql,创建数据库名称为“lost”,使用默认端口 3306, 下图说明了如何配置以连接到 MySql 数据库,如图 10。 图 10 持久化框架配置文件 每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据 和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工 作,如果频繁发生这种数据库操作,系统的性能必然会急剧下降,甚至会导致 系统崩溃。数据库连接池技术是解决这个问题最常用的方法。 在 Tomcat 服务器下 confcontext.xml 中配置数据库连接池: 4.2 主要模块的使用与界面主要模块的使用与界面 4.2.1 应用主界面应用主界面 本系统采用全英文界面,主界面包含以下几个部分: 头部注册和用户登录入口; 主界面广告信息轮显; 主界面主体失/拾物品最新信息显示; 脚部外站链接; 当用户不登录进入到主页面时,用户可以以游客的身份查看到最新发布的 失/拾物信息,如图 11,图 12; 图 11 主界面广告和失/拾物品列表 第 16 页 共 31 页 图 12 失/拾物品详细信息 4.2.2 信息发布与管理界面信息发布与管理界面 登录用户可以进行失/拾物品的信息发布和管理,如图图 13,图 14。 第 17 页 共 31 页 图 13 失/拾物品发布页面 图 14 失/拾物品用户管理界面 用户登记失/拾物品信息时每一项都是必填项,失/拾物品名称不得低于五位, 日期为选择性组件,联系方式可以按自己的方式填写,可以是电话,可以手机, 可以是 QQ,也可以邮箱;联系人可以是本人,也可以由当前用户替别人发布 信息;相关描述不能为空,最多八百字,上传图片为可选项,图片最多上传五 张,每张大小不超过 5MB,上传之后,会被服务器处理成为 640*480 的最佳尺 寸,所以,上传之后,大小会有变动!提交成功之后,会跳转到当前发布信息 的详细页面。 用户不能对发布了的信息进行修改,但可以查看和修改状态。如果不满意 可以删除发布了的信息。 4.2.3 用户注册与登录界面用户注册与登录界面 未注册用户可以通过注册按钮进行注册。按钮如图 15,注册界面如图 16。 图 15 注册按钮 第 18 页 共 31 页 图 16 注册界面 已注册用户可以通过用户登录按钮进行登录。如图 17,登录界面如图 18。 图 17 用户登录按钮 用户登录模块设置了可选项记住密码 cookie 为七天,用户名和密码不得低 于六位,系统将始终记住最后一次成功登录的时间,可被超级管理员在超级管 理员界面上查看到。 图 18 用户登录界面 第 19 页 共 31 页 普通用户和超级用户的区别如图 19 和图 20 所示。 图 19 超级用户 图 20 普通用户 通过 information,可以查看和修改自己的用户信息,如图 21。 图 21 用户信息修改 4.2.4 超级管理员广告管理界面超级管理员广告管理界面 超级用户主界面如图 22。 第 20 页 共 31 页 图 22 主界面 广告管理模块包括广告添加,修改和删除,详细信息在图片上浮动显示。 广告管理模块主界面如图 23。 图 23 广告管理主界面 广告添加时,需要填写广告名称和描述,描述将显示在广告图片下方,选 择激活的话,广告将会被立刻应用在主界面上。也可以在以后进行修改为激活。 添加界面如图 24。 第 21 页 共 31 页 图 24 广告添加 4.2.5 超级管理员物品信息管理界面超级管理员物品信息管理界面 超级管理员可以查看和删除所有用户发布的物品,如果超级管理员查看到 发布的信息包含不适当内容的时候,将有权限直接删除该条信息。如图 25,图 26。 图 25 物品信息主页面 第 22 页 共 31 页 图 26 物品详细信息页面 4.2.6 超级管理员用户管理界面超级管理员用户管理界面 超级管理员可以查看到每个用户的信息,包括注册时间,最后一次登录成 功的信息,用户权限等,但超级管理员无权修改用户密码,只能对用户密码进 行重置为 888888。可以配置一名超级管理员,任何人都无法修改其为超级管理 员外的其它权限。如图 27,图 28。 图 27 用户管理主页面 图 28 用户信息修改页面 4.3 主要模块的设计思路及核心代码 4.3.1 后台逻辑核心后台逻辑核心 登录,退出 用户密码管理采用 MD5 加密,登录时对用户信息再加密之后与数据库中数 据核对,一致则表示为同一用户,加密方式写为“MD5Util.java”文件。 登录代码: if(MD5Util.encrypt(password+“0“+userDTO.getUserName().equals(userDTO.g etUserPassword() HttpServletRequest request = (HttpServletRequest) 第 23 页 共 31 页 FacesContext.getCurrentInstance().getExternalContext().getRequest(); request.getSession().setAttribute(“LoginUser“, userDTO); (“User : “ + userDTO.getUserRealname() + “ Login success at “ + Util.getTimestamp(); AccountBean accountBean = new AccountBean(); userDTO.setUserLogintime(Util.getTim
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年体育心理学基础知识考试题及答案
- 2025年旅游城市与文化遗产的综合能力测试题及答案
- 2025年临床护理学专业能力测试试卷及答案
- 2025年建筑师职称考试试题及答案
- 2025年国际市场营销战略与实务考试卷及答案
- 2025年中国电信集团有限公司北京分公司招聘笔试模拟试题附答案详解
- 物资设备采购管理制度
- 特勤大队返程管理制度
- 特殊学生寝室管理制度
- 特殊幼儿食谱管理制度
- 福建省2025年6月普通高中学业水平合格性考试地理模拟卷二(含答案)
- 2025年山东省济宁市泗水县中考三模地理试题(含答案)
- 2025年文件归档管理考试题及答案分析
- 文明小学生主题班会课件
- 2024年中考历史试题分类汇编:世界近代史(原卷版+解析)
- 购买私人地皮合同范本
- T/CWPIA 2-2020户外重组竹地板铺装技术规范
- 2025届黄冈市重点中学八下数学期末统考试题含解析
- 2025年英语四级考试模拟试卷及答案
- 2025春季学期国家安全教育期末考试-国开(XJ)-参考资料
- 2025年安全生产月主题培训课件:如何查找身边安全隐患
评论
0/150
提交评论