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