资源描述
word本科毕业论文(设计)题目 小型企业OA系统的设计与开发 学生专业名称 信息系统与信息管理 指导教师55 / 61小型企业OA系统的设计与开发摘 要随着互联网的高速发展,办公室自动化管理正向着网络化,系统化方向发展。办公室自动化系统正是为广大员工提供方便快捷的工作管理。本系统是一款简单易用,功能多样的管理软件。本系统尝试用JSP在网络上架构一个动态的办公室自动化管理,它是在Windows XP下,以SQL Server 2008为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(Java Server Pages)技术开发的办公室自动化系统,以struts框架搭建而成。本系统包括普通用户模块和系统管理员模块。普通用户模块包括个人基本信息管理,文档管理,公告查看,收发文管理,查看会议记录,发送建议等员工日常事务管理。系统管理员模块除了包括上述基本管理外,还包括系统管理,即人力资源管理,添加删除会议记录,发布公告,更新公告等等。关键词办公室自动化系统;JSP;SQL Sever 2008THEdesign and development OF Office Automation SystemAbstractAlong with the rapid development of the Internet, office automation is developing towards the direction of networking and systematic.Office automation System can provide the convenient and prompt work management for the majority of the stuff.This system is a kind of easy-using and feature-riched management software.The system attempts to use JSP to set up a dynamic office automation management website in the network. It is a office automation system under Windows XP, which using SQL Server 2008 as the database development platform, Tomcat network information service as the application server, JSP as the developing technology and struts as the framework.This system includes ordinary users module and system administrators module.Ordinary users module includes the routine managements of staff as basic personal information management, document management, bulletin viewing, text sending and receiving management, meeting notes viewing, suggestions sending and so on.System Administrator includes not only the basic managements above mentioned but also includes the system management as human resources management, adding and deleting of meeting notes, publishing and updating of bulletin and so on.Key wordsOffice Automation System; JSP; SQL Server 2008目 录1 绪论11.1 系统开发的背景和意义11.2 国外发展状况11.3 研究容22 程序设计技术相关知识32.1 JSP 简介32.2 JSP技术32.3 SQL server及其优点3开发工具42.5 TOMCAT42.6 Struts架构5简介5本章小结53 OA系统需求分析6可行性分析63.1.1 系统总体目标63.1.2 技术可行性分析63.1.3 功能需求63.1.4 性能需求6系统总体结构7系统功能模块结构73.3.1 用户登录模块8文档管理模块83.3.3 人力资源管理模块93.3.4 收/发文管理模块103.3.5 会议管理模块113.3.6 公告管理模块123.3.7 意见箱模块133.3.8 重新登录模块143.4 数据库设计153.5 本章小结224 系统设计与实现23用户登录设计23访问控制技术234.1.2 struts框架在登录应用244.2 文档管理的实现254.2.1 文档的上传254.2.2 删除文档264.2.3 下载文档264.3 人力资源管理模块274.4 收/发文管理模块的实现304.5 会议管理模块的实现32公告管理模块的实现34意见箱模块的实现36重新登录模块的实现38系统测试与实践部署384.9.1 测试目标384.9.2 模块测试38系统部署的意义39本章小结395 结束语40设计中的体会40设计中的不足40参考文献41致421 绪论Internet已经成为人们生活、工作、学习越来越离不开的平台。Web技术已经不在局限于单纯地提供信息服务,而是日益成为一个操作平台,为用户提供强大的服务功能。例如网上电子商务、社会信息数据库等。网络实现了远程通讯,人们能够通过计算机网络进行电子的发送,召开网络会议,网上购物,甚至坐在家里就可以上大学(网上教育)。网络有巨大的潜力待我们去开发与探索。因此,OA系统的出现提供了企业管理的网络化。OA系统也是每个企业信息化初期就开始投入建设的基本系统。从C/S结构到B/S结构,从最初桌面办公软件的应用、收发到后来公文流转、车辆管理、会议管理、网上审批等功能应用,OA已经是我们日常使用最多、最频繁的一个基本系统。1.1 系统开发的背景和意义随着全球经济一体化进程的加快和信息技术的飞速发展,Internet技术及其应用给人们的日常生活和工作等各个方面带来了深刻的影响。网络应用技术的不断提高,企业对于相互之间的通讯能力提出了更高的要求。许多企业都具有一定信息化基础,有一定数量的信息设备和信息源,有相互连通的接口,需要实现消息的无缝传递。因此以信息化来武装企业,目前已经是大势所趋。顺应这种潮流,办公室自动化的出现满足了人们的需求。而办公室自动化也就是所谓的OA(Office Automation)。它是利用先进的技术,使人的各种办公业务活动逐步由各种设备、各种人机信息系统来协助完成,达到充分利用信息,提高工作效率和工作质量,提高生产率的目的一个系统。1.2 国外发展状况OA系统从应用容的角度上分为4个阶段:最开始的一个阶段为:文件型OA(1980年1999年)主要关注个体的工作行为,主要提供文档电子化等服务,所以我们可以将该阶段称之为“文件型OA”。 随后的第二个阶段:流程性OA(2000年2005年)该阶段从最初的关注个体、以办公文件/档案管理为核心的文件型OA, 到目前正在成为应用主流的流程性OA,它以工作流为中心,实现了公文流转、流程审批、文档管理、制度管理、会议管理、车辆管理、新闻发布等众多实用的功能。再之后的第三阶段:知识型OA(2005年2010年)随着OA系统应用的逐步深入,企业的员工每天上班做得第一件事情可能就是登录OA系统,收一下、看看公司最新的新闻、处理自己今天需要待办的工作等。OA俨然成为一个日常工作的基础平台。而目前最常见的则是智能型OA,它随着组织流程的固化和改进、知识的积累和应用、技术的创新和提升,表现为该阶段OA更关注组织的决策效率,提供决策支持、知识挖掘、商业智能等服务。1.3 研究容本系统实现了在线简单管理企业信息的目的,以员工提高工作效率,提高企业信息的发布速度,使员工及时了解工作信息,并提供交流的平台。(1)开发工具的选择 本OA系统主要是利用浏览器作为界面,利用B/S模式,即用户可利用浏览器直接访问本站点。主要用到的技术是采用JSP技术和SQL Server 2008数据库以及MyEclipse集成开发工具,设计出了各种功能,其功能在系统部有源代码直接完成。(2)设计思想:本系统拥有灵活的权限,用户权限可以定义到每个子模块的两种权限级别(系统管理员,普通用户)。例如在人力资源管理方面,两种用户分别拥有不同维护权限,即普通用户只有管理自己信息的权限,系统管理员则负责维护所有用户的信息。(3)设计研究容(要实现的系统功能简介) 本系统包括以下功能模块:用户有效身份登录、人力资源管理、会议管理等功能。人力资源管理(员工信息浏览,查看个人用户信息,添加和删除用户)公告管理(对公告进行添加,删除和浏览)文档管理(可以共享一些文档信息)收/发文管理(部用户可以相互之间发送消息)会议管理(对会议信息进行管理)意见箱(员工可以对工作中的问题提出自己的意见)2 程序设计技术相关知识2.1 JSP 简介JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。2.2 JSP技术为了快速方便地进行动态的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态的首选方案。(1) 将容的生成和显示进行分离 (2)可重用组件 (3)采用标识 (4)适应平台 (5)数据库连接JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。 由于JSP页面的置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。2.3 SQL server及其优点本系统采用的是SQL Server 2008数据库系统,SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。MyEclipse开发工具MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS,Javascript, SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类:(1)JavaEE模型(2)WEB开发工具(3)E开发工具(4)应用程序服务器的连接器(5)JavaEE项目部署服务(6)数据库服务(7)MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。2.5 TOMCATTomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与服务等开发应用系统常用的功能;而且它还在不断的 改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Struts架构 Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。JavaBean是一种基于Java的软件组件,JavaBean和Active控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP对于在Web应用中集成JavaBean组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互及数据提取等。在本章中主要介绍了软件开发时所用的开发工具和相关的技术,重点介绍了JSP相关知识以及JSP技术在系统中的实际作用。同时也详细介绍了本系统的运行环境及其开发工具。3OA系统需求分析3 系统总体目标本系统主要是为了给员工提供一个交流和工作的平台,对管理者里说可以方便的管理企业的各种信息,对于员工来说是一个工作和交流的平台,而且员工可以及时得到工作信息,以此来提高工作效率。3 技术可行性分析这个系统是基于WEB来开发的,主要运用JSP技术、JDBC技术,Struts框架等相关技术,以SQL Server 2008为后台数据库、TOMCAT为应用服务器。这些应用软件都可以在网络上免费下载得来,并且这些软件都是JAVA程序员最常用的网页开发工具,都能够快和好的掌握,并且也学了有关网页开发的课程,所以一些最常用的技术能够比较好的实现,所以对于本系统在技术上是可以达到的。3 功能需求本系统应该具有:用户登录、会议管理、公告管理、收/发文管理等功能。3 性能需求设备需求:PC机,Windows7/8操作系统, 1G RAM。TOMCAT服务器、采用SQL Server 2008数据库管理。本系统所研究的是班级管理等一系列的问题,大致分为:人力资源管理:此模块实现用户维护自己的信息功能,系统管理员还能添加用户账号和修改其信息。会议管理:普通管理员和系统管理员可以添加,修改,删除,查看会议信息。公告管理:系统管理员和普通管理员可以添加公告,所有用户都可以查看公告。文档管理:所有用户都可以上传和下载文档。收/发文管理:所有用户都可以通过用户名向其他用户发送信息。意见箱:所有用户都可以查看建议,系统管理员和普通管理员有提交建议的权限。重新登录:注销登录状态。图1 总体架构图系统分为八大模块:用户登录模块、人力资源管理模块、会议管理模块、收/发文管理模块、公告管理模块、文档管理模块、意见箱模块、重新登录模块。用户登录后可以对其拥有权限的模块进行操作。3.3.1 用户登录模块(1)业务描述:对用户来讲,正常登录后,将他们的资料从后台数据库中读取出来然后根据用户的需要进行相应的验证,验证成功进入主页,失败返回登录页面。(2)业务流程。用户登录流程图如图2所示。输入正确输入用户名密码主页显示出错原因否是开始登录结束图2 用户登录流程图(3)错误处理:在登录验证不成功会提示密码或账号不正确,并返回登录页面。(4)输出结果:无(5)角色说明:所有用户都可以用。3.3.2文档管理模块(1)业务描述:上传和下载文档。(2)业务流程:浏览所有文档,可以选择下载(系统管理员能删除),选择上传文档,显示上传界面。人力资源管理流程图如图3所示。图3 文档管理流程图(3) 错误处理:上传文档过大,显示文档错误原因。(4) 输入数据:选择用户需要上传文档。(5)输出结果:在文档浏览中显示已上传的文档名和时间。(6)角色说明:所有用户都可以使用,游客无权限删除。3 人力资源管理模块(1)业务描述:管理个人信息。系统管理员管理所有人信息。(2)业务流程:用户点击人力资源管理,对应相应权限提供相应功能,当点击个人信息,显示个人信息,并有修改和返回2个选项,点击修改即进入用户修改界面,用户输入信息后点击更新即可修改个人信息。系统管理员则可以有其他2个选项,如添加新用户和浏览所有人信息,系统管理员在浏览所有人信息中可以修个其他用户的信息。图4 人力资源管理流程图(3)错误处理:所有字段必须逐一给出相应的数据信息。(4)输入数据:输入相应数据信息。(5)输出结果:修改个人信息显示更新信息成功。增加新用户则显示插入记录成功。(6)角色说明:修改个人信息所有用户都可以使用。其余则只有系统管理员能用。3 收/发文管理模块(1) 业务描述:对用户来讲,该模块是用于通站用户联系的一种方法,通过发送短消息,用户之间可以互相交流。(2) 业务流程:选择用户发送消息。图5 收/发文流程图(3)错误处理:所有字段必须逐一给出相应的数据信息。(4)输入数据:由用户输入相应的数据信息。(5)输出结果:插入记录成功。(6)角色说明:所有用户。3会议管理模块(1) 业务描述:会议信息添加,浏览所有会议信息,修改会议容,删除会议。(2) 业务流程:点击会议管理,显示添加会议信息和浏览会议信息,点击添加会议信息,显示会议添加页面,输入会议信息后点击更新则可添加新的会议信息。图6 会议管理流程图(3)错误处理:所有字段必须逐一给出相应的数据信息。(4)输入数据:由用户输入相应的数据信息。(5)输出结果:插入记录成功。(6)角色说明:普通用户无权限添加和修改,只有查看权限。3.3.6 公告管理模块(1)业务描述:公告信息添加,浏览所有公告信息,修改公告容,删除公告。(2)业务流程:用户点击公告管理,显示添加公告和浏览公告,点击添加公告显示添加公告页面,输入数据信息后点击更新即可添加新公告,点击浏览即可看到所有发布的公告。图7 公告管理流程图(3)错误处理:所有字段必须逐一给出相应的数据信息。(4)输入数据:输入相应数据信息。(5)输出结果:修改显示更新信息成功。增加则显示插入记录成功。(6)角色说明:普通用户无权限添加和修改公告,只有查看权限。3.3.7 意见箱模块(1)业务描述:添加建议和浏览建议。(2)业务流程:用户点击意见箱,显示发送建议和浏览建议,点击发送建议显示发送建议页面,输入数据信息后点击发送即可添加建议,点击浏览即可看到所有发布的建议。图8 意见箱流程图(3)错误处理:所有字段必须逐一给出相应的数据信息。(4)输入数据:输入相应数据信息。(5)输出结果:增加则显示插入记录成功。(6)角色说明:普通只有发送,系统管理员有查看和发送权限。3.3.8 重新登录模块(1)业务描述:注销登录状态。(2)业务流程:点击重新登录,直接返回登录页面。图9 重新登录流程图(3)错误处理:无。(4)输入数据:无。(5)输出结果:返回登录页面。(6)角色说明:所有用户。3.4 数据库设计数据库是系统工作的基础,合理的数据库结构对系统整体由事半功倍的作用。根据上述的系统模型结构,经过分析和设计,得到数据库表结构及关系如下:(1) 人力资源管理表:包括的数据项有:用户名(主键),创建时间,访问次数,地址,地址,性别,职务,所在部门,是否为优秀员工,用户密码, 真实, 用户权限, 自增字段E-R图见图10。图10 人力资源管理E-R图根据E-R图所设计的数据库表见表5-1。表5-1人力资源管理表(db_user)列名数据类型字长可否为空说明User-idInt4NOT NULL自动编号User_namevarcher20NOT NULL用户名(主键)User_passwordvarcher10NOT NULL用户密码True_namevarchar50NOT NULL真实User_ablesmallint50NOT NULL用户权限User_goodvarchar2NOT NULL是否为优秀员工User_branchvarchar50NOT NULL用户所在部门User_jobvarchar50NOT NULL用户的职务User_sexVarchar2NOT NULL用户的性别User_emailVarchar50NOT NULL用户的地址User_telVarchar15NOT NULL用户的User_addressVarchar100NOT NULL用户的地址User_accessTimesint4NULL用户访问次数User_foundTimeVarchar50NULL用户的创建时间(2)文件表:包括的数据项有:自增字段(主键),文件描述信息,文件上传时间,文件上传者,文件名字,文件大小。E-R图见图11。图11 文件共享模块E-R图根据E-R图所设计的数据库表见表5-2。表5-2文件表(tb_file) 列名数据类型字长可否为空说明File_idInt4NOT NULL自增字段(主键)File_nameImage50NOT NULL文件名字File_uperVarcher50NOT NULL文件上传者File_sizeVarchar50NOT NULL文件大小File_uptimeVarchar50NOT NULL文件上传时间File_infoVarchar50NULL文件描述信息(3)下拉列表信息表:包括的数据项有:自增字段(主键),下拉列表项值,下拉列表名称,下拉列表类型,下拉列表项排列次序。数据库表见表5-3。表 5-3下拉列表信息表(tb_label)列名数据类型字长可否为空说明Label_idint4NOT NULL自增字段(主键)Label_nameVarchar50NOT NULL下拉列表名称Label_valueVarchar50NOT NULL下拉列表项值Label_typeVarchar50NOT NULL下拉列表类型Label_ordersmallint2null下拉列表项排列(4) 功能菜单表:包括的数据项有:程序菜单名称(主键),显示菜单名称, 父菜单menu_id值,菜单级别,菜单触发请求操作,菜单页面排序,菜单权限级别。数据库表见表5-4。表5-4功能菜单表(tb_menu)列名数据类型字长可否为空说明Menu_idVarchar50NOT NULL程序中名称(主键)Menu_nameVarchar50NOT NULL显示菜单名称Menu_paretidVarchar50NOT NULL父菜单menu_id值Menu_actionVarchar50NOT NULL菜单触发请求操作Menu_jibieVarchar2NOT NULL菜单级别Menu_orderint4NOT NULL菜单页面排序user_ableint4NOT NULL菜单权限级别(5) 收/发文表:包括的数据项有:自增字段(主键), 主题,标题,接受者,发送者,容,发送时间,标记,接收者是否删除标记,发送者是否删除标记。E-R图见图12。图12 收/发文管理E-R图根据E-R图所设计的数据库表见表5-5。表 5-5收/发文表(tb_text)列名数据类型字长可否为空说明Text_idInt4NOT NULL自增字段(主键)Text _subjectVarchar50NOT NULL发文主题Text _geterVarchar50NOT NULL发文接收者Text _senderVarchar50NOT NULL发文发送者Text _contentVarchar16NOT NULL发文容Text _sendtimeVarchar50NOT NULL发文发送时间Text _markVarchar2NOT NULL发文标记Del_getterVarchar1NOT NULL公文接收者是否删除标记,0表示没有删除,1表示删除Del_senderVarchar1NOT NULL公文发送者是否删除标记,0表示没有删除,1表示删除(6) 公告表:包括的数据项有:自增字段(主键),公告发布时间,公告发布人,公告主题,公告容。E-R图见图13。图13 公告管理E-R图根据E-R图所设计的数据库表见表5-6。表 5-6公告表(tb_pcard)列名数据类型字长可否为空说明Pcard_idint4NOT NULL自增字段(主键)Pcard_contentvarchar200NULL公告容Pcard_subjectvarchar50NULL公告主题Pcard_authorvarchar50NULL公告发布人Pcard_timevarchar50NULL公告发布时间(7) 会议表:包括的数据项有:自增字段(主键),会议时间,会议主持人,会议主题,会议容,会议地点,会议出席者E-R图见图14。图14 会议模块E-R图根据E-R图所设计的数据库表见表5-7。表 5-7会议表(tb_meet)列名数据类型字长可否为空说明Meet_idint4NOT NULL自增字段(主键)Meet _contenttext16NULL会议容Meet _subjectvarchar50NULL会议主题Meet_speakervarchar50NULL会议主持人Meet _listenervarchar50NULL会议出席者Meet _timevarchar50NULL会议时间Meet_addressvarchar50NULL会议地点(8) 公告表:包括的数据项有:自增字段(主键),建议容,建议主题,建议人,建议时间,建议部门。E-R图见图15.。图15 建议模块E-R图根据E-R图所设计的数据库表见表5-8。表 5-8建议表(tb_advice)列名数据类型字长可否为空说明Advice_idint4NOT NULL自增字段(主键)Advice _contentvarchar50NULL建议容Advice _subjectvarchar50NULL建议主题Advice _sendervarchar50NULL建议人Advice _timevarchar50NULL建议时间Advice_sendbranchvarchar50NULL建议部门3.5 本章小结本章详细描述了系统的体系结构,对系统进行了简单的可行性分析,确定了各子系统要完成的功能,详细介绍了系统的各个重要模块的需求,同时给出了各子功能系统流程图。并初步得到了系统模型和功能模块划分,通过本章中描述的系统体系,下章是根据本章的叙述进行详细具体的设计实现。4 系统设计与实现系统实现阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成某种程序设计语言书写的程序。本章主要实现了各个模块的具体功能。用户登录的界面设计要简洁明,首先进行的是验证,判断登录者的账号和密码是否正确。用户登录界面如图6所示。图16 用户登录页面4.1.1访问控制技术访问控制决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。适当的访问控制能阻止未经允许的用户有意或无意地获取数据。访问控制的手段包括用户识别代码、口令、登录控制、资源授权、授权核查、日志和审计。访问控制是按用户身份及其所归属的某预定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用,通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。访问控制的功能主要有以下:(1)防止非法的主体进入受保护的网络资源。(2)允许合法用户访问受保护的网络资源。(3)防止合法的用户对受保护的网络资源进行非授权的访问。最后经过多个验证后进入活跃用户列表,并显示登录成功界面(如图7所示)。图17用户登录成功4.1.2 struts框架在登录应用 登录后,数据从浏览器发送到中央ActionServlet中,即有个logonForm类(Model)从用户登录页面index.jsp(View)接受数据,通过配置文件Struts-config.xml找到并转发给logonAction类(Action)进行对数据的处理,最后将结果返回到jsp页面中。下图是总体流程图:图18 struts框架4.2 文档管理的实现设计思想:登录用户可以上传文档并管理之。可以根据自己或其他用户的需要选择是否上传文档到共享区,如果加入的话点击上传文档按钮,选择上传路径单击上传。用户可以浏览共享区中的已经上传的文档,删除文档直接点击对应文档名称旁边的删除按钮就可以了,用户也可以点击对应文档名称旁边的下载按钮来下载文档。这里管理的只有系统管理员可以对其进行删除操作,普通用户是无权限的,而且上传成功的文件是保存在服务器中。4.2.1文档的上传用户成功登录后点击文档管理,就能来到本用户的文档管理页面,如图9所示,先选择上传文档,选择要上传的文档,并对文档进行描述。图19文档上传页面点击上传可以跳转到上传成功页面,即显示上传成功。4.2.2 删除文档删除文档有2种:一种是只是从记录中删除,并不删除磁盘文件,另外一种是2者都删除。无论哪种都只有系统管理员可以才有权限操作。如果是普通员工则显示无权限。图20 文档浏览页面4.2.3 下载文档下载文档的处理类代码如下:public ActionForward executeFileDownLoad(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)HttpSession session=request.getSession();session.setAttribute(selectmenu2, file_look);ActionMessages errors=new ActionMessages();String fileid=request.getParameter(id);String filename=request.getParameter(filename);String endname=filename.substring(filename.lastIndexOf(.);String filepath=session.getServletContext().getRealPath();filepath+=fileallfile;byte b=new byte100;File file=new File(filepath,fileid+endname);if(!file.exists()errors.add(downloadR,new ActionMessage(office.file.noexists);saveErrors(request,errors);return mapping.findForward(false);response.setHeader(Content-disposition,attachment;filename=+filename);try OutputStream outstream=response.getOutputStream();FileInputStream in=new FileInputStream(file); int n=0; while(n=in.read(b)!=-1) outstream.write(b,0,n);in.close();outstream.close();catch(Exception e)e.printStackTrace();4.3 人力资源管理模块设计思想:一个系统实现实用的功能很重要,但好的系统,一定能很好的管理用户信息和方便用户使用。因此,修改,删除,添加用户资料等等是必不可少的。个人资源管理模块对于普通用户(游客和普通管理员)只能修改个人信息。系统管理员不仅能修改个人信息,还有修改用户资料,删除用户资料,添加用户资料,浏览所有人资料。修改用户资料是对数据库中已有的数据进行修改。修改资料时,不可修改用户名,因此,修改过程中主键不变。删除用户资料是可以点击删除进入删除用户界面手动删除某些用户,一旦点击删除某用户,该用户的所有资料都将删除。添加用户资料是添加系统用户可以设置用户所有信息。可以浏览所有人资料。(1)查看个人信息: a普通用户和管理员都是一样的用下面代码,此功能是显示自己的详细信息,在下面还有修改自己信息的。具体页面见下面图片中查看个人信息图片:图21 查看个人信息界面其处理类代码如下:public ActionForward executePersonMyselfLook(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) HttpSession session = request.getSession();session.setAttribute(selectmenu1, person);session.setAttribute(selectmenu2, person_myself);ArrayList personsextypelist=Searchtypelist.getpersonsextypelist();ArrayList personabletypelist=Searchtypelist.getpersonabletypelist();ArrayList personjobtypelist=Searchtypelist.getpersonjobtypelist();ArrayList personbranchtypelist=Searchtypelist.getpersonbranchtypelist();ArrayList persongoodtypelist=Searchtypelist.getpersongoodtypelist();session.setAttribute(personabletypelist, personabletypelist);session.setAttribute(personjobtypelist, personjobtypelist);session.setAttribute(personbranchtypelist, personbranchtypelist);session.setAttribute(persongoodtypelist, persongoodtypelist);session.setAttribute(personsextypelist, personsextypelist);LogonForm logonform=(LogonForm)session.getAttribute(logonuser);LogonForm myform=(LogonForm)form;myform.setUsername(logonform.getUsername();myform.setUsertruename(logonform.getUsertruename();myform.setUserable(logonform.getUserable();myform.setUsergood(logonform.getUsergood();myform.setUserbranch(logonform.getUserbranch();myform.setUserjob(logonform.getUserjob();myform.setUsersex(logonform.getUsersex();myform.setUseremail(logonform.getUseremail();myform.setUsertel(logonform.getUsertel();myform.setUseraddress(logonform.getUseraddress(); myform.setUseraccesstimes(logonform.getUseraccesstimes();myform.setUserfoundtime(logonform.getUserfoundtime();return mapping.findForward(success);b系统管理员浏览所有员工信息,也可以通过该功能进行关键字查询员工。页面见图11中查询浏览员工信息,这个功能普通用户是没权限操作,也是功能模块中不会显示的。关键字快速查询,为实现该功能设置的SearchForm类存储了查询的条件和查询值,当单击搜索栏中的“搜索”时按钮后,请求被转发到UserAction类,该类获取SearchForm类中的数据做为sql的查询条件查询出符合该条件的所有记录,然后转发到响应页面进行显示。这个查询功能包含在浏览员工信息功能中。图22 浏览员工信息界面 (2)修改用户详细信息:a管理员修改用户信息,这个功能中,系统管理员可以修改用户的密码,权限等等信息,也就是说用户的所有信息,系统管理员都是可以修改的,包括你用户改密码后,忘记了自己的密码,系统管理员可以利用此功能帮你修改新的密码:图23 修改个人信息界面(4) 添加用户,系统管理员遇到新进公司员工,可以给新员工新系统的账号,即设置初始信息和初始密码。图24 添加新员工界面4.4 收/发文管理模块的实现设计思想:用户可以向其他用户发送公文,还可以查看自己发过的公文或别人发给自己的公文。可以建立发文,查看收件箱和发件箱,点击主题即可查看公文。在收件箱和发件箱中,新接收的信息还能显示未读,当你点击信息名称进行查看后,未读自动变成已读。(1)查看公文:分为浏览公文详细信息,浏览收件箱和浏览发件箱。该模块分为3个小模块进行编程,对于每个小模块同样在struts-config.xml文件中配置,在TextAction编写各自的出来方法,并设计各自的Jsp显示页面。收件箱是通过接收人当前登录的用户名来实现的,因此发件箱就可以通过查询数据表中发文的发件人为当前登录的用户名来实现。a.发件箱中浏览接收到的公文:图25 浏览收件箱信息界面其处理类代码如下:public ActionForward executeTextLookGet(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)ArrayList gettextlist=new ArrayList();HttpSession session=request.getSession();session.setAttribute(selectmenu2,text_look);session.setAttribute(selectmenu3,text_look_get);LogonForm logonuser=(LogonForm)session.getAttribute(logonuser);String user=logonuser.getUsername();String sql_get=select * from +Content.TB_TEXT+ where +Content.TEXTGETER+ =+user+ and +Content.TEXTDELGETER+=0+ order by +Content.TEXTMARK+ desc,+Content.TEXTSENDTIME+ desc;String str_currentpage=request.getParameter(page); if(str_currentpage=null|str_currentpage.equals() str_currentpage=0;int currentpage=Change.strtoint(str_currentpage);if(currentpage=0)currentpage=1;DB db=new DB(); gettextlist=db.getalltextlist(sql_get,currentpage); db.closed(); session.setAttribute(numrs,Integer.toString(db.getNumrs();session.setAttribute(numper, Integer.toString(db.getNumper(); session.setAttribute(currentpage,Integer.toString(db.getCurrentPage(); session.setAttribute(numpages, Integer.toString(db.getNumPages(); session.setAttribute(gettextlist,gettextlist);return mapping.findForward(success);b.发件箱中浏览已经发送的公文:图26 浏览发件箱信息界面其处理类代码与收件箱中类似,所以省略。(2) 建立发文:图27 新建发文界面(4) 查看公文详细:图28查看公文详细信息界面4.5 会议管理模块的实现设计思想:此模块实现了会议信息的添加,删除,查看,浏览所有会议 信息等功能。(1) 查看会议记录:a. 浏览所有记录:图29浏览所有会议记录界面其处理类代码如下:public ActionForward executeMeetLook(ActionMapping mapping, ActionForm form,HttpServlet
展开阅读全文