《基于Web的办公电子文档管理系统设计毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于Web的办公电子文档管理系统设计毕业设计论文.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、装订线 目 录1 引言12可行性分析12.1 经济可行性22.2 技术可行性22.3 运行可行性42.4 社会可行性43 系统需求分析53.1背景概述53.2系统概述53.3技术背景53.3.1 JSP内容介绍63.3.2 异步刷新网页方式63.3.3 网页动态效果73.3.4 网页框架73.4 使用软件及环境介绍83.4.1 MyEclips介绍83.4.2 MySql83.4.3 Java93.5数据流图93.6用例图103.7系统子功能描述104 系统总体设计124.1 系统功能设计124.1.1用户登录124.1.2分级控制124.2 数据库设计134.3 数据库连接设计164.4 S
2、SH框架设计175 系统详细设计与实现195.1登录界面设计195.2菜单管理界面设计195.3部门以及机构管理界面设计205.4用户管理界面设计205.5角色管理界面设计215.6日志管理界面设计215.7文档类型管理界面设计225.8文档管理界面设计225.9 Struts设计235.10 Hibernate设计255.11 Spring设计266 系统测试与性能分析296.1登录模块的测试296.2服务器模块操作模块297结论31致谢32参考文献33共2页 第 2 页 1 引言随着我国网络的快速普及,信息量的逐步增加,传统的文档管理已经很难适用于当今的高速发展时代。2013年一个新的名词
3、“大数据”广泛流行在网络中,“安全”以及“大数据”成了现今各行各业必须重视的问题。传统的纸质办公文档容易出现,遗失、缺损以及不方便查找等问题,给管理人员带来了很大的困扰。因此,能适应网络高速发展时代的基于web的办公电子文档管理系统的研究与更新也是势在必行。目前,随着国家普及网络进程的加快,越来越多的人愿意在网上记日记,写笔记,保存重要文件,这对于基于web办公电子文档管理系统的研究有了很大的促进作用。另一方面,现有的办公电子文档功能并不完善,很难满足新时代人们的要求,不同的人群对此的需求也是不尽相同,如何满足大多数人的需求,为他们提供最好的服务才是最重要。综上所述,在信息化的大趋势下,对于新
4、型、高效、安全、人性化的web办公电子文档管理系统的需求十分迫切。研究这样的一款方便的文档管理系统,既能在工作之余快速网上传输文件,从而提高效率;又能增强安全性保证文档不会遗失。基于Web的办公电子文档管理系统便是因此开发。2可行性分析2.1 经济可行性(1)开发成本该系统开发的硬件平台为联想公司IdealPad系列Y480,软件为windows7计算机操作系统+MyEclipse编译环境+MySql数据库配置,所有采用的软硬件无需专门购置,所以开发的经济可行性较好。(2)运行成本本系统的运行平台为小型服务器,同时,网络环境可采用现有的因特网,也可以自主架设专用网络,费用成本都可以接受。该产品
5、操作界面友好,操作简单,运行人员无需专业培训,也可以起到控制成本的作用。(3)经济效益目前国内的办公电子文档管理系统并不常见,而且大多都无法适应年轻人的需求。此系统完美解决了传统文档管理带来的管理困难,需求人员多的问题,减少了在雇佣员工进行打扫,文档库的租用等费用。只需要有限的成本即可以达到更快捷,更方便的文档管理,所以开发的经济效益前景很好。综上所述,通过对办公电子文档管理系统的研究,能够在低廉的成本上获得较大经济效益,所以该产品具有经济可行性。2.2 技术可行性基于web的办公电子文档管理系统采用B/S模式设计,方便使用,不用安装,用户只需输入相应的域名即可使用。技术上需要解决的有几点:(
6、1)服务器端数据的存储目前数据管理经历了人工管理、文件系统和数据库系统3个阶段。数据库管理系统能够解决多用户多应用共享数据的需求,是数据能够广泛高效地得到应用,在二十世纪六十年代中期开始了高速的发展。在这一过程中,对于数据库系统的研究也得到了长足的进步与深入,由此产生了许多高效快捷的管理方法。数据的数据模型也有三个,分别是层次模型、网状模型、关系模型。关系模型。其中关系模型因为其概念单一,结构严谨,易于掌握等各方面的有点成为了目前最重要的一种模型。20世纪80年代到目前以来的绝大多数数据库管理系统都支持关系模型。在本系统中,采用基于关系型的MySQL数据库来储存并管理服务器端的各种数据,例如管
7、理员的信息、各路口的信息和控制参数等等。MySQL数据库运用广泛,容易上手,大多数开发人员都能够熟练掌握。(2)服务器端数据的操作在java语言中提供了对数据库操作的API,通过JDBC可以快捷高效地实现对各类数据的访问。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商以及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC实现了所有这些面向标准的目标且具有简单、严格类型定义且高性能实现的借口。JDBC连接图如图2-1所示。图2-1 JDBC连接图(3)应用服务器本系统使用的Tomcat是一个免费的开放源代码的We
8、b应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选1。(4)B/S架构本系统使用B/S架构,可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易2。B/S架构图如图2-2所示。图2-1 B/S架构图2.3 运行可行性该系统在任何有网络的终端上都能够进行运行的,这样的一些系统目前已经普及,用户在该系统中可以方便的进行各种操作,实现预期的目的,使用该系统时用户通过鼠标单击的方式进行操作,该方式能被广大用户所接受,以及页面设计十分人性化,具有很高的可操作性和易用性,
9、所以该系统的设计具有运行可行性。2.4社会可行性随着我国经济与科技的发展,文档也是越来越多,如何方便快速的管理文档成了办公人士需要解决的问题。所以,对于办公场所而言,该系统是十分适用的,同时也是会受到非常大的欢迎的正因为如此,本系统的社会可行性非常高。3 系统需求分析3.1 背景概述网上文件上传、下载管理系统是网络资源多的一种共享机制。它采用对用户分级管理的方式,为不同级别的用户提供不同的资源服务。一般来说,网上文件管理系统包含两大类服务,一类是用户管理,一类是资源共享。其中资源共享又分为对资源的上传、下载和删除。在网上文件管理系统中,最重要的是权限管理,因为网上管理文件系统的大部分操作都要进
10、行权限验证,如何简洁、有效地进行权限验证,便成为本系统设计的一个重要考虑。3.2系统概述网上文件管理系统主要用于提供资源共享。由于每位用户希望为其他用户提供的共享服务等级不尽相同,因此要为每个用户设置不同的等级,为每个用户的目录设置不同的访问等级是非常必要的。在本系统中,用户主要分为管理员和用户两类,用户目录的开放级别主要分为公有和私有两大类。私有目录不允许除管理员与拥有者之外的其他用户进入其中访问,而公有目录则没有这个权限。在公有目录级别下又可设置上传、下载、删除级别,只有在相应级别下,方可在目录下对文件进行上传、下载及删除操作。网上文件管理系统需要进行严格地用户认证才可使用。管理员拥有最高
11、权限,在用户管理方面,可以增加、删除用户,并对用户信息进行修改。在文件管理方面,可以删除任何目录中的文件,除此之外,管理员在公有目录中,可以根据目录的共享级别上传或者下载文件,在私有目录中,则只能浏览用户的文件列表。普通用户可以全权管理自己目录的文件,即进行上传、下载及删除的操作。可以浏览公有目录,根据公有目录的共享级别上传、下载或者删除文件。当普通用户目录设置为公有时,可以对其他用户进行上传、下载、删除操作的限制。普通用户不能进入不属于自己的私有目录。3.3 技术背景基于web的办公电子文档管理系统,主要使用java语言混合使用HTML以及JSP并采用了struts+spring+hiber
12、nate框架进行开发。3.3.1 JSP内容介绍JSP提供了九个内置对象3,但是在本系统中主要使用到了4个,分别是Request、Response、Session、Application其各自功能简述如下:Request对象:负责从客户机接受信息;使用Request可以从客户端得到数据,访问任何基于HTTP请求传递的信息,包括从HTML表格用POST方法或GET方法传递的参数、Cookie和用户认证。作用域为request(用户请求期)。Response对象:扶着响应用户请求;Response对象用于动态响应客户端请求,并将响应信息放回到客户端浏览器中。此对象封装了返回到HTTP客户端的输出,
13、向页面作者提供设置响应头标和状态码的方式。经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。作用域为page(页面执行期)。Session对象:负责保存单个用于与应用程序交互的各种信息;Session对象,可以使不同的用户存储自己的信息,当用户在应用程序的web页面之间跳转时,存储在Session对象中的变量将不会丢失。 作用域为session(会话期)。Application对象:负责保存所有程序用户的共用信息;Application对象有个两个集合:Contents和StaticObjects集合,其中Contents集合表示没有使用元素
14、定义的存储于Application对象中的所有变量(以及它们的值)的一个集合;而StaticObjects集合表示使用元素定义的存储与Application对象中的所有变量(以及它们的值)的一个集合。作用域为Application(整个程序运行期)。3.3.2 异步刷新网页方式系统页面的异步刷新使用AJAX完成。通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。也就是说可以在不重新加载整个网页的情况下,对网页的某部分进行更新。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。核心对象XMLHTTPRequest,通过这个可在不重载页面
15、的情况与Web服务器交换数据。通过AJAX,因特网应用程序可以变得更完善,更友好4。3.3.3 网页动态效果前台网页的动态效果使用了jQuery,他是一个兼容多浏览器的javascript框架,jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用AJAX以及其他功能。除此之外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发功能强大的静态或者动态网页5。3.3.4网页框架介绍(1)Struts框架Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化基于MVC的web应用程序的开发。Struts可
16、以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。Struts提供的类使得开发工作更加简单,这些类包括:控制程序流程的类;实现和执行程序事务逻辑的类;自定义的标记库使得创建和验证HTML表单更加容易。Struts框架中,模型分为两个部分,系统的内部状态与可以改变状态的操作。内部状态通常由一组ActionForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据。(2)Hibernate介绍Hibernate是一个开放源代码的对象关系映射框架,他对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所
17、欲的使用对象变成思维来操纵数据库。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使用
18、基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。3.4 使用软件及环境介绍3.4.1MyEclipse 介绍MyEclipse企业级工作平台(MyEclipseEnterprise Workbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Jav
19、aEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持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开发工具
20、。3.4.2 MySQLMySQL是最流行的关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL使用的SQL语言是用于访问数据库的最常用标准化语言。SQL通常使用于数据库的通讯,ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、Microsoft SQL Server、Access等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它
21、们自己的专有扩展功能用于它们的系统8。但是,标准的SQL命令,比如“Select”、“Insert”、“Update”、“Delete”、“Create”和“Drop”常常被用于完成绝大多数数据库的操作。SQL语言有着非常突出的优点,主要是:(1)一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。(2)使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C+、FORTRAN、COBOL、JAVA等主语言中使用。(3)非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不
22、需要告诉它“怎么做”。(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是一
23、个纯粹的面向对象的程序设计语言,它继承了C+语言面向对象技术的核心,舍弃了C语言中容易引起错误的指针、运算符重载、多重继承等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧10。Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译,到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了Java程序的性能11。3.5数据流图数据流图,即DFD图(Data Flow Diagram),是用于分
24、析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。网上文件管理系统的第一层数据流图如图3-2所示,描述系统由哪几部分组成,各部分之间有什么联系。数据流图如图3-2所示。图3-2 文档管理系统的第一次层数据流图3.6用例图登陆文档管理系统的用例图,用户用例图如图3-3所示。UseUse上传文件Use下载文件UseUse删除文件用户浏览文件图3-3 用户用例图管理员用例图如图3-4所示。管理用户UseUse管理员登录Use管理文件 管理员图3-4 管理员用例图3.7系统子功能描述(1)登录管理参与者:用户和管理员综述:登录网上文件管理系统。描述:当注册用户进入登录界面,这是管
25、理员和用户进入系统的唯一入口。如果用户没有通过身份验证,则将请求转发到消息页面,页面提示消息:登录失败,用户名和密码不匹配。当用户通过身份验证后,则转发到用户列表页面,上方指明当前登录的用户。(2)文档管理参与者:用户和管理员综述:登录系统后对网上文档进行管理。描述:当用户和管理员登录成功后,可以对自己上传的文当进行编辑和删除操作;而且还可以上传新的文档。用户和管理员还可以设置文档的下载权限。(3)用户管理参与者:管理员综述:对用户进行管理描述:管理员登录系统后,可以对已有的某个用户进行编辑。管理员可以对用户可用的磁盘大小、目录开放限制和用户等级等进行重新设置;管理员还可以添加一个新的用户,对
26、新用户同样进行上述操作。(4)上传管理参与者: 管理员和用户综述:用户和管理员登录系统后,可以上传自己的文件到已有的磁盘空间中。4 总体设计4.1 系统流程图4.1.1用户登录用户登录首先需要用户输入各自的ID以及对应的密码,并在数据库中进行验证,得到验证结果,验证结果为卡密对应则进入下一个阶段的操作,否则显示登录失败重新输入各自的ID以及对应的卡密。用户登录流程图如图4-2所示。结束开始输入帐号密码打开操作界面连接数据库 否卡密码对应否是图4-2 登录流程图4.1.2 分级控制系统由管理员设置用户拥有哪些权限,拥有不同权限的用户所能访问的内容也不相同,运行流程如图4-3。登录日志记录输入帐号
27、密码判断是否管理员员 是 否上传文件文档管理日志管理用户管理菜单管理结束图4-3 分级控制流程图4.2 数据库设计 (1)用户信息表用户信息表主要提供用户的用户名、密码验证等一些列的用户信息内容。其所属角色ID(RoleID)引用角色表的RoleID用来判断此用户角色。用户信息表如表4-1所示。表4-1 用户信息表user字段名数据类型字段说明键引用备注usernamevarchar2用户名主键passwordvarchar2密码real_namevarchar2真实姓名organization_idvarchar2机构id外键对应机构表sexint性别emailvarchar2电子邮件pho
28、ne_numvarchar2联系方式create_date_timedate创建时间last_login_timedate上次登录时间is_useint是否可用(2)角色表角色表主要用于设置不同角色ID对应的角色名称,此表用来判断用户所属角色,给其分配相应的权限。角色信息表如表4-2所示。表4-2 角色信息表user_role字段名数据类型字段说明键引用备注usernamevarchar2用户名主键role_idvarchar2角色id外键对应角色表(3)角色功能表角色功能表主要用于设置不同角色ID可以使用的一些列功能。角色功能表如表4-3所示。表4-3 角色功能表role字段名数据类型字段说
29、明键引用备注role_idvarchar2角色id主键role_namevarchar2角色名字role_descvarchar2角色功能organization_idvarchar2机构名外键对应机构表creat_date_timedate创建时间(4)机构表机构表主要是机构的相关信息,上下级机构。机构表如表4-4所示。表4-4 机构表organization字段名数据类型字段说明键引用备注organization_idvarchar2机构id主键organization_namevarchar2机构名字organization_codevarchar2机构编号parent_idvarcha
30、r2父亲id(5)菜单表菜单表主要用于管理菜单的功能。菜单表如表4-5所示。表4-5 菜单表menu字段名数据类型字段说明键引用备注menu_idvarchar2表id主键menu_namevarchar2菜单名menu_descvarchar2菜单功能parent_idvarchar2父亲idlinkvarchar2对应链接sequenceint序列(6)日志表日志表主要用查看用户的对系统的一系列操作情况。日志表如表4-6所示。表4-6 日志表diary字段名数据类型字段说明键引用备注diary_idvarchar2日志id主键contentvarchar2内容usernamevarchar
31、2用户名table_namevarchar2操作的数据库对应机构表ipvarchar2登录iporganization_idvarchar2机构id外键机构表idorganization_namevarchar2机构名create_date_timedate创建时间(7)部门表部门表主要用于设置部门的上下级关系,部门名称等相关信息。部门表如表4-7所示。表4-7 部门表department字段名数据类型字段说明键引用备注department_idvarchar2部门id主键department_namevarchar2部门名department_codevarchar2部门信息parent_i
32、dvarchar2父亲idorganization_idvarchar2机构id外键机构表主键(8)类别表类别表主要用于设置类别相关信息。类别表如表4-8所示。表4-8 类别表type字段名数据类型字段说明键引用备注type_idvarchar2类别id主键res_type_namevarchar2类别名type_codevarchar2类别信息parent_idvarchar2父亲idsequenceint序列(9)文档表文档表主要用于设置文档的详细信息。文档表如表4-9所示。表4-9 文档表document字段名数据类型字段说明键引用备注doc_idvarchar2文档id主键doc_ti
33、tlevarchar2文档标题doc_descvarchar2文档备注type_idvarchar2类别id外键类别表idusernamevarchar2用户名last_view_uservarchar2上次查看人file_pathvarchar2存储路径create_date_timedate创建时间modify_date_timedate最后修改日期4.3 数据库连接设计 连接数据库采用JDBC,JDBC应用步骤如下:(1)注册加载一个driver驱动,相关代码如下:Class.forName(oracle.mysql.jdbc.Driver);(2)创建数据库连接,相关代码如下:priv
34、ate 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
35、.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框架的模型部分,控制业务跳转,利
36、用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IOC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑并提供事物处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和
37、数据库交互,处理DAO组件请求的数据,并返回处理结果。这种开发模式,不仅实现了视图、控制器与模型的测底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不通过层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率7。SSH框架图如图4-4所示。数据库持久层Hibernate控制器StrutsRequestActionServletHibernateActionFormHibernateDAOSpring IOCActionResponseJSPSpring AOP图4-4 SSH框
38、架图5 详细设计5.1登录界面设计登录界面采用常用的用户名+密码模式进行登录,在用户输入相应的登录ID,密码以及验证码之后,系统对数据库中ID与PWD字段进行验证,进而与验证码验证。如果发现全部对应,则登录成功,进入其他页面以进行下一步操作,否则显示登录失败。登录界面如图5-1所示。图5-1 登录界面5.2 菜单管理界面设计管理员登录后可以使用菜单管理功能,用于添加菜单,这些都是管理员能分配给其他用户的权限。如图5-2所示。图5-2 菜单管理界面图进入菜单管理后,可以新建菜单,需设置上级菜单等,新建菜单如图5-3所示。图5-3 新建菜单5.3 部门以及机构管理界面设计不同部门属于不同机构,删除
39、机构后其隶属的子部门也全部删除。部门管理界面如图5-4所示。图5-4 部门管理界面5.4 用户管理界面设计用户隶属不同组,组对应其部门,部门对应机构,层层对应,删除响应结点其对应子结点也删除。用户管理界面如图5-5所示。图5-5 用户管理界面5.5角色管理界面设计不同角色对应不同功能,管理员可以按需求设置拥有不同功能的角色,然后分配给用户实现分级别管理。如图5-6所示。图5-6 新建角色界面5.6 日志管理界面设计用户登录后对系统的一系列操作都会显示在这里,用于监听用户的操作。如图5-7所示。图5-7 日志管理界面5.7 文档类型管理界面设计文档按类型划分,可以设置不同类型,根据需求设置一级二
40、级甚至三级类型。类型管理如图5-8所示。图5-8 类型管理界面5.8 文档管理界面设计用户可以上传下载文档,上传文档放于apache目录下的工程文件子目录中。文档管理如图5-9所示。图5-9 文档管理界面5.9 Struts2设计Struts2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时还需要编写相关的配置文
41、件,供核心控制器FilterDispatcher来使用12。Struts的工作流程:在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一个客户请求时,将执行如下流程.(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;(3)根据配置信息决定是否需要表单验证.如果需要验证,就调
42、用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中:struts2org.apache.struts2.dispatcher.FilterDispatcherstruts2*.jsp*.aspx*.dostruts2.xml中:constant name=struts.devMode value=false