JAVA基于Struts架构的办公自动化系统毕业论文

上传人:1777****777 文档编号:36863733 上传时间:2021-11-01 格式:DOC 页数:62 大小:1.58MB
返回 下载 相关 举报
JAVA基于Struts架构的办公自动化系统毕业论文_第1页
第1页 / 共62页
JAVA基于Struts架构的办公自动化系统毕业论文_第2页
第2页 / 共62页
JAVA基于Struts架构的办公自动化系统毕业论文_第3页
第3页 / 共62页
点击查看更多>>
资源描述
I基于基于 StrutsStruts 架构的办公自动化系统架构的办公自动化系统的研究与开发的研究与开发2008 年年 6 月月II摘摘 要要当代社会已经进入了信息时代,企业对信息需求的增长,使得计算机、网络技术已经快速融入到了企业的需求中。传统的企业内部信息的交流方式早已不能满足企业对大量信息的快速传递和处理的需求,网络的应用改变了这种传统的模式,提高了企业内部的管理水平,进而全面得提升了企业在市场竞争中的综合竞争力。办公自动化系统基于网络,提高了企业内部的信息化水平。本文描述了一个办公自动化系统的开发过程,依据面向对象设计的开发思想,选用浏览器/服务器(B/S)模式搭建,并用 Struts 完成了系统的最终实现。系统分为个人办公和企业信息管理两大模块:个人办公模块包括收发文管理、会议管理、邮件管理、日程管理、意见箱等五个子模块,提供公文流传、会议记录、邮件收发、日程安排、提出意见建议等功能,给企业员工在日常办公的过程中提供了方便。企业信息管理模块包括公告管理、新闻管理、人力资源管理、资产管理、资料共享等五个子模块,提供公告、新闻信息的发布,员工信息的管理,记录企业资产状态,企业内部电子资料的共享等功能。关键词:关键词:办公自动化,面向对象,Struts,B/SIIIAbstractPresent society have entered information times, enterprise makes computer and network technology have blended in the demand of enterprise fast for the increase of information demand. The alternating way of the enterprise internal information of tradition can not satisfy enterprise long ago, have raised the built-in level of management of enterprise for the application pattern that has changed this kind of tradition of demand and network of plenty of informations that transmited and handled fast , and then have to promote enterprise all-sidedly the comprehensive competition ability in market competition. The automation system of official business has raised the built-in informative level of enterprise based on network. This paper has described a development course of the automation system of official business , is ideological according to the development of object oriented design, choose B/S pattern put up to build, and have completed systematic last realization with Struts. System divides into personal official business and enterprise information management two big modulars: The personal modular of official business ,including the 5 son modulars such as dispatcher writing management, meeting management, mail management, programme management and opinion case offer official document to spread , meeting record, mail dispatcher and programme arrangement , put forward the functions such as opinion suggestion, have offered convenience to enterprise employee in the course of daily official business. Enterprise information management modular ,including announcement management, news management, the management of human resource and asset manage , information share wait for 5 son modulars, offer announcement and news information issue , the management of employee information, record enterprise asset state, enterprise internal elecinformation share etc. function.Key words: official automation, object oriented, Struts, B/SIV目目 录录1 绪论.11.1 办公自动化软件开发的现状11.2 本文要做的工作22 运用技术及开发工具介绍.32.1 STRUTS技术简介42.2 B/S 模式介绍及应用42.2.1 什么是 B/S 模式.42.2.2 B/S 模式的优缺点.52.3 开发工具的选择62.3.1 Eclipse 介绍与应用.62.3.2 Tomcat 介绍.63 需求分析与系统设计.73.1 问题域的一般描述73.2 待开发软件的功能模块需求73.2.1 系统模块功能图.73.2.2 系统模块功能描述.83.2.3 系统其他需求.93.3 系统用例模型 103.3.1 系统边界.103.3.2 主要参与者及其目标.103.3.3 用例图.113.3.4 系统主要类图.123.4 系统数据库设计183.4.1 数据表概要说明.183.4.2 数据表的结构.184 系统详细设计.23V4.1 前期准备 234.1.1 配置应用 Struts 结构文件及数据库连接文件.234.1.2类的分布架构设计.234.2 公共类的编写244.2.1 数据库的连接及操作方法类:DB.254.2.2 数据表信息类:Content.264.2.3 分页类:Page.274.2.4 检查用户权限类:CheckUserAble.294.2.5 检查用户是否在线类 CheckUser 类.304.3 登录模块的设计314.3.1 表现层设计.314.3.2 业务控制层设计.314.4 文件共享模块的设计344.4.1 文件上传子模块表现层设计.344.4.2 业务控制层设计.354.5 其他模块的设计375 系统测试.385.1 系统测试 385.1.1 系统运行概貌.385.1.2 收发文管理模块测试.405.1.3 会议管理模块测试.425.1.4 公告管理模块测试.435.1.5 日程管理模块测试.455.1.6 新闻管理模块测试.455.1.7 人力资源管理模块测试.465.1.8 资产管理模块测试.485.1.9 文档管理模块测试.505.1.10 意见箱模块测试.50VI5.2 测试分析52结论.53参考文献.54致谢.55附录 A 办公自动化 OFFICE 部署手册.5611 绪论绪论1.1 办公自动化软件开发的现状办公自动化软件开发的现状当今社会是一个信息飞速发展的社会,因此,针对各行业来说,计算机的应用实为重要,求质量、求速度,尽可能的脱离手工操作,是现代人追求的目标。分析人士指出,在一个企业的运作过程中,交流成本成为了总成本的一个重大构成部分,因此,如何实现快速、有效的交流以降低交流成本成为每个企业所关心的问题。在现代社会中,任何一个行业,任何一个企业,高效准确的办公都是至关重要的。快捷的信息交流,畅通的公文传递,迅速的文档查询,自动的工作流转等等都能提高一个企业的办公效率,进而提高其市场竞争力。图 1.1 传统办公模式传统的办公模式主要以纸介质为主,在信息革命的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。Internet/Intranet 的迅猛发展,为信息的交流和共享,团队的协同运作提供了技术的保证,同时也预示着网络化办公时代来临。图 1.2 网络化办公模式 现有办公自动化系统中,企业文件流转功能都是核心功能。可以认为,企业办公主2要是一个文件流转的过程,所有的办公事务都可以抽象成一个数据库表单。传统办公自动化系统和大型 MIS 系统在处理企业管理流程中大多采用企业业务流程重组(BKR) ,其核心思想就是要先优化企业业务管理流程,再根据优化后的流程建设企业信息统。这样不仅在系统建设中工作量巨大,同时面临来自企业内部重重的阻碍。要想实现办公自动化,就需要实施计算机管理,所以,开发了这个办公自动化系统 OFFICE,此系统是基于网络的,部署方便,易于维护。1.2 本文要做的工作本文要做的工作本文的最终目标是要描述建立一个办公自动化系统的过程,本文重点描述了个人办公,企业信息管理模块。系统选用 Struts 框架,以 MVC 设计模式作为软件工程方法,并用 JAVA 语言实现。本文主要做的工作是描述了此办公自动化系统从分析,设计,到实现的主要工作流程,并在最后阐述系统的使用方法。本系统实现的主要功能模块有:1、个人办公模块包括收发文管理、会议管理、邮件管理、日程管理、意见箱等五个子模块,提供公文流传、会议记录、邮件收发、日程安排、提出意见建议等功能,给企业员工在日常办公的过程中提供了方便。2、企业信息管理模块包括公告管理、新闻管理、人力资源管理、资产管理、资料共享等五个子模块,提供公告、新闻信息的发布,员工信息的管理,记录企业资产状态,企业内部电子资料的共享等功能。32 运用技术及开发工具介绍运用技术及开发工具介绍该办公自动化系统是在 Eclipse 3.2 的环境下开发的,以 MS SQL Server2000 作为后台数据库,Action 作为系统的业务逻辑层,JSP 页面作为系统的表现层,通过使用Struts 实现的 MVC 机制,来控制整个办公自动化的业务数据流程。本系统是基于 WEB 的,所以 Internet 必须成为浏览器和服务器之间的通信媒介, UML 架构模型如图 2.1 所示:图 2.1 架构设计图本系统的具体架构是 MVC 模式,并用 DAO 封装所有的数据库访问,具体的物理架构如图 2.2 所示:4 Browser ClientActionJspActionJspBusiness ObjectData Access ObjectDatabaseHTTPJDBC图 2.2 物理架构图2.1 Struts 技术简介技术简介Struts 最早是作为 Apache Jakarta 项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高 Java Server Pages、Servlet、标签库以及面向对象的技术水准。 Struts 这个名字来源于在建筑和旧式飞机中使用的支持金属架1。它的目的是为了减少在运用 MVC 设计模型来开发 Web 应用的时间。虽然仍然需要学习和应用该架构,但它将可以完成其中一些繁重的工作。 Struts 跟 Tomcat、Turbine 等诸多 Apache 项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。 除此之外,Struts 的优点主要集中体现在两个方面:Taglib 和页面导航。Taglib 是Struts 的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的 JSP 开发者而言,除了使用 JSP 自带的常用标记外,很少开发自己的标记,或许 Struts 是一个很好的起点。2.2 B/S 模式介绍及应用模式介绍及应用2.2.1 什么是 B/S 模式 浏览器/服务器(B/S)模式又称 B/S 结构。它是一种以 Web 技术为基础的新型的MIS 系统平台模式。把传统 C/S 模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web 服务器),从而构成一个三层结构的客户服务器体系2。5第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如 Netscape Navigator,微软公司的 IE 等。浏览器将 HTML 代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的 Web 服务器。第二层 Web 服务器将启动相应的进程来响应这一请求,并动态生成一串 HTML 代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web 服务器还需与数据库服务器协同完成这一处理工作。第三层数据库服务器的任务类似于 C/S 模式,负责协调不同的 Web 服务器发出的SQ 请求,管理数据库。2.2.2 B/S 模式的优缺点 B/S 模式简化了客户端。它无需象 C/S 模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件3。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在 Web 服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过 HTTP 请求在权限范围内调用 Web 服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于 C/S,B/S 的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对 Web 服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。再次,它使用户的操作变得更简单。对于 C/S 模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用 B/S 模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S 模式的这种特性,还使 MIS 系统维护的限制因素更少。6最后,B/S 特别适用于网上信息发布,使得传统的 MIS 的功能有所扩展。这是 C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。鉴于 B/S 相对于 C/S 的先进性,B/S 逐渐成为一种流行的 MIS 系统平台。各软件公司纷纷推出自己的 Internet 方案,基于 Web 的财务系统、基于 Web 的 ERP。一些企业已经领先一步开始使用它,并且收到了一定的成效。B/S 模式的新颖与流行,和在某些方面相对于 C/S 的巨大改进,使 B/S 成了 MIS系统平台的首选,但是它也有不成熟的一面,目前基于 B/S 模式的应用软件也很缺乏,其最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。2.3 开发工具的选择开发工具的选择2.3.1 Eclipse 介绍与应用Eclipse 是一个非常优秀的集成开发环境(IDE) 。Eclipse 是一个用于构建集成 Web和应用程序开发工具的平台4,根据需求在 Eclipse 插入各种功能插件,能使 Eclipse 拥有不同的功能。Eclipse 的核心是动态发现插件的体系结构。平台负责处理基本环境的后台工作,并提供标准的用户导航模型,于是每个插件可以专注于执行少量的任务。Eclipse 的出现,不仅为 Java 开发者提供了免费使用强大的 Java IDE 的机会,而且也为 C+的开发者提供了 CDT(C 语言开发工具)5。本系统的开发过程中使用了 MyEclipse 插件,该插件主要用于开发 java 程序,集成了大量的实用类库。2.3.2 Tomcat 介绍Jakarta Tomcat 服务器是一种 Servlet/JSP 容器。Servlet 是一种运行在支持 Java 语言的服务器上的组件6。 当客户请求访问某个 Servlet 时,Servlet 容器将创建一个 ServletRequrst 对象和7ServletResponse 对象。在 ServletRequest 对象中封装了客户请求信息,然后 Servlet 容器把 ServletRequest 对象和 ServletResponse 对象传给客户所请求的 Servlet。Servlet 把响应结果写到 ServletResponse 中,然后由 Servlet 容器把响应结果传给客户。Servlet 容器响应客户请求过程如图 2.3 所示: 图 2.3 Servlet 容器响应客户请求过程图3 需求分析与系统设计需求分析与系统设计本章描述了此办公自动化系统的需求分析和系统设计,主要对待开发软件进行一般描述和对该软件各功能模块需求进行分析和设计。3.1 问题域的一般描述问题域的一般描述 系统将用户分为 3 个权限级别:“系统管理员”可对系统中的所有功能进行操作;“普通管理员”可对系统中的部分功能进行操作;“游客”在本系统中只能进行收发邮件和浏览信息的操作。3.2 待开发软件的功能模块需求待开发软件的功能模块需求3.2.1 系统模块功能图开发本软件的目的是为公司办公室提供一个方便快捷的办公平台。经调查分析,本系统应具备的功能模块有:用户登录、收发文管理、会议管理、公告管理、新闻管理、人力资源管理、资产管理、日程管理、资料共享、内部邮件管理、和意见箱等模块。因此,本软件的各个功能划分如图 3.1 所示。8图 3.1 系统功能模块图3.2.2 系统模块功能描述1、收发文管理 提供公文服务,如员工请假,领导审批等需要公文传递的都可以通过收发文管理模块实现。92、会议管理记录企业开会的会议记录,全体员工可以查看会议记录。3、公告管理拥有管理员权限的人员可以添加新公告、删除旧公告等。全体员工可以查看公告。4、新闻管理拥有管理员权限的人员可以添加新闻、删除新闻等。全体员工可以查看新闻。5、邮件管理在部门之间,各部门不同员工之间可以用邮件方式进行及时通信,收发邮件,管理邮件等。6、人力资源管理供全体员工查看个人信息、修改个人信息等。管理员可以浏览全体员工信息,按条件模糊查询员工,创建员工,修改员工信息,评定优秀员工等,实现整个公司人力资源的管理。7、资产管理对公司固定资产和耗材进行管理,主要包括车辆管理和办公用品管理两类,方便员工掌握公司各种资产的情况。8、资料共享提供上传资料和下载资料的功能,给员工提供了共享资料的平台,只有拥有管理员权限的人员才可以对文件进行删除操作。9、日程管理由管理员(领导)安排部门的日程安排,给出一个工作任务的截至日期,其他员工每天注意查看日程,务必按时完成任务。10、意见箱一个公司员工提出意见的平台,员工有什么意见或者建议均可以在此处提出,管理员权限的人员可以查看意见箱,以做出及时反应。3.2.3 系统其他需求1、错误处理:10系统要有一定的容错能力,出现错误及时提醒;2、安全:任何对系统的使用都必须先登录,而且要防止绕过登录,登录 30 分钟无任何操作会自动退出,以防被不法分子盗用;3、性能需求:系统对于用户做出的任何请求都要在 10 秒之内做出响应,做到尽快响应;4、适用性:用 Struts 作为框架,用 JAVA 语言实现,服务器可以允许于不同的操作系统之上;5、可靠性:系统要能够持续工作比较长的时间,而且不发生严重错误;6、接口需求:硬件接口:键盘,鼠标,显示器;软件接口:基于网络的办公平台;7、扩展需求:将来要把公司的子公司联入系统,可以实现异地办公。3.3 系统用例模型系统用例模型3.3.1 系统边界此办公自动化系统 Office、数据库服务器和有关操作的人员都在系统边界之内。3.3.2 主要参与者及其目标参与者是通过使用系统提供的服务来实现自己目的的人或者系统。表表 3.13.1 参与者目标参与者目标参与者使用目标游客查看公司公告,新闻,查看、修改个人信息、查看日程、收发邮件等。普通管理员除拥有游客的所有权限外,还具有添加、删除公司公告、新闻、日11程、收发邮件,管理资产、收发公文、提出建议等的权限。系统管理员除拥有普通管理员的权限外还具有添加员工、修改员工信息、查看意见箱的权限。3.3.3 用例图用例图是 UML 中的一种对用例建模的图,用于简要描述系统功能7。1、 系统管理员身份的的用例图如图 3.2 所示为本系统系统管理员身份的用例图:图 3.2 系统管理员用例图2、 普通员工的用例图如图 3.3 所示为普通员工身份的用例图:12图 3.3 普通员工用例图3.3.4 系统主要类图1、后台数据库操作类 DB 系统将用于数据库连接、操作的类封装成一个类 DB,类图如图 3.4 所示:图 3.4 后台数据库操作类 DB13其中 getCon()方法用于连接数据库;getStm()用于保存需要执行的 Sql 语句;getRs(sql : String)用于保存执行 sql 语句后的结果。2、分页类 page 由于在系统中浏览信息的页面都需要分页功能,系统将分页功能独立封装成分页类 page,page 的类图如图 3.5 所示:图 3.5 分页类 page3、树形菜单类 OfficeMenu 系统采用了树形菜单,树形菜单功能用类 OfficeMenu 封装,OfficeMenu 类图如图3.6 所示:图 3.6 树形菜单类 OfficeMenu其中 LoadMenu()、LoadMenu2()、LoadMenu3()分别用于列出一级、二级和三级菜单。而在每一级菜单中使用类 MenuSigle 来打开具体菜单,类 MenuSigle 的类图如图 3. 7 所示:14图 3.7 查看单个菜单的类 MenuSigle4、登录动作类 LogonAction 类图如图 3.8 所示:图 3.8 登录动作类 LogonAction其中 executeLogonNo()用于在登录失败的时候产生的动作,在登录成功以后用Loadmenu()方法导出相应菜单。5、用户类 UserAction 此类主要用于人力资源管理模块,类图如图 3.9 所示:图 3.9 用户类 UserAction15其中 executePersonLook()用于查看员工信息,executePersonGood()用于查看优秀员工信息,executePersonSigleLook()用于查看员工的详细信息,executePersonMyselfLook()用于查看个人信息,executePersonAdd()用于添加员工,executePersonUpdate()用于更新员工信息,executeMyUpdate()用于修改个人信息, executePersonDel()用于删除员工信息。6、发文动作类 TextAction 此类主要用于收发文管理模块,类图如图 3.10 所示:图 3.10 发文动作类 TextAction其中 executeTextLookGet()用于查看收文信息,executeTextLookSend()查看发文件箱,executeTextSigleLook()用于查看发文内容,executeTextDel()用于删除收、发文,executeTextAdd()用于添加收、发文。7、公告动作类 PcardAction此类主要用于公告管理模块,类图如图 3.11 所示:图 3.12 公告动作类 PcardAction其中 executePcardLook()用于浏览公告信息, executePcardSigleLook()用于查看选定公告具体信息, executePcardDel()用于删除公告,executePcardAdd()用于发布新公告,executePcardUpdate()用于更新公告。8、文档动作类 FileAction 此类主要用于文档管理模块,类图如图 3.12 所示:16图 3.12 文档动作类 FileAction其中 executeFileLook()用于浏览文件信息,executeFileDownLoad()用于从系统下载文件,executeFileUp()实现上传文件到系统的功能,executeFileDel()实现删除文件的功能。9、资产管理类 MoneyAction 此类主要用于资产管理模块,类图如图 3.13 所示:图 3.13 资产管理类 MoneyAction10、邮件管理类 MailAction 此类主要用于邮件管理模块,类图如图 3.14 所示:图 3.14 邮件管理类 MailAction其中方法 executeMailAdd()用于发送邮件,executeMailLookGet()用于浏览收件箱,executeMailLookSend()用于浏览发件箱,executeMailLookSigle()用于查看邮件内容,executeMailDel()用于删除邮件。1711、意见箱管理类 AdviceAction 此类主要用于意见箱管理模块,类图如图 3.15 所示:图 3.15 意见箱管理类 AdviceAction其中方法 executeAdviceLook()用于浏览意见箱,executeAdviceAdd()用于发表意见。12、新闻管理类 NewsAction 此类主要用于新闻管理模块,类图如图 3.16 所示:图 3.16 新闻管理类 NewsAction其中方法 executeNewsLook()用于浏览新闻信息,executeNewsSigleLook()查看新闻详细内容,executeNewsAdd()用于添加新闻,executeNewsDel()用于删除新闻。13、会议管理类 MeetAction 此类主要用于会议管理模块,类图如图 3.17 所示:图 3.17 会议管理类 MeetAction其中方法 executeMeetLook()用于浏览会议记录,executeMeetSigleLook()用于查看18具体会议记录,executeMeetAdd()用于添加新的会议记录,executeMeetDel()用于删除会议记录。3.4 系统数据库设计系统数据库设计3.4.1 数据表概要说明 开发系统之前首先要设计数据库,系统数据库的名称为 db_office,共 13 张表,系统所需数据库表如图 3.2 所示。表表 3.23.2 数据库表的设计数据库表的设计db_officetb_advice建议表tb_calendar日程安排表tb_car资产管理车辆表tb_file文件表tb_label下拉列表信息表tb_mail内部邮件表tb_meet会议表tb_menu功能菜单表tb_news新闻表tb_pcard公告表tb_text收、发文表tb_thing资产管理办公用品表tb_user用户表3.4.2 数据表的结构1、tb_advice(意见表)意见表主要用于保存意见信息,记录意见的主题、内容、发送时间等意见的具体信息。表 tb_advice 的结构如表 3.3 所示:表表 3.33.3 意见表意见表tb_advice字段名称数据类型字段大小说明advice_idint4自动编号advice_subjectvarchar50意见主题advice_sendervarchar50意见发送者advice_contentvarchar50意见内容advice_sendtimevarchar50意见发送时间advice_sendbranchvarchar50意见发送者所在部门192、tb_calendar(日程安排表)tb_calendar 表主要用于保存日程信息,记录日程的截止时间、内容、安排者等日程的详细信息。表 tb_calendar 的结构如表 3.4 所示:表表 3.43.4 日程安排表日程安排表tb_calendar字段名称数据类型字段大小说明calendar_idint4自动编号calendar_deadlinevarchar50日程截止时间calendar_originvarchar50日程安排者calendar_timevarchar50日程安排时间calendar_contentvarchar200日程内容3、tb_car(资产管理车辆表)tb_car 表主要用于资产管理中的车辆信息,表 tb_car 的结构如表 3.5 所示:表表 3.53.5 资产管理车辆表资产管理车辆表tb_car字段名称数据类型字段大小说明car_idint4自动编号car_numvarchar50车牌号码car_modelvarchar50车辆型号car_fdjvarchar50发动机型号car_drivervarchar50司机姓名car_makervarchar50制造厂家名称car_buytimevarchar50购买时间car_statusvarchar2车辆状态car_njvarchar50年检信息car_infovarchar500车辆描述4、tb_file(文件表)tb_file 表主要用于保存文件信息,记录文件名称、大小、上传时间等具体信息。表 tb_file 的结构如表 3.6 所示:表表 3.63.6 文件表文件表tb_file字段名称数据类型字段大小说明file_idint4自动编号file_namevarchar50文件名file_upervarchar50上传者姓名file_sizevarchar50文件大小file_uptimevarchar50文件上传时间file_infovarchar50文件描述205、tb_label(下拉列表信息表)tb_label 表中存储了本系统中所有下拉菜单标签的信息,表 tb_label的结构如表 3.7 所示:表表 3.73.7 下拉列表信息表下拉列表信息表tb_label字段名称数据类型字段大小说明label_idint4自动标号label_namevarchar50显示给用户的下拉列表项的名称label_valuevarchar50在程序中使用的下拉列表项的值label_typevarchar50下拉列表的类型label_ordersmallint2下拉列表项的排序6、tb_mail(邮件表)tb_mail 表主要用于保存邮件信息,记录邮件主题、接受者、内容等详细信息。表 tb_mail 的结构如表 3.8 所示:表表 3.83.8 邮件表邮件表tb_mail字段名称数据类型字段大小说明mail_idint4自动编号mail_subjectvarchar50邮件主题mail_getervarchar50邮件接受者mail_sendervarchar50邮件发送者mail_contentvarchar50邮件内容mail_sendtimevarchar50邮件发送时间mail_markvarchar2邮件标记7、tb_meet(会议表)会议表主要用于保存会议记录信息,记录会议主题、主持人、时间、地点等具体内容。表 tb_meet 的结构如表 3.9 所示:表表 3.93.9 会议表会议表tb_meet字段名称数据类型字段大小说明meet_idint4会议编号meet_subjectvarchar50会议主题meet_speakervarchar50会议主持人meet_listenervarchar50会议出席人meet_timevarchar50会议时间meet_addressvarchar50会议地点21meet_contenttext16会议内容8、tb_menu(功能菜单表)功能菜单表主要用于保存功能菜单的信息,记录功能菜单的菜单级别、菜单名称、所需权限等详细信息。表 tb_menu 的结构如表 3.10 所示:表表 3.103.10 功能菜单表功能菜单表tb_menu字段名称数据类型字段大小说明menu_idvarchar50程序中使用的菜单名称menu_namevarchar50显示给用户的菜单名称menu_parentidvarchar50父菜单的 menu_idmenu_actionvarchar50菜单触发操作的请求链接menu_jibievarchar2菜单级别menu_orderint4菜单在页面user_ableint4菜单权限9、tb_news(新闻表)tb_news 表主要用于保存新闻信息,记录新闻标题、时间、内容等详细信息。表tb_news 的结构如表 3.11 所示:表表 3.113.11 新闻表新闻表tb_news字段名称数据类型字段大小说明news_idint4自动编号news_subjectvarchar50新闻标题news_originvarchar50新闻发布者news_timevarchar50发布时间news_contentvarchar200新闻内容10、tb_pcard(公告表)tb_pcard 表主要用于保存公告信息,记录公告主题、发布者、内容等。表 tb_pcard的结构如表 3.12 所示:表表 3.123.12 公告表公告表tb_pcard字段名称数据类型字段大小说明pcard_idint4公告标号pcard_subjectvarchar50公告主题pcard_authorvarchar50公告作者pcard_timevarchar50公告发布时间pcard_contentvarchar1000公告内容11、tb_text(收发文表)22tb_text 表主要用于保存收发文信息,记录公文的主题、发送者、接收者、内容等详细内容。表 tb_text 的结构如表 3.13 所示:表表 3.133.13 收发文表收发文表tb_text字段名称数据类型字段大小说明Text_idint4自动编号Text_subjectvarchar50发文主题Text_sendervarchar50发文的发送者Text_getervarchar50发文的接收者Text_markvarchar2发文标记Text_contenttext16发文内容Text_sendtimevarchar50发文发送时间12、tb_thing(资产管理办公用品表)tb_thing 表主要用于保存资产管理中的办公用品信息,表 tb_thing 的结构如表 3.14所示:表表 3.143.14 资产管理办公用品表资产管理办公用品表tb_thing字段名称数据类型字段大小说明thing_idint4办公用品 idthing_typevarchar50办公用品类别thing_modelvarchar50办公用品品牌thing_numbervarchar10办公用品数量thing_costvarchar20办公用品金额thing_buytimevarchar50办公用品购买时间thing_buybranchvarchar50办公用品购买部门13、tb_user(用户表)tb_user 表主要用于保存用户信息,表 tb_user 的结构如表 3.15 所示:表表 3.153.15 用户表用户表tb_user字段名称数据类型字段大小说明user_idint4自动编号user_namevarchar20用户名user_passwordvarchar10用户密码true_namevarchar50用户真实姓名user_ableint4用户权限user_goodvarchar2是否为优秀员工user_branchvarchar50所在部门user_telvarchar15电话号码user_addressvarchar100住址23user_accessTimesint4访问时间user_foundTimevarchar50用户创建时间user_newmailcountint4用户所有新邮件数4 系统详细设计系统详细设计本章将对系统进行详细设计,重点介绍各功能模块的设计过程。4.1 前期准备前期准备4.1.1 配置应用配置应用 Struts 结构文件及数据库连接文件结构文件及数据库连接文件系统运行必须有一些类库的支持,因此,首先要将如图 4.1 所示的 jar 文件拷贝到应用程序下的officeWebRootWEB-INFlib 文件夹下。图 4.1 必要类库jtds-0.8.1.jar 是系统连接数据库用到的 jar 文件,使用该文件创建数据库连接时加载驱动程序的语句如下8:Class.forName(net.sourceforge.jtds.jdbc.Driver)获取连接的语句如下:DriverManager.getConnection(jdbc:jtds:sqlserver:/localhost:1433/db_office,sa )其中 db_office 为数据库名称,sa 为登陆用户,密码为空。244.1.2类的分布架构设计类的分布架构设计 开发的前期要首先设计好系统类的架构,基于 Struts 架构的程序将业务逻辑层与表现层分开,整个系统类的分布架构如图 4.2 所示,所有 action 类用于业务逻辑,所有actionform 类用于系统的表现层,此外系统还需要 dao 类,用于连接和操作数据库。图 4.2 类的架构设计图254.2 公共类的编写公共类的编写在开发过程中,常会用到一些公共类,如类型转换类,获取数据库连接的类等,编写公用类的好处是,不仅提高了代码的重用率,还有利于程序的维护。下面逐一介绍各个公共类。4.2.1 数据库的连接及操作方法类:数据库的连接及操作方法类:DB系统对数据库的操作封装到 DB 类中。DB 类的关键代码如下:package com.office.dao;import java.sql.Connection;import com.office.actionform.AdviceForm;import com.office.actionform.CalendarForm;public class DB private ResultSet rs; private Statement stm; private Connection con; private String url=Content.URL; private String classname=Content.CLASSNAME; private int num_per=0; /每页显示的记录数 private int num_rs=0; /总记录数 private int num_currentpage=1; /当前页数 private int num_pages=1; /总页数 /通过沟造函数加载数据库驱动 public DB() tryClass.forName(classname); catch(ClassNotFoundException e) e.printStackTrace(); public Connection getCon() /创建数据库连接 26 try con=DriverManager.getConnection(url,sa,); catch(Exception e)e.printStackTrace(System.err); return con; public Statement getStm() /获取一个 Statement 对象stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); catch(Exception e)e.printStackTrace(System.err); return stm; public ResultSet getRs(String sql) /执行 SELECT 查询语句获得一个结果集System.out.println(sql); if(sql=null)sql=;trystm=getStmed(); /调用 getStmed()方法后就可以获得可滚动的结果集rs=stm.executeQuery(sql);catch(SQLException e)e.printStackTrace();return rs; public int update(String sql) /对数据库进行更新操作 System.out.println(sql);int num=0; if(sql=null)sql=; try stm=getStmed(); num=stm.executeUpdate(sql); catch(SQLException e)e.printStackTrace();num=0; return num; 4.2.2 数据表信息类:数据表信息类:ContentContent 类主要为数据库表设计的,关键代码如下:27package com.office.dao;public class Content public static final int MAXLENGTH=3*1024*1024; /限制上传文件大小public static final int NUM_PER=8; /每页显示记录数public static final String CLASSNAME=net.sourceforge.jtds.jdbc.Driver;/数据库驱动程序public static final String URL=jdbc:jtds:sqlserver:/localhost:1433/db_office;/数据库的 URL 地址public static final String CLASSNAME1=sun.jdbc.odbc.JdbcOdbcDriver;public static final String URL1=jdbc:odbc:db_office;public static final String TB_USER=tb_user; /数据表名称public static final String TB_MENU=tb_menu;public static final String USERID=user_id; /数据表字段名称public static final String USERNAME=user_name; 在此类中将所有的属性都声明为最终静态变量,方便在程序中直接通过类名引用,并且其值不能被修改。此类的好处是在进行程序的输入时减少错误。4.2.3 分页类:分页类:Page由于系统通常都拥有大量信息显示给用户,所以需要分页显示功能。分页显示功能能够使用户方便的浏览信息,并且会提高用户的访问速度。本系统通过设置一个Page 类来实现分页显示的功能。Page 的关键代码如下:package com.office.dao;import java.sql.ResultSet;import com.office.dao.Content;public class Page private ResultSet rs=null;private int num_rs=0; /总记录数private int num_per=Content.NUM_PER; /每页显示的记录数28private int num_pages=0; /总页数private int current_page=1; /当前页数public Page(ResultSet rs,int current_page) this.rs=rs;setNumrs(rs); /设置总记录数 System.out.println(Page:总记录数:+getNumrs();setNumPages(); /设置总页数 System.out.println(Page:总页数:+getNumPages();setCurrentPage(current_page);/设置当前页数 System.out.println(Page:当前页数:+getCurrentPage();public void setCurrentPage(int current_page)/设置当前页数的方法if(current_pagegetNumPages()current_page=getNumPages();/如当前页数大于总页数,就将总页数的数值赋给当前页数this.current_page=current_page; public int getCurrentPage()/获得当前页数的方法return this.current_page; public void setNumPages()/设置总页数的方法this.num_pages=(num_rs%num_per=0)?(num_rs/num_per):(num_rs/num_per)+1); public int getNumPages()/获得总页数的方法return this.num_pages; public void setNumrs(ResultSet rs)/设置总记录数的方法try rs.last();/将记录指针移动到结果集的末尾 this.num_rs=rs.getRow();/获得最后记录的行数,即总页数catch(Exception e)e.printStackTrace();public int getNumrs()/获得总记录数29return this.num_rs;public ResultSet getRs()/获得第 n 页的记录指针int rspos=(this.current_page-1)*this.num_per+1;try this.rs.absolute(rspos); this.rs.previous();catch(Exception e)e.printStackTrace(); return this.rs;public int getNumper()/获得每页显示的记录数return this.num_per;4.2.4 检查用户权限类:检查用户权限类:CheckUserAble设置该类的作用是为了防止用户通过在浏览器地址栏中输入地址对非授权的功能进行非法操作。该类的关键代码如下:package com.office.tools;import com.office.actionform.LogonForm;public class CheckUserAble private static boolean allow=false; public static boolean check(LogonForm logonuser)/检查身份为游客的用户,若是则返回的 boolean 型
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!