




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 1目目 录录1.绪论绪论.311 选题背景.312 论文结构的安排.42 2系统系统 OAOA 的分析的分析.521 系统的可行性分析.522 系统的设计思想.523 系统功能分析.63 3系统结构设计系统结构设计.631 OA 系统的功能模块.6311 系统信息模块结构图.732 对象与数据库的映射.74 4系统开发技术介绍系统开发技术介绍.1441 STRUTS,HIBERNATE,SPRING的来龙去脉 .1442 选择 MYSQL 数据库的好处.175系统各模块的设计与实现系统各模块的设计与实现.1851 系统基本信息模块.19511 系统首页介绍.19512 我的通信录的实现.1
2、9513 新闻管理功能的实现.20514 公告通知功能的实现.21515 会议通知功能的实现.21516 资产管理功能的实现.22517 车辆管理功能的实现.22518 图书管理功能的实现.23519 邮件服务功能的实现.2452 系统基本信息功能重要实现方法.24521 页面分页.24522 系统异常处理.27523 邮件模块发件箱的发邮件功能的实现.276 6设计体会设计体会.27致谢致谢.28参考文献参考文献.282 2网络办公自动化系统的设计与实现系统信息模块的开发邢华进湛江师范学院信息科学与技术学院, 湛江, 524048摘要:摘要:今天的世界是一个信息和网络高速发展的世界,随着网络
3、的高速发展,网络式的办公必然会成为办公的趋势。只要拥有一台计算机、浏览器、Internet 连接,就能通过网络办公平台完成各式各样工作,享受到无纸办公带来的好处。 本文从理论和实践出发,对网络办公自动化系统(WEB-OA)进行了深入的探讨。首先系统地介绍了选题的背景,然后从构建一个网络办公自动化系统(WEB-OA)入手,对系统的需求进行了分析,接着对系统的设计思想、设计目标与系统的整体结构进行了详细的介绍,在此基础上将理论知识与开发技术运用到系统的实现过程中,完成了网络办公自动化系统(WEB-OA)的构建过程。 关键词:关键词:网络办公自动化;Struts;Hibernate;Spring;J
4、MailDesign and implement of Office Automation Development of System Information ModuleHuajin,xingInformation Science and Technology School, Zhanjiang Normal College, Zhanjiang, 524048 ChinaAbstract: Todays world is a rapid development of information and networks of the world, with the rapid developm
5、ent of network, network-based office will definitely become the trend of office. As long as the ownership of a computer, browser, Internet connection, you can achieve through the network platform for all kinds of office work, to enjoy without the benefits of paperless office.In this paper, starting
6、from the theory and practice, office automation system on the network (WEB-OA) conducted an in-depth study. First of all, the systematic introduction of the background of the subjects, and then build a network from the office automation system (WEB-OA) approach to systems analysis, and then thought
7、the design of the system design objectives and the overall structure of the system in detail the introduction, in this based on theoretical knowledge and development of technology applied to the system implementation process, achieve a network of office automation systems (WEB-OA) of the building pr
8、ocess.3 3Key words: Office Automation on Network; Struts;Hibernate;Spring; JMail1.绪论绪论1 11a1a 选题背景选题背景 办公自动化(Office Automation,简称 OA)是将现代化办公和计算机网络功能 结合起来的一种新型的办公方式,是当前新技术革命中一个非常活跃和具有很强生命力的技术应用领域,是信息化社会的产物。随着网络的高速发展,各种先进的网络办公自动化系统如雨后春笋般出现。为适应瞬息万变、竞争激烈的时代要求,各办公机构亦纷纷引入办公自动化系统。一些大型企业集团正致力实现高层次的网络办公自动化,这
9、将为他们节省大量的人力资源,节省大量的办公费用,大幅度提高办公效率,使办公业务从事务层次进入管理层,甚至辅助决策层,将办公和管理提高到一个崭新的水平。 办公自动化就是用信息技术把办公过程电子化、数字化,就是要创造一个集成的办公环境,使所有的办公人员都在同一个桌面环境下一起工作。具体来说,主要实现下面七个方面的功能: (1)建立内部的通信平台。建立组织内部的邮件系统,使组织内部的通信和信息交流快捷通畅。 (2)建立信息发布的平台。在内部建立一个有效的信息发布和交流的场所,例如电子公告、电子论坛、电子刊物,使内部的新闻简报、公告事项等能够在企业或机关内部员工之间得到广泛的传播,使员工能够了解单位的
10、发展动态。 (3)实现工作流程的自动化。这牵涉到流转过程的实时监控、跟踪,解决多岗位、多部门之间的协同工作问题,实现高效率的协作。我们都知道,各个单位都存在着大量流程化的工作,例如公文的处理、收发文、各种审批、请示、汇报等,都是一些流程化的工作,通过实现工作流程的自动化,就可以规范各项工作,提高单位协同工作的效率。 (4)实现文档管理的自动化。可使各类文档(包括各种文件、知识、信息)能够按权限进行保存、共享和使用,并有一个方便的查找手段。每个单位都会有大量的文档,在手工办公的情况下这些文档都保存在每个人的文件柜里。因此,文档的保存、共享、使用和再利用是十分困难的。另外,在手工办公的情况下文档的
11、检索4 4存在非常大的难度。文档多了,需要什么东西不能及时找到,甚至找不到。办公自动化使各种文档实现电子化,通过电子文件柜的形式实现文档的保管,按权限进行使用和共享。实现办公自动化以后,比如说,某个单位来了一个新员工,只要管理员给他分配一个身份帐号,给他一个口令,他自己上网就可以看到这个单位积累下来的东西,规章制度、各种技术文件等等,只要他的身份符合权限可以阅览的范围,他自然而然都能看到,这样就减少了很多培训环节。 (5)辅助办公。它牵涉的内容比较多,像会议管理、车辆管理、物品管理、图书管理等与我们日常事务性的办公工作相结合的各种辅助办公,实现了这些辅助办公的自动化。 (6)信息集成。我们每一
12、个单位,都存在大量的业务系统,如购销存、ERP 等各种业务系统,企业的信息源往往都在这个业务系统里,办公自动化系统应该跟这些业务系统实现很好的集成,使相关的人员能够有效地获得整体的信息,提高整体的反应速度和决策能力。 (7)实现分布式办公。这就是要支持多分支机构、跨地域的办公模式以及移动办公。现在来讲,地域分布越来越广,移动办公和跨地域办公成为很迫切的一种需求。 办公自动化还是一个企业与整个世界联系的渠道,企业的 Intranet 网络可以和 Internet 相联。一方面,企业的员工可以在 Internet 上查找有关的技术资料、市场行情,与现有或潜在的客户、合作伙伴联系;另一方面,其他企业
13、可以通过Internet 访问你对外发布的企业信息,如企业介绍、生产经营业绩、业务范围、产品/服务等信息。从而起到宣传介绍的作用。随着办公自动化的推广,越来越多的企业将通过自己的 Intranet 网络联接到 Internet 上,所以这种网上交流的潜力将非常巨大。 办公自动化已经成为企业界的共识。众多企业认识到应尽快进行办公自动化建设,并占据领先地位,将有助于保持竞争优势,使企业的发展形成良性循环。 为了顺应企业需要,抓住机遇,我们选择了网络办公自动化作为毕业设计的开发对象。 此网络办公自动化系统(WEB-OA)是杨云彬同学、刘桂平同学与我合作开发,其中我主要的工作是信息模块与系统部分界面。
14、1 12 2 论文结构的安排论文结构的安排5 5论文共分为七个部分,各部分的主要内容安排如下:1)绪论。介绍论文的选题背景、所做工作以及论文的结构安排。2)系统的需求分析。描述系统的开发可行性、设计思想以及系统的功能分析。3)网络办公自动化系统结构设计。主要介绍系统的主要结构、对象与数据库的映射以及数据库连接与表的生成等。4)系统开发技术选择。主要描述了 Struts、Hibernate、Spring 的来龙去脉和其他相应技术的比较、以及选择 MySQL 数据库的好处。5)系统各模块的设计与实现。这个章节为论文的重点部分,详细介绍了系统模块的设计与实现。6)设计体会。叙述自己对完成整个毕业设计
15、的心得体会。7)致谢。对在设计过程中给予自己帮助的人表达谢意。2 2系统系统 OAOA 的分析的分析2 21 1 系统的可行性分析系统的可行性分析对系统可行性进行分析是系统规划的关键步骤,必须在可行性报告通过后,才可以进入实质性的应用分析阶段1。信息化是我国加快实现工业化和现代化建设的必然选择,自 2001 年底国家信息化领导小组做出启动国家电子政务工程的历史性重大举措以来,加快电子办公系统的建设进程,在推进部门管理观念与工作模式变革方面取得了一系列成绩。随着信息化步伐的加快与全球化进程的推进,时代给办公系统的建设工作提出了更高的要求。目前大部分机构使用的办公系统已不能完全适应社会发展的新形势
16、,甚至在某些方面制约了机构工作效率的提高和整体形象的提升。一些大型企业集团(例如联想、海尔)正致力实现高层次的网络办公自动化,以进一步提高办事效率和工作透明度,更好地适应组织和管理现代化建设的要求,进而实现办公的自动化处理。从最初以大规模采用复印机等办公设备为标志的初级阶段,发展到今天以运用网络和计算机为标志的现阶段,OA 对办公方式的改变和效率的提高起到了积极的促进作用。 开发网络办公系统的市场前景是广阔的。大型企业需要高层次的网络办公自动化,中小型企业存在一个很大的网络 OA 系统的需求,因此,开发 OA 是绝对可行6 6的。2 22 2 系统的设计思想系统的设计思想本网络办公自动化系统(
17、WEB-OA)基于 B/S 网站架构模式构建,在功能上应能满足系统用户实现网络办公需求;在设计模式上应用框架进行开发,既便于系统功能的各种组合、修改和扩展,又便于未参与开发的技术人员补充和维护。 本系统主要考虑完成网络办公自动化的重要功能,包括个人办公、公文管理、公共信息、行政办公、消息管理、工作流程、组织管理、权限管理以及系统管理;系统管理员和系统的高级用户管理系统以及进行各项维护工作等。设计系统时,强调科学的、客观的处理方法的应用,并且系统设计要符合实际情况。只有系统的工作方法、管理模式和处理过程是确定的,系统才能够稳定协调地工作。2 23 3 系统功能分析系统功能分析该系统主要实现如下目
18、标:1)采用 B/S 模式,Struts,Hibernate,Spring 三层架构,实现真正的页面显现层的独立,数据库持久层的独立、业务逻辑层的集中管理,真正实现原代码的高度重用性、扩展性以及可维护性。2)现代化的设计:程序设计充分考虑使用方便和维护方便,本系统采用面向对象思想、架构式开发。3)友好的操作界面:系统界面友好、简洁,导航清晰,操作起来简单方便。4)我的桌面:对与我相关的信息进行快捷连接。5)通信录管理:快捷管理自己的通信录。6)公共信息:对本系统的公共的信息进行连接。7)行政办公:实现快速的个人办公连接。8)邮件管理:实现个人邮件的管理。3 3系统结构设计系统结构设计3 31
19、1 OAOA 系统的功能模块系统的功能模块 系统的运行以用户登陆页面为开始,在用户输入正确用户名和密码以后,就可7 7以进入系统的主界面,在这里,可以查看我的办公桌,首页可以浏览到本系统的最新公告、新闻以及待我审批的公文、我的邮件和会议通知等并且通过系统的工具栏可以进行相关功能模块的具体操作。3 31 11 1 系统信息模块结构图系统信息模块结构图公共信息行政办公1、我的办公桌2、我的通信录3、会议通知4、我的邮件5、我的个人信息6、我借的图书邮件管理1、收件箱2、发件箱3、垃圾箱1、公告通知2、新闻报告图 3.1 系统信息模块结构图1、会议管理2、资产管理3、车辆管理4、图书管理系统信息模块
20、结构我的办公桌3 32 2 对象与数据库对象与数据库的映射的映射 根据系统所采用的技术,先介绍 ORM(Object/Relation Mapping) 。ORM,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数
21、据的映射2。 下面来介绍一下 Web 开发流行的 ORM 框架-Hibernate。Hibernate 是一个流行的开放源代码的对象关系映射(ORM)框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate8 8可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用EJB(Enterprise Java Beans)的 J2EE 架构中取代 CMP(Container-Managed Pers
22、istence) ,完成数据持久化的重任3。 因此采用这种 ORM 框架可以抛开数据库表的设计,只需要考虑系统对象的设计,根据 Hibernate 的映射文件来完成对象与数据库表的映射,因为一个对象可以映射成数据库中的一个表,对象的一个属性就是对应表中的一个字段。因此这种方式下,映射文件的生成就显得很重要了,生成映射文件我们采用一种自动化的框架-Xdoclet。Xdoclet 可以通过在 java 源代码中的一些特殊的注释信息,自动为你生成配置文件、源代码等等,不过 Xdoclet 不是单独可以运行的工具,它可以与其它工具一起配合运行,这里我们采用 Ant 来结合 Xdoclet 来自动生成
23、Hibernate 的映射文件。Ant 是一个构建工具,它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目。 根据系统需要设计有以下对象:新闻 News,公告 Notice,通信录 CommRecord,通信录组 Groud,资产 Asset,车辆 Car,图书 Book,图书类型 BookType,会议Meeting,会议室 MeetingRoom,会议室使用 MeetingRoomApply,由于系统设计对象很多,而且对象与数据库的映射的原理都相同,我们就只列举一对象与数据库表映射的例子,如下:新闻报告对象:News.javapackage com.
24、xyl.oa.model;import java.util.Date;/* * 新闻 * author x_hj_xfn *hibernate.class table=t_News */public class News /* * hibernate.id * generator-class=native */private int id;/* * 标题 * perty9 9 */private String title;/* * 新闻内容 * perty * type=text */private String context;/* * 时
25、间 * perty */private Date date;/* * 来源 * perty */private String author;/* * 发布人 * hibernate.many-to-one */private User sender;通过 Xdoclet 在 Ant 构建器自动生成 News.hbm.xml 文件: hibernate 配置文件(hibernate.cfg.xml)中配置与数据库表关联1010 com.mysql.jdbc.Driver jdbc:mysql://oa root yybryan
26、 org.hibernate.dialect.MySQLDialect true update运行项目,即可自动在 MySql 数据库平台的 oa 数据库中生成 News 表:其它数据库表的设计:表 3-1 公告通知表(t_Notice.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNULL公告标题Titlevarchar(255)NONULL公告内容contextText是NULL发布时间sendDatedatetime是NULL1111表 3-2 会议表(t_Meeting.frm)字段含义字段含义字段名称字段名称类型类型KeyNu
27、ll默认默认记录号Idint(11)PRINoNULL会议标题Titlevarchar(255)NONULL会议内容decriptionText是NULL发布时间datedatetime是NULL会议室meetRoomInt(11)NONULL接收人receiverint(11)是NULL表 3-3 会议室表(t_MeetingRoom.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNULL会议室标识snvarchar(255)UNINONULL位置Positionvarchar(255)是NULL备注Descriptionvarcha
28、r(255)是NULL表 3-4 资产(t_Asset.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNULL资产标识assetSnvarchar(255)NONULL资产Namevarchar(255)NONULL型号Modelvarchar(255)是NULL厂商Facturervarchar(255)NONULL资产性质qualityvarchar(255)是NULL资产价值worthInt(11)是NULL出厂日期dateFactorydatetime是NULL购买日期buyDatedatetime是NULL保管员personI
29、nt(11)是NULL登记日期registerDatetime是NULL1212备注remarkVarchar(255)是NULL属于部门orgInt(11)是NULL表 3-5 车辆(t_car.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNULL车牌号carNOvarchar(255)NONULL品牌brandvarchar(255)NONULL型号Modelvarchar(255)是NULL厂商Facturervarchar(255)NONULL联系人contactervarchar(255)是NULL购买价值worthInt(
30、11)是NULL出厂日期dateFactorydatetime是NULL购买日期buyDatedatetime是NULL维修站电话facturerPhoneVarchar(255)是NULL登记日期registerDatetime是NULL备注remarkVarchar(255)是NULL维修站stationVarchar(255)是NULL维修站联系人stationerVarchar(255)是NULL驾驶员PilotVarchar(255)是NULL表 3-6 图书表(t_book.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNU
31、LL书籍编号Snvarchar(255)UNINONULL借阅室RoomVarchar(255)是NULL作者AuthorVarchar(255)是NULL出版社PresserVarchar(255)是NULL是否已借出Borrowedbit(1)NONULL1313登记时间DateDatetime是NULL类型typeInt(11)MULNONULL备注decriptionVarchar(255)是NULL表 3-7 图书类型(t_bookTYPE.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNULL类型namevarchar(25
32、5)UNINONULL表 3-8 借书表(t_borrowbook.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNULL类型BookInt(11)MULNONULL借书人BorrowerInt(11)MulNONULL时间TimeDatetimeNULL表 3-9 通信录(t_commRecord.frm)字段含义字段含义字段名称字段名称类型类型KeyNull默认默认记录号Idint(11)PRINoNULL联系人personNamevarchar(255)NONULL性别Sexvarchar(255)是NULL家庭电话Phoneva
33、rchar(255)是NULL手机Mobilevarchar(255)是NULL地址Addressvarchar(255)是NULL所属组Groudvarchar(255)是NULLQQQQvarchar(255)是NULLEmileEmilevarchar(255)是NULL14144 4系统开发技术系统开发技术介绍介绍本系统在开发技术上采用了 Struts+Hibernate+Spring 集成模式,MySQL 作为数据库,下面介绍 Struts、Hibernate、Spring 和 MySQL 的情况。4 41 1 Struts,Hibernate,Spring 的来龙去脉的来龙去脉St
34、ruts 最早是作为 Apache Jakarta 项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高 JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts 这个名字来源于在建筑和旧式飞机中使用的支持金属架,这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑,这也是一个解释 Struts 在开发 Web 应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用 Struts 为业务应用的每一层提供支持。它的目的是为了帮助我们
35、减少在运用 MVC 设计模型来开发 Web 应用的时间4。 由于 Hibernate 在32对象与数据库的映射中已经介绍过,这里不再讲述。 Spring 是一个开源框架,它由 Rod Johnson 创建,它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益,它的设计目的是:解决企业应用开发的复杂性,主要功能:使用基本的 JavaBean 代替 EJB,并提供了更多的企业应用功能,简单
36、来说,Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架5。 JSTL(JSP StandardTagLibrary,JSP 标准标签库)是一个不断完善的开放源代码的 JSP 标签库,是由 apache 的 jakarta 小组来维护的。由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器( ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义, format 标记
37、库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来1515查询关系数据库的操作6。JSTL 的优点:在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB 应用在各应用服务器之间的移植。简化了 JSP 和 WEB 应用程序的开发。以一种统一的方式减少了 JSP 中的 scriptlet 代码数量,可以达到没有任何scriptlet 代码的程序。在我们公司的项目中是不允许有任何的 scriptlet 代码出现在 JSP 中。允许 JSP 设计工具与
38、WEB 应用程序开发的进一步集成。相信不久就会有支持 JSTL 的 IDE 开发工具出现。42 SSH(Struts+Spring+Hibernate)的优势)的优势典型的 J2EE 三层结构,分为表现层、中间层(业务逻辑层)和数据服务层(数据持久层) 7。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。 表现层是传统的 JSP 技术,自 1999 年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。 中间层采用的是流行的 Spring+Hibernate,为了将
39、控制层与业务逻辑层分离,又细分为以下几种。 Web 层,就是 MVC 模式里面的“C”(controller) ,负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC 框架采用 Struts。 Service 层(就是业务逻辑层) ,负责实现业务逻辑。业务逻辑层以 DAO(Data Access Object)层为基础,通过对 DAO 组件的正面模式包装,完成系统所要求的业务逻辑。 DAO 层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。 PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象
40、方式操作数据库,该系统采用 Hibernate 作为 ORM 框架。 Spring 的作用贯穿了整个中间层,将 Web 层、Service 层、DAO 层及 PO 无缝整合,其数据服务层用来存放数据。 1616 不可否认,对于简单的应用,采用 ASP 或者 PHP 的开发效率比采用 J2EE 框架的开发效率要高。甚至有人会觉得:这种分层的结构,比一般采用 JSP + Servlet 的系统开发效率还要低,下面用几个角度来阐述这个问题:1)开发效率:软件工程是个特殊的行业,不同于传统的工业,软件产品的后期运行维护是个巨大的工程,单纯从前期开发时间上考虑其开发效率是不理智的,也是不公平的。众所周知
41、,对于传统的 ASP 和 PHP 等脚本站点技术,将整个站点的业务逻辑和表现逻辑都混杂在 ASP 或 PHP 页面里,从而导致页面的可读性相当差,可维护性非常低。即使需要简单改变页面的按钮,也不得不打开页面文件,冒着破坏系统的风险。但采用严格分层 J2EE 架构,则可完全避免这个问题。对表现层的修改即使发生错误,也绝对不会将错误扩展到业务逻辑层,更不会影响持久层(数据库层) 。因此,采用 J2EE 分层架构,即使前期的开发效率稍微低一点,但绝对值得的。2)需求的变更:很少有软件产品的需求从一开始就完全是固定的。客户对软件需求,是随着软件开发过程的深入,不断明晰起来的。因此,常常遇到软件开发到一
42、定程度时,由于客户对软件需求发生了变化,使得软件的实现不得不随之改变。当软件实现需要改变时,是否可以尽可能多地保留软件的部分,尽可能少地改变软件的实现,从而满足客户需求的变更?答案是采用优秀的解耦架构。这种架构就是J2EE 的分层架构,在优秀的分层架构里,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依赖于 DAO 层,也不会与任何具体的 DAO 组件耦合,而是面向接口编程,采用这种方式的软件实现,即使软件的部分发生改变,其他部分也尽可能不要改变。 技术的更新,系统的重构:软件行业的技术更新很快,虽然软件行业的发展不快,但小范围的技术更新特别快。一旦
43、由于客观环境的变化,不得不更换技术时,如何保证系统的改变最小、代码复用率最高呢?答案就是选择优秀的架构。 采用 Hibernate 作为持久层技术的最大的好处在于:可以完全以面向对象的方式进行系统分析、系统设计。DAO 模式需要为每个 DAO 组件编写 DAO 接口,同时至少提供一个实现类,根据不同需要,可能有多个实现类。通常情况下,引入接口就不可避免需要引入工厂来负责 DAO 组件的生成。Spring 实现了两种基本模式:单态模式和工厂模式,而使用 Spring 可以完全避免使用工厂模式,因为 Spring 就是个功能非常强大的工厂,因此,完全可以让 Spring 充当 DAO 工厂。 17
44、17 由 Spring 充当 DAO 工厂时,无须程序员自己实现工厂模式,只需要将 DAO 组件配置在 Spring 容器中,由 ApplicationContext 负责管理 DAO 组件的创建即可,借助于 Spring 提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用 DAO实例。 因此基于 SSH(Struts+Spring+Hibernate)三层架构结合的这种开发模式,层次分明,耦合度低,易于维护。4 42 2 选择选择 MySQLMySQL 数据库的好处数据库的好处MySQL 作为一种开放源码数据库8,以其简单易用的特点广泛被广大用户采用, MySQL 虽然是免费的,但同
45、 Oracle, Sybase, Informix, Db2 等商业数据库一样,具有数据库系统的通用性:1) 数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS) ,MySQL 完全具有这方面的功能。2) 关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MySQL 也是关系型的数据库系统,支持标准的结构化查询语言(Stru
46、ctured Query Language) 。3) 开放源码数据库。同商业性的数据库相比,这是 MySQL 最大的特点。MySQL的源码是公开的,这就意味着任何人,只要遵守的规则都可以对 MySQL 的源码使用、修改以符合自己特殊的需求。4) 技术特点。MySQL 是 C/S 架构的服务器,服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如 C、C+、Java、Perl、PHP、Tcl 等,也提供了简单的管理工具,如 mysqladmin,mysql 等。 正因为 MySQL 的源码是公开的,使得我们有机会从源码级,更深入的了解MySQL。从这一层面上可以探求、了解 MySQL 数
47、据库的特性:1) 开发语言为 C/C+,支持多种编译器,如 gcc, cc, xlc, aCC 等2) 良好的内存管理机制,尤其是内存泄漏的管理,通过了 Purify 的严格测试18183) 支持多种平台,如 AIX、Solaris、HP、FreeBSD、Tru64、SGI、Windows 等4) 提供多种形式的,为我们开发工具的选择提供了便利 5) 使用多线程的技术,可充分发挥系统的特点,避免在 SMP 系统中出现仅使用单CPU 的现象6) 对磁盘表的管理采用 B 树加密及索引的技术,为我们快速访问数据提供了可能7) 高性能的内存申请技术8) 临时表采用在内存中以哈希表实现9) 提供多种数据
48、类型,如 signed/unsigned integer, double, blob 等10)支持定长的和变长的纪录11)所有的列都有缺省值,为我们的某些“粗心”提供了方便12)灵活、安全的权限和密码系统,密码在传输中加密传送,允许主机端验证密码13)客户端可以通过 TCP/IP、Unix 套接字、命名管道(NT)连接到 MySQL 数据库服务器14)提供 Windows 端的 ODBC 连接15)对多种字符集的完全支持 MySQL 有如此多的特点,又由于其免费的特点,这就给许多的中小应用提供了不错的选择。尤其是对一些中小企业,无论是从降低成本,还是从性能方面,采用MySQL 作为其数据支撑系
49、统,都是一种可行的方案。5系统各模块的设计与实现系统各模块的设计与实现所谓的模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化9。我们根据系统用的类型的不同,把本系统分为系统权限模块、公文流程控制模块、基本信息模块三大部分,这里基本信息模块由我来完成,在这节也只介绍基本信息模块。在本节中,为了便于介绍,我把系统基本信息模块根据其不同的功能又细分为公共信息、行政办公、邮件管理以及三者结合的快捷
50、连接功能的我的办公桌,公共1919图 5.1 系统首页信息包括公告通告、新闻报告;行政办公包括会议管理、资产管理、车辆管理、图书管理;邮件管理包括收件箱、发件箱、垃圾箱等。下面就根据这些不同功能的模块来逐一介绍。5 51 1 系统基本信息模块系统基本信息模块5 51 11 1 系统首页介绍系统首页介绍本系统的首页是“我的办公桌” , “我的办公桌”包括有系统基本信息模块中的关于用户个人的重要信息的快速连接,并且在首页还默认显示了对用户非常重要的四种基本信息,包括系统最近发布的公告通知、新闻报告、会议通知以及其他用户发来的待我审批的公文等,可以在这些信息的标题上进行快速连接,到达此条信息的浏览页
51、面(如图 5.1 所示) 。512 我的通信录的实现我的通信录的实现我的通信录模块是给用户方便管理自己的通信信息的,用户可以在这里方便的添加自己的通信录组,例如我的好友、亲人(如图 5.2 所示)等。然后在各组中进行添加(如图 5.3 所示) 、更改、删除自己的相应的通信记录。图 5.2 我的通信录20205 51 13 3 新闻管理功能的实现新闻管理功能的实现新闻模块让新闻模块用户可以很快了解本系统管理员发布的最近新闻消息,一般的用户只可以查看新闻,而如果本系统的权限管理(杨云彬同学完成)允许该用户对新闻模块进行添加、更新、删除的话则该用户可以对本系统的新闻模块进行增、更、读、删(C、U、R
52、、D) 。这里以一个具有对新闻模块进行(C、U、R、D)的管理员为例进行说明。首先管理员进入新闻模块的主页(/news/index.jsp,如下图5.4 所示) ,然后可以发布新闻、更改新闻和删除新闻。图 5.3 添加我的好友2121图 5.4 新闻主页5 51 14 4 公告通知功能的实现公告通知功能的实现公告通知是管理员向用户发出的系统通知,它可以让用户及时接收到上级或者管理员的通知。一般的用户也只能浏览公告通告,而如果本系统的权限管理(杨云彬同学完成)允许该用户对公告通知进行添加、更新、删除的话则该用户可以对本系统的公告通知进行增、更、读、删(C、U、R、D)。这里以一个具有对公告通知进
53、行(C、U、R、D)的管理员为例进行说明。公告通知的实现和新闻模块的实现一样,首先管理员进入公告通知的主页,然后可以发布公告、更改公告和删除公告。5 51 15 5 会议通知功能的实现会议通知功能的实现会议通知是管理员(或者上级)向用户发布的开会通知,用户可以接收到自己的会议通知。本系统的会议通知可分为个人级接收的会议和机构级的公共会议,个人级接收的会议是发布会议人向个人发布的会议,个人可以根据个人登录账号接收;公共会议级的会议根据用户所在的机构的标识来接收。同样,会议的权限也分为增、更、看、删(C、U、R、D) ,用户根据本系统的权限管理模块分配的权限进行对本模块功能进行操作。现在以一个具有
54、进行会全部权限的管理员为例说明。进入会议首页(/meetng/index.jsp 如图 5.5 所示) ,管理员可以在这里方便添加会议信息、更新会议信息和删除掉不再需要的存在的会议信息,还有管理员可以单击会议主题进入浏览该会议信息的详细内容。2222图 5.5 会议首页5 51 16 6 资产管理功能的实现资产管理功能的实现资产管理是管理员对企业各类资产的管理,在本系统中,管理员可以非常方便地对企业的资产进行登记管理。首先进入资产管理的首页(/property/index.jps,如图5.6 所示) ,然后管理员可以公司资产进行登记(如图 5.7 所示)维护、删除登记记录等。5 51 17 7
55、 车辆管理功能的实现车辆管理功能的实现车辆管理本来为资产管理的一部分,考虑到车辆贵重,以及它特有的一些特性,例如维修、司机等,将此功能从资产管理中独立出来。车辆管理的首页图 5.6 资产管理首页2323图 5.8 车辆信息首页(/car/index.jsp),如下图 5.8 所示,在这里管理员可以看到立即看到每车辆的详细,还有管理员可以添加、更新以及删除车辆的信息。5 51 18 8 图书管理功能的实现图书管理功能的实现图书是一个企业或者公司非常重要的一功能,本系统的图书管理的功能包括图书类型的添加、更改、删除;图书的添加、更改、删除、借书、还书的功能;其中图书的添加、更改、删除、借书等操作为
56、管理员特有,借书和图书的查找为所有用户都拥有的权限;现在为一个具有图书所有操作的管理员为例进行介绍本功能。管理员进入图书管理首页(/book/index.jsp), 可以对图书进行查询、添加、查看我借的图书(如图 5.9 所示)、管理图书的类型、借书、还书、更新图书等操作。图 5.9 我借的图书24245 51 19 9 邮件服务功能的实现邮件服务功能的实现邮件服务是 Internet 上使用人数最多且最频繁的应用之一,目前大部分的邮件系统采用“简单邮件传输协议(Simple Mail Transfer Protocol) ”,通过存储转发式的非定时通信方式完成发送、接受邮件等基本功能。邮件服
57、务是本系统的基本信息服务的难点实现功能,在本系统的邮件服务功能为用户提供了发件箱、收件箱二个基本功能,不过只能在系统中实现,不能与 Internet 上的其它服务器连接使用。邮件服务可以为企业、公司的员工间方便进行相互联系,是实现企业公司的信息化办公的不可缺少的一项基本服务功能。本系统的邮件服务采用 WinWebMail 作服务器, Jmail 作为服务器端发送组件,其具体实现的功能请看系统源文件。下面以一个例子说明该模块功能。如下图 5.10 所示为用户发送邮件界面。它支持文件发送,编辑器采用目前非常流行的 FckEditor 编辑器,便于用户排版邮件内容。当用户发送邮件后,邮件服务器便根据
58、收件人地址把邮件放到收件人的收件箱中。5 52 2 系统基本信息功能重要实现方法系统基本信息功能重要实现方法5 52 21 1 页面分页页面分页系统有时候需要从数据库中提取非常多的数据,如果将大量的数据在一个页面中从开始到最后全部一下子展现出来,一定会让用户感到头晕。为了解决此问题,本系统采用了目前非常流行使用并且性能强大的 Pager-taglib 标签来进行分页。下面先来简单介绍下 Pager-taglib。图 5.10 用户发送邮件2525Pager-taglib 支持多种风格的分页显示。实际上她是一个 JSP 标签库,为在 JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合
59、,会形成多种不一样的分页页面,风格各异,她自带的 DEMO 就有七种左右的分页风格,包括Google 的分页风格。而需要订制自已的风格的分页页面也非常简单。 分页方式有两种:1)是从 Action 中得到一个 List,在页面上通过进行自动分页。2)是通过把 pageSize,pageNo 两参数传给后台进行数据库分页。本系统采用第二种分页方法,统一将系统每页显示 10 条数据,并且是 Google的分页风格。具体的实现为方法如下:/* 根据 HQL 语句进行分页查询* param hql HQL 语句* param params HQL 语句带的多个参数值 * param offset 从第
60、几条记录开始查询* param pagesize 每页显示多少行 * return */public PagerModel searchPaginated(String hql,Object params,int offset,int pagesize)/获取记录总数String countHql = getCountQuery(hql);Query query = getSession().createQuery(countHql);if(params != null & params.length 0)for(int i=0; i 0)2626for(int i=0; iparams.le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广告安装委托合同7篇
- 过户车辆转让协议与运动员参赛合同8篇
- 2025年南昌货运从业资格证模拟考试试题题库答案
- 项目启动会议纪要与决策记录
- 中秋福利采购合同
- 委托代理进口合同协议书
- 2025年天津货运上岗证考试考哪些科目
- 2025年蚌埠驾校考试货运从业资格证考试题库
- f2025二手商铺买卖合同8篇
- 《2.2分子结构与物质的性质》说课稿
- 夫妻离婚协议书范本2024
- GB/T 3920-2024纺织品色牢度试验耐摩擦色牢度
- 北京市海淀区2024-2025学年八年级上学期期末考试数学试卷(含答案)
- 2025年南京旅游职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 二零二五年度房地产代理合作协议4篇
- 十八项核心制度
- 2024年09月2024届山东威海市商业银行秋季校园招聘笔试历年参考题库附带答案详解
- 2025年北师大版数学六年级下册教学计划(含进度表)
- 2025年临床医师定期考核必考复习题库及答案(620题)
- 八年级物理全册全套试卷测试卷(含答案解析)
- 2024年黑龙江林业职业技术学院单招职业技能测试题库完整答案
评论
0/150
提交评论