资源描述
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
长 春 大 学 毕业设计(论文)纸
目 录
1 引言 1
2可行性分析 1
2.1 经济可行性 2
2.2 技术可行性 2
2.3 运行可行性 4
2.4 社会可行性 4
3 系统需求分析 5
3.1背景概述 5
3.2系统概述 5
3.3技术背景 5
3.3.1 JSP内容介绍 6
3.3.2 异步刷新网页方式 6
3.3.3 网页动态效果 7
3.3.4 网页框架 7
3.4 使用软件及环境介绍 8
3.4.1 MyEclips介绍 8
3.4.2 MySql 8
3.4.3 Java 9
3.5数据流图 9
3.6用例图 10
3.7系统子功能描述 10
4 系统总体设计 12
4.1 系统功能设计 12
4.1.1用户登录 12
4.1.2分级控制 12
4.2 数据库设计 13
4.3 数据库连接设计 16
4.4 SSH框架设计 17
5 系统详细设计与实现 19
5.1登录界面设计 19
5.2菜单管理界面设计 19
5.3部门以及机构管理界面设计 20
5.4用户管理界面设计 20
5.5角色管理界面设计 21
5.6日志管理界面设计 21
5.7文档类型管理界面设计 22
5.8文档管理界面设计 22
5.9 Struts设计 23
5.10 Hibernate设计 25
5.11 Spring设计 26
6 系统测试与性能分析 29
6.1登录模块的测试 29
6.2服务器模块操作模块 29
7结论 31
致谢 32
参考文献 33
共2页 第 2 页
1 引言
随着我国网络的快速普及,信息量的逐步增加,传统的文档管理已经很难适用于当今的高速发展时代。2013年一个新的名词“大数据”广泛流行在网络中,“安全”以及“大数据”成了现今各行各业必须重视的问题。传统的纸质办公文档容易出现,遗失、缺损以及不方便查找等问题,给管理人员带来了很大的困扰。因此,能适应网络高速发展时代的基于web的办公电子文档管理系统的研究与更新也是势在必行。
目前,随着国家普及网络进程的加快,越来越多的人愿意在网上记日记,写笔记,保存重要文件,这对于基于web办公电子文档管理系统的研究有了很大的促进作用。
另一方面,现有的办公电子文档功能并不完善,很难满足新时代人们的要求,不同的人群对此的需求也是不尽相同,如何满足大多数人的需求,为他们提供最好的服务才是最重要。
综上所述,在信息化的大趋势下,对于新型、高效、安全、人性化的web办公电子文档管理系统的需求十分迫切。研究这样的一款方便的文档管理系统,既能在工作之余快速网上传输文件,从而提高效率;又能增强安全性保证文档不会遗失。基于Web的办公电子文档管理系统便是因此开发。
2可行性分析
2.1 经济可行性
(1)开发成本
该系统开发的硬件平台为联想公司IdealPad系列Y480,软件为windows7计算机操作系统+MyEclipse编译环境+MySql数据库配置,所有采用的软硬件无需专门购置,所以开发的经济可行性较好。
(2)运行成本
本系统的运行平台为小型服务器,同时,网络环境可采用现有的因特网,也可以自主架设专用网络,费用成本都可以接受。该产品操作界面友好,操作简单,运行人员无需专业培训,也可以起到控制成本的作用。
(3)经济效益
目前国内的办公电子文档管理系统并不常见,而且大多都无法适应年轻人的需求。此系统完美解决了传统文档管理带来的管理困难,需求人员多的问题,减少了在雇佣员工进行打扫,文档库的租用等费用。只需要有限的成本即可以达到更快捷,更方便的文档管理,所以开发的经济效益前景很好。
综上所述,通过对办公电子文档管理系统的研究,能够在低廉的成本上获得较大经济效益,所以该产品具有经济可行性。
2.2 技术可行性
基于web的办公电子文档管理系统采用B/S模式设计,方便使用,不用安装,用户只需输入相应的域名即可使用。技术上需要解决的有几点:
(1)服务器端数据的存储
目前数据管理经历了人工管理、文件系统和数据库系统3个阶段。数据库管理系统能够解决多用户多应用共享数据的需求,是数据能够广泛高效地得到应用,在二十世纪六十年代中期开始了高速的发展。在这一过程中,对于数据库系统的研究也得到了长足的进步与深入,由此产生了许多高效快捷的管理方法。数据的数据模型也有三个,分别是层次模型、网状模型、关系模型。关系模型。其中关系模型因为其概念单一,结构严谨,易于掌握等各方面的有点成为了目前最重要的一种模型。20世纪80年代到目前以来的绝大多数数据库管理系统都支持关系模型。
在本系统中,采用基于关系型的MySQL数据库来储存并管理服务器端的各种数据,例如管理员的信息、各路口的信息和控制参数等等。MySQL数据库运用广泛,容易上手,大多数开发人员都能够熟练掌握。
(2)服务器端数据的操作
在java语言中提供了对数据库操作的API,通过JDBC可以快捷高效地实现对各类数据的访问。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商以及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC实现了所有这些面向标准的目标且具有简单、严格类型定义且高性能实现的借口。JDBC连接图如图2-1所示。
图2-1 JDBC连接图
(3)应用服务器
本系统使用的Tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选[1]。
(4)B/S架构
本系统使用B/S架构,可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易[2]。B/S架构图如图2-2所示。
图2-1 B/S架构图
2.3 运行可行性
该系统在任何有网络的终端上都能够进行运行的,这样的一些系统目前已经普及,用户在该系统中可以方便的进行各种操作,实现预期的目的,使用该系统时用户通过鼠标单击的方式进行操作,该方式能被广大用户所接受,以及页面设计十分人性化,具有很高的可操作性和易用性,所以该系统的设计具有运行可行性。
2.4社会可行性
随着我国经济与科技的发展,文档也是越来越多,如何方便快速的管理文档成了办公人士需要解决的问题。所以,对于办公场所而言,该系统是十分适用的,同时也是会受到非常大的欢迎的正因为如此,本系统的社会可行性非常高。
3 系统需求分析
3.1 背景概述
网上文件上传、下载管理系统是网络资源多的一种共享机制。它采用对用户分级管理的方式,为不同级别的用户提供不同的资源服务。一般来说,网上文件管理系统包含两大类服务,一类是用户管理,一类是资源共享。其中资源共享又分为对资源的上传、下载和删除。
在网上文件管理系统中,最重要的是权限管理,因为网上管理文件系统的大部分操作都要进行权限验证,如何简洁、有效地进行权限验证,便成为本系统设计的一个重要考虑。
3.2系统概述
网上文件管理系统主要用于提供资源共享。由于每位用户希望为其他用户提供的共享服务等级不尽相同,因此要为每个用户设置不同的等级,为每个用户的目录设置不同的访问等级是非常必要的。
在本系统中,用户主要分为管理员和用户两类,用户目录的开放级别主要分为公有和私有两大类。私有目录不允许除管理员与拥有者之外的其他用户进入其中访问,而公有目录则没有这个权限。在公有目录级别下又可设置上传、下载、删除级别,只有在相应级别下,方可在目录下对文件进行上传、下载及删除操作。
网上文件管理系统需要进行严格地用户认证才可使用。管理员拥有最高权限,在用户管理方面,可以增加、删除用户,并对用户信息进行修改。在文件管理方面,可以删除任何目录中的文件,除此之外,管理员在公有目录中,可以根据目录的共享级别上传或者下载文件,在私有目录中,则只能浏览用户的文件列表。
普通用户可以全权管理自己目录的文件,即进行上传、下载及删除的操作。可以浏览公有目录,根据公有目录的共享级别上传、下载或者删除文件。当普通用户目录设置为公有时,可以对其他用户进行上传、下载、删除操作的限制。普通用户不能进入不属于自己的私有目录。
3.3 技术背景
基于web的办公电子文档管理系统,主要使用java语言混合使用HTML以及JSP并采用了struts+spring+hibernate框架进行开发。
3.3.1 JSP内容介绍
JSP提供了九个内置对象[3],但是在本系统中主要使用到了4个,分别是Request、Response、Session、Application其各自功能简述如下:
①Request对象:负责从客户机接受信息;
使用Request可以从客户端得到数据,访问任何基于HTTP请求传递的信息,包括从HTML表格用POST方法或GET方法传递的参数、Cookie和用户认证。
作用域为request(用户请求期)。
②Response对象:扶着响应用户请求;
Response对象用于动态响应客户端请求,并将响应信息放回到客户端浏览器中。此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。
作用域为page(页面执行期)。
③Session对象:负责保存单个用于与应用程序交互的各种信息;
Session对象,可以使不同的用户存储自己的信息,当用户在应用程序的web页面之间跳转时,存储在Session对象中的变量将不会丢失。
作用域为session(会话期)。
④Application对象:负责保存所有程序用户的共用信息;
Application对象有个两个集合:Contents和StaticObjects集合,其中Contents集合表示没有使用<object>元素定义的存储于Application对象中的所有变量(以及它们的值)的一个集合;而StaticObjects集合表示使用<object>元素定义的存储与Application对象中的所有变量(以及它们的值)的一个集合。
作用域为Application(整个程序运行期)。
3.3.2 异步刷新网页方式
系统页面的异步刷新使用AJAX完成。通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。也就是说可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。核心对象XMLHTTPRequest,通过这个可在不重载页面的情况与Web服务器交换数据。通过AJAX,因特网应用程序可以变得更完善,更友好[4]。
3.3.3 网页动态效果
前台网页的动态效果使用了jQuery,他是一个兼容多浏览器的javascript框架,jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用AJAX以及其他功能。除此之外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发功能强大的静态或者动态网页[5]。
3.3.4网页框架介绍
(1)Struts框架
Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化基于MVC的web应用程序的开发。
Struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。Struts提供的类使得开发工作更加简单,这些类包括:控制程序流程的类;实现和执行程序事务逻辑的类;自定义的标记库使得创建和验证HTML表单更加容易。
Struts框架中,模型分为两个部分,系统的内部状态与可以改变状态的操作。内部状态通常由一组ActionForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据。
(2)Hibernate介绍
Hibernate是一个开放源代码的对象关系映射框架,他对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象变成思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J233框架中取代CMP,完成数据持久化的重任。
(3)Spring介绍
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
3.4 使用软件及环境介绍
3.4.1MyEclipse 介绍
MyEclipse企业级工作平台(MyEclipseEnterprise Workbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
MyEclipse是一个十分优秀的用于开发Jaava,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
3.4.2 MySQL
MySQL是最流行的关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL使用的SQL语言是用于访问数据库的最常用标准化语言。SQL通常使用于数据库的通讯,ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、Microsoft SQL Server、Access等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自己的专有扩展功能用于它们的系统[8]。但是,标准的SQL命令,比如“Select”、“Insert”、“Update”、“Delete”、“Create”和“Drop”常常被用于完成绝大多数数据库的操作。
SQL语言有着非常突出的优点,主要是:
(1)一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。
(2)使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。
(3)非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。
(4)语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语[9]。
3.4.3 Java
Java是由sun公司与1995年5月退出的Java程序设计语言和Java平台(即JavaEE,JavaME,JavaSE)的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制平台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群,在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java编程语言的风格十分接近C语言、C++语言。Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,舍弃了C语言中容易引起错误的指针、运算符重载、多重继承等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧[10]。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译,到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了Java程序的性能[11]。
3.5数据流图
数据流图,即DFD图(Data Flow Diagram),是用于分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。网上文件管理系统的第一层数据流图如图3-2所示,描述系统由哪几部分组成,各部分之间有什么联系。数据流图如图3-2所示。
图3-2 文档管理系统的第一次层数据流图
3.6用例图
登陆
文档管理系统的用例图,用户用例图如图3-3所示。
Use
Use
上传文件
Use
下载文件
Use
Use
删除文件
用户
浏览文件
图3-3 用户用例图
管理员用例图如图3-4所示。
管理用户
Use
Use
管理员登录
Use
管理文件
管理员
图3-4 管理员用例图
3.7系统子功能描述
(1)登录管理
参与者:用户和管理员
综述:登录网上文件管理系统。
描述:当注册用户进入登录界面,这是管理员和用户进入系统的唯一入口。如果用户没有通过身份验证,则将请求转发到消息页面,页面提示消息:登录失败,用户名和密码不匹配。当用户通过身份验证后,则转发到用户列表页面,上方指明当前登录的用户。
(2)文档管理
参与者:用户和管理员
综述:登录系统后对网上文档进行管理。
描述:当用户和管理员登录成功后,可以对自己上传的文当进行编辑和删除操作;而且还可以上传新的文档。用户和管理员还可以设置文档的下载权限。
(3)用户管理
参与者:管理员
综述:对用户进行管理
描述:管理员登录系统后,可以对已有的某个用户进行编辑。管理员可以对用户可用的磁盘大小、目录开放限制和用户等级等进行重新设置;管理员还可以添加一个新的用户,对新用户同样进行上述操作。
(4)上传管理
参与者: 管理员和用户
综述:用户和管理员登录系统后,可以上传自己的文件到已有的磁盘空间中。
4 总体设计
4.1 系统流程图
4.1.1用户登录
用户登录首先需要用户输入各自的ID以及对应的密码,并在数据库中进行验证,得到验证结果,验证结果为卡密对应则进入下一个阶段的操作,否则显示登录失败重新输入各自的ID以及对应的卡密。用户登录流程图如图4-2所示。
结束
开始
输入帐号密码
打开操作界面
连接数据库
否
卡密码对应否
是
图4-2 登录流程图
4.1.2 分级控制
系统由管理员设置用户拥有哪些权限,拥有不同权限的用户所能访问的内容也不相同,运行流程如图4-3。
登录
日志记录
输入帐号密码
判断是否管理员员
是 否
上传文件
文档管理
日志管理
用户管理
菜单管理
结束
图4-3 分级控制流程图
4.2 数据库设计
(1)用户信息表
用户信息表主要提供用户的用户名、密码验证等一些列的用户信息内容。其所属角色ID(RoleID)引用角色表的RoleID用来判断此用户角色。用户信息表如表4-1所示。
表4-1 用户信息表user
字段名
数据类型
字段说明
键引用
备注
username
varchar2
用户名
主键
password
varchar2
密码
real_name
varchar2
真实姓名
organization_id
varchar2
机构id
外键
对应机构表
sex
int
性别
email
varchar2
电子邮件
phone_num
varchar2
联系方式
create_date_time
date
创建时间
last_login_time
date
上次登录时间
is_use
int
是否可用
(2)角色表
角色表主要用于设置不同角色ID对应的角色名称,此表用来判断用户所属角色,给其分配相应的权限。角色信息表如表4-2所示。
表4-2 角色信息表user_role
字段名
数据类型
字段说明
键引用
备注
username
varchar2
用户名
主键
role_id
varchar2
角色id
外键
对应角色表
(3)角色功能表
角色功能表主要用于设置不同角色ID可以使用的一些列功能。角色功能表如表4-3所示。
表4-3 角色功能表role
字段名
数据类型
字段说明
键引用
备注
role_id
varchar2
角色id
主键
role_name
varchar2
角色名字
role_desc
varchar2
角色功能
organization_id
varchar2
机构名
外键
对应机构表
creat_date_time
date
创建时间
(4)机构表
机构表主要是机构的相关信息,上下级机构。机构表如表4-4所示。
表4-4 机构表organization
字段名
数据类型
字段说明
键引用
备注
organization_id
varchar2
机构id
主键
organization_name
varchar2
机构名字
organization_code
varchar2
机构编号
parent_id
varchar2
父亲id
(5)菜单表
菜单表主要用于管理菜单的功能。菜单表如表4-5所示。
表4-5 菜单表menu
字段名
数据类型
字段说明
键引用
备注
menu_id
varchar2
表id
主键
menu_name
varchar2
菜单名
menu_desc
varchar2
菜单功能
parent_id
varchar2
父亲id
link
varchar2
对应链接
sequence
int
序列
(6)日志表
日志表主要用查看用户的对系统的一系列操作情况。日志表如表4-6所示。
表4-6 日志表diary
字段名
数据类型
字段说明
键引用
备注
diary_id
varchar2
日志id
主键
content
varchar2
内容
username
varchar2
用户名
table_name
varchar2
操作的数据库
对应机构表
ip
varchar2
登录ip
organization_id
varchar2
机构id
外键
机构表id
organization_name
varchar2
机构名
create_date_time
date
创建时间
(7)部门表
部门表主要用于设置部门的上下级关系,部门名称等相关信息。部门表如表4-7所示。
表4-7 部门表department
字段名
数据类型
字段说明
键引用
备注
department_id
varchar2
部门id
主键
department_name
varchar2
部门名
department_code
varchar2
部门信息
parent_id
varchar2
父亲id
organization_id
varchar2
机构id
外键
机构表主键
(8)类别表
类别表主要用于设置类别相关信息。类别表如表4-8所示。
表4-8 类别表type
字段名
数据类型
字段说明
键引用
备注
type_id
varchar2
类别id
主键
res_type_name
varchar2
类别名
type_code
varchar2
类别信息
parent_id
varchar2
父亲id
sequence
int
序列
(9)文档表
文档表主要用于设置文档的详细信息。文档表如表4-9所示。
表4-9 文档表document
字段名
数据类型
字段说明
键引用
备注
doc_id
varchar2
文档id
主键
doc_title
varchar2
文档标题
doc_desc
varchar2
文档备注
type_id
varchar2
类别id
外键
类别表id
username
varchar2
用户名
last_view_user
varchar2
上次查看人
file_path
varchar2
存储路径
create_date_time
date
创建时间
modify_date_time
date
最后修改日期
4.3 数据库连接设计
连接数据库采用JDBC,JDBC应用步骤如下:
(1)注册加载一个driver驱动,相关代码如下:
Class.forName("oracle.mysql.jdbc.Driver");
(2)创建数据库连接,相关代码如下:
private String
url="jdbc:mysql://localhost:3306/testDB?user=root&password=root&useUnicode=true&characterEncoding=gb2312";
Connection con = DriverManager.getConnection(url);
(3)创建一个Statement,相关代码如下:
Statement stmt = conn.createStatement();
(4)执行SQL语句,相关代码如下:
String sql="select * form user_role";
ResultSet rs = stmt.executeQuery(sql);
(5)访问结果记录集ResultSet对象,相关代码如下:
while(rs.next){
out.print(rs.getString());
}
(6)依次关闭ResultSet、Statement、Connection对象,相关代码如下:
rs.close();
stmt.close();
con.close();
4.4 SSH框架设计
本次系统使用struts+spring+hibernate的一个集成框架,分为四层:表示层、业务逻辑层、数据持久层和域模块层[6]。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IOC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑并提供事物处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
这种开发模式,不仅实现了视图、控制器与模型的测底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不通过层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率[7]。SSH框架图如图4-4所示。
数据库
持久层Hibernate
控制器Struts
Request
ActionServlet
Hibernate
ActionForm
HibernateDAO
Spring IOC
Action
Response
JSP
Spring AOP
图4-4 SSH框架图
5 详细设计
5.1登录界面设计
登录界面采用常用的用户名+密码模式进行登录,在用户输入相应的登录ID,密码以及验证码之后,系统对数据库中ID与PWD字段进行验证,进而与验证码验证。如果发现全部对应,则登录成功,进入其他页面以进行下一步操作,否则显示登录失败。登录界面如图5-1所示。
图5-1 登录界面
5.2 菜单管理界面设计
管理员登录后可以使用菜单管理功能,用于添加菜单,这些都是管理员能分配给其他用户的权限。如图5-2所示。
图5-2 菜单管理界面图
进入菜单管理后,可以新建菜单,需设置上级菜单等,新建菜单如图5-3所示。
图5-3 新建菜单
5.3 部门以及机构管理界面设计
不同部门属于不同机构,删除机构后其隶属的子部门也全部删除。部门管理界面如图5-4所示。
图5-4 部门管理界面
5.4 用户管理界面设计
用户隶属不同组,组对应其部门,部门对应机构,层层对应,删除响应结点其对应子结点也删除。用户管理界面如图5-5所示。
图5-5 用户管理界面
5.5角色管理界面设计
不同角色对应不同功能,管理员可以按需求设置拥有不同功能的角色,然后分配给用户实现分级别管理。如图5-6所示。
图5-6 新建角色界面
5.6 日志管理界面设计
用户登录后对系统的一系列操作都会显示在这里,用于监听用户的操作。如图5-7所示。
图5-7 日志管理界面
5.7 文档类型管理界面设计
文档按类型划分,可以设置不同类型,根据需求设置一级二级甚至三级类型。类型管理如图5-8所示。
图5-8 类型管理界面
5.8 文档管理界面设计
用户可以上传下载文档,上传文档放于apache目录下的工程文件子目录中。文档管理如图5-9所示。
图5-9 文档管理界面
5.9 Struts2设计
Struts2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用[12]。
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;
(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;
(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
Struts配置相关代码如下,web.xml中:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.aspx</url-pattern>
<url-pattern>*.do</url-pattern>
</filter-mapping>
struts2.xml中:
<st
展开阅读全文