【PHP开源代码栏目提醒】:网学会员--在 PHP开源代码编辑为广大网友搜集整理了:基于SSH框架的信息发布模块 - 硕士论文绩等信息,祝愿广大网友取得需要的信息,参考学习。
华中科技大学 硕士学位
论文基于SSH框架的信息发布模块 级别:硕士 专业:电子与通信工程 指导教师:王玉明 2011-05-22 摘 要 随着互联网技术的不断发展与迅速普及,网络迅速成为人们获取信息的一个重要来源。
在这样的环境下,信息发布成为企业或部门的普遍需求。
信息发布模块就是为满足信息发布的需求而出现的,它一方面帮助企业或部门对外发布信息,另一方面协助企业或部门进行内部管理。
信息发布模块是企业或部门的信息化建设的一个方面,它可以在一定程度上提高企业或部门的管理效率。
信息发布模块采用流行的浏览器/服务器(B/S)模式,以方便系统的部署和使用。
信息发布模块是利用 java EE 标准下的 SSH 框架,采用 MVC(模型-视图-控制器)的设计模式进行的,这对降低系统的开发复杂度,提高系统开发效率,和提高系统的可复用性、可扩展性和可维护性都有很大的帮助。
本文结合实际运用,对信息发布模块涉及到的相关技术作了简要介绍。
并从信息发布的具体需求出发,根据需求将信息发布模块划分为邮件管理、通知管理和新闻管理等部分。
由对需求的分析,了解其中的业务逻辑关系,从而对模块进行框架设计。
然后根据三大功能模块的划分,分别进行模块流程设计和模块底层设计,并以此指导具体的开发工作。
最后采用白盒测试和黑盒测试相结合的方法,完成信息发布模块的测试工作。
测试结果表明信息发布模块可以很好的满足客户对信息发布的需求。
关键词:信息发布模块,系统开发框架,模型-视图-控制器 I ABSTRACT Along with the development of Internet technology and its rapidly growingpopularity the network has gradually become an integral part of people’s lives andpeople’s access to the network quickly became an important source of information. Just insuch an environment publishing information become a general needs to enterprise ordepartment. Information publishing module is to meet the needs. one hand the informationdistribution system helps enterprises or deparements release information outside on theother hand it assists the internal management of enterprises or departments. Theinformation publishing system can play a good role in the information consturction ofenterprises or deparementsit also can give much help to the promoting the efficiency ofthe management of the enterprises or departments. The information publishing module uses the popular browser/serverB/S model tofacilitate the deployment and use. The design and implementation of informationpublishing system based on the SSH framework under the standard of java EE which alsomake use of the MVCModel-View-Controller design pattern. It reduces complexmiscellaneous of system’s development improve system development efficiency andimprove the reusablity acalability and maintainability of the system. In this paper the related technologies involved in the information publishing systemare briefly introduced. It begins with the specific needs the information publishing systemis divided into e-mail management notification management and news management andso on. The paper analysis of needs get the business logic among three parts and show thedesign of the module frame. And then do the process design and low-level design to theinformation publishing system by the divided of three functional modules which is usedto guide the specific development work. Finallyit uses the mothod of white-box testingand black box testing to complete the testing of the information publishing system. Theresult shows that the information publishing module can meet customer’s needs well.Keywords : Informeation publishing System System Development FrameworkModelViewController II 独创性声明 本人声明所呈交的学位
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除文中已经标明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位
论文作者签名: 日期: 年 月 日 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权华中科技大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描复制保存手段和汇编本学位
论文。
保 密 □,在 年解密后适用本授权书。
本
论文属于 不保密 □。
(请在以上方框内打“√”) 学位
论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 1 绪论1.1 课题背景及来源 随着互联网技术的不断发展与迅速普及,网络已经逐渐成为人民生活中不可或缺的一部分,网络也迅速成为人民获取信息的一个重要来源。
在这样的环境下,信息发布成为企业或部门的普遍需求。
信息发布模块就是为满足信息发布的需求而出现的,它一方面帮助企业或部门对外发布信息,一方面协助企业或部门进行内部管理。
信息发布模块的采用可以很好的促进企业或部门的信息化建设,同时也可以在一定程度上提高企业或部门的管理效率。
本课题受教育部社科研究重大委托课题(编号:10JZDW004)的资助,课题目 ,推进教育部社科管理信息化建的在于建设面向全国高校的社科“科研管理数据库”设,并基于基础数据进行必要的数据挖掘分析,为相关决策支持提供支撑和服务。
信息发布模块采用的是 SSH 框架技术,这与其项目来源“科研管理数据库”对 SSH 框架的采用是密不可分的,而“科研管理数据库”对 SSH 框架的选用也是充分考虑到 SSH 框架在 Web 应用开发中的绝对地位,并成为一种开发趋势。
SSH 框架的采用不但可以很大的简化开发人员的设计开发工作,降低开发难度,并可以很好的保证应用系统的可复用性,可扩展性和可维护性。
1.2 研究目的和意义 课题的目的在于基于 SSH 框架设计并实现一个信息发布模块。
该信息发布模块的主要目标包括:(1)、实现邮件管理功能,方便客户与其内部人员的联系;(2)、 (3)实现通知的发布与管理,提高客户对内部人员的管理效率。
、实现新闻的发布与管理,协助客户发布相关的信息,方便客户的对外宣传等工作。
本课题涉及的信息发布模块是以“社科管理数据库”为依托的,其功能是以科研管理信息化的需求为导向的。
但是,本信息发布模块的功能也有一定的代表性,针对各个企业或部门的不同需求,只需要在本信息发布模块的基础之上作出相应的调整,便可以很好的满足各企业或部门的个性化需求。
而且,由于 SSH 框架的采用,对模块的扩展也是相对容易的。
因此,有该信息发布模块作为基础,开发其他类似需求的信息发布模块,是一件相对简单而容易的事情,工作量相对较小,成本也相对较低。
以该信息发布模块为基础,进行快速开发也是比较有意义的。
11.3
论文组织结构 本文包含六章的内容,具体安排如下: 第一章为绪论部分,主要交代信息发布模块的项目背景,分析信息发布模块的时代需求背景,阐述信息发布模块开发的目的和意义。
最后介绍了整个
论文的组织脉络。
第二章讨论的是信息发布模块的开发所采用的一些核心技术。
首先由大家熟知的 Java EE 架构引入,讲述 Java EE 的体系架构。
在具体开发中为了将数据也显示分离,降低系统的耦合度,以方便管理和维护,系统引入了 MVC 设计模式,本段简要剖析了它的在 java 中的引入和 MVC 设计的核心思想。
而 SSH 框架作为 Java EE 开发中比较流行常用的框架,可以很好的降低系统开发的复杂性。
本章对构成 SSH 框架的 Struts,Spring 和 Hibernate 分别作了简要的介绍。
第三章讨论的是信息发布模块的设计工作。
该章按软件开发的大致流程布置行文顺序,首先对信息发布模块进行需求分析,然后在需求分析的基础上进行模块框架设计和流程设计。
最后在已有的分析设计准备工作的前提下,进行具体的底层设计。
第四章讨论的是信息发布模块的具体实现。
从环境的搭建到邮件管理、通知管理和新闻管理的具体实现。
具体实现的阐述包括各个模块各个功能的的组织与实现。
第五章讨论的是信息发布模块的测试工作,采用白盒测试和黑盒测试相结合的方式,完成系统的测试,测试工作以模块为单位,并在模块测试的基础上进行联合测试。
第六章对本文进行了总结与展望,即对信息发布模块的开发工作的一个总结,并在总结的基础上,分析值得改进的地方。
2 2 相关技术概述 随着信息化的高速发展,越来越多的开发人员使用基于 Java EE 的开发平台进行WEB 应用开发。
在具体的开发过程中为了将数据与表示分离,降低系统的耦合度,提高系统的可维护性,系统引入了 MVC 设计模式,MVC 模式在 WEB 系统的开发中占有举足轻重的地位,MVC 将 WEB 处理各个过程进行合理的划分为三个层次,很好的体现了“高内聚,低耦合”的设计思想2。
Java EE 发展到今天,轻量成为 JavaEE 开发的主流趋势。
SSH(SpringStrutsHibernate)作为一种轻量级的 Java EE 开发框架不仅继承了 Java EE 良好的可复用性、可扩展性和可维护性的特点,还简化了 Java EE 应用的开发,降低了 Java EE 应用的部署成本2。
同时基于 SSH 框架的应用的开发也很好的体现了 MVC 的设计思想。
因此,我们将在下文由 Java EE 引入,对 Java EE 做一个简要的介绍。
接着介绍开发所采用的 MVC 设计模式,分析其产生及运用。
最后对 Java EE 规范下的 SSH框架作一个简要的介绍。
2.1 Java EE 简介 Java EE 是使用 Java 语言进行企业应用开发的一套扩展规范,它提供了基于组件设计、开发、部属和管理企业应用的解决方案1。
Java EE 已经成为企业应用开发的标准,它具有良好的可复用性,可扩展性和可维护性。
基于 Java EE 的企业应用,不受操作系统、硬件平台等软硬件环境的影响,具有很好的可移植性23。
采用 JavaEE 标准的企业应用性能稳定,能够保证长时间的平稳运行,这对绝大部分的企业应用是非常重要的。
Java EE 包含了如:JDBC、JSP、Servlet 等 13 种技术规范4。
这些技术规范的划分是按一定的层次进行的,不同的技术规范负责不同领域的不同工作,对应请求响应处理的不同阶段。
这些技术的采用与有机整合为 Java EE 分层的实现提供了技术保障5。
Java EE 的体系架构一般分为四层:客户层,Web 层,业务层和企业信息系统(Enterprise Information System)层358。
各层的分布与主要工作,简要介绍如下: 1)客户层:运行在客户端,可以是浏览器,也可以是其它应用程序。
浏览器可以访问 Web 层的 JSP/Servelet 等服务。
2)WEB 层:运行在 Java EE 服务器上,它提供的服务主要包括 JSP 和 Servlet 3 等。
3)业务层:运行在 Java EE 服务端,主要负责企业应用系统中具体业务逻辑的 处理工作。
4)企业信息系统:运行在企业信息系统服务端,主要负责业务数据的持久化工 作,是业务层的数据基础。
2.2 Java 中的 MVC Java 语言在 WEB 应用软件的开发方面,有着众多的优势,但它也并不是一簇而 就的。
特别是 MVC 设计模式11的引入,也是经历了一段时间的发展与应用。
下面分 别简要介绍 Java 应用中的 MVC 的产生和 MVC 的基本概念。
2.2.1 Java 中 MVC 的产生 Java 中进行 WEB 开发时,最初采用的是 Java EE 中的 Servlet 技术。
Servlet 技 术能够向客户端浏览器输出动态生成的 HTML
代码,早期被 WEB 开发者所极力推 崇12。
但是问题很快就产生了,Servlet 做了太多的工作,以致流程控制、业务处理、 视图展示等部分的
代码全部揉在一起,这样产生的问题是:开发效率极其低下、维 护成本急剧攀升。
在这样的背景下,为了简化视图开发工作,Java 中的 JSP 技术应 运而生。
JSP 技术能够嵌入 Java
代码,以及输出标准的 HTML
代码,使得视图渲染方面 的工作从 Servlet 中分离出来。
同时也促进了前后开发人员的分工,有效的改善了开 发效率。
但是,由于初期人们对 JSP 的定位并不明确,导致后期大批的业务逻辑代 码从 Servlet 转移到了 JSP 中,结果导致了 JSP 也出现了早期 Servlet 技术所遇到的问 题。
为了解决实际应用中遇到的强耦合问题,Servlet 技术与 JSP 技术进行了联合, 明确了各自的主要工作。
Servlet 主要进行控制作用, 主要负责视图的渲染。
JSP Servlet 接收用户请求,调用底层的 JavaBean 实现具体的业务功能,获取返回结果。
然后将 结果返回给对应的 JSP,JSP 利用已编写好的模板,对传过来的数据进行渲染,最后 由 Servlet 将渲染结果返回给客户端。
此时 MVC 的设计思想才真正应用到 Java 技术中。
根据上面的分析我们可以总 结出,采用 MVC 的实现模式之后,系统负责各层功能的
代码进行了极大程度的解耦, 一方面有利于开发人员进行分工,提供了软件的开发效率;另一方面有利于进行单 元测试,提高了系统的可测性13。
4 需要说明的是,本文讨论的信息发布模块,并不是要重新实现一套完整的 MVC 设计模式,而是选取现有的 MVC 成熟框架,进行相应工作。
MVC 设 计模式的实现框架有很多,本文选取的是 SSH 的组合框架。
2.2.2 MVC 设计模式简介 MVCModelViewController,即“模型视图控制器”12。
它是一种设计模 块,由模型层、视图层和控制层构成。
各层的具体分工141517如下: 视图层(View)代表着系统与用户的交互的界面,与用户距离最近。
它负责用 户请求的接受,及系统响应的显示。
模型层(Model)代表程序的数据和业务逻辑,负责具体的业务处理工作,是系 统业务处理的核心所在。
模型层的独立,有利于系统对业务逻辑部分的复用,提高 效率。
控制层(Controller)连接着模型与视图。
控制层不做任何的数据处理,在有用 户请求的时候,控制层接受请求,后把用户的信息传递给模型,告诉模型应该做什 么,最后选择符合要求的视图返回给用户。
因此,模型和视图是一种多对多的关系, 即一个模型可能对应多个视图,而一个视图也可能对应多个模型。
2.3 SSH 框架简介 SSH 框架包括 Struts2,Spring 和 Hibernate。
SSH 是采用 Java EE 平台技术封装 而来的可复用软件开发框架,它的主要目的是降低软件开发的复杂性,提高软件的 可扩展性、可维护性、和可复用性,以很好的提高开发效率1819。
从前述基础知识得知,我们需要选取的是一款实现了 MVC 设计模式的开发框 架,Struts2 就是其中比较优秀的一个。
Struts2 以其应用的简单性和视图展示方面的 多样性等优势,得到广大开发人员的追捧,成为 Java 领域进行 Web 开发的行业标准。
2.3.1 Struts 简介 模块中我们采用的是 Struts2,Struts2 是一款轻量级的,基于 Java 语言的,实现 了 MVC 设计模式的
开源框架20。
Struts2 与传统的 Struts1 不同,它基于 WebWork 的核心技术实现,扩展了诸多功能,成为 Struts1 的替代品21。
Struts2 主要包括核心 控制器、业务逻辑组件、视图组件等三部分222324的内容。
MVC 设计模式在 Struts2 中的实现,主体体现在: 1 Struts2 核心控制器(FiterDispatcher),它是 MVC 设计模式中 Control 的实现。
5它本身是一个遵循 Java 规范的过滤器 Filter 的实现,主要拦截用户请求,进行全局的调控,包括请求的转发、视图的调用等。
,它是 MVC 设计模式中 Model 的实现。
它主 2Struts2 业务逻辑组件(Action)要进行业务逻辑控制,并调用底层的业务方式,获取最后的结果。
3Struts2 视图组件(JSP 等),它是 MVC 设计模式中 View 的实现。
它主要接收模型层的数据,将其进行渲染后,展示给用户。
目前,Struts2 的视图组件支持 JSP、Freemaker 等多种类型。
虽然 Struts2 已经实现了完整的 MVC 设计模式,但是其模型层 Action 比较薄弱。
因为实际的业务功能,通常比较复杂,它设计到业务过程控制、业务参数处理和数据库操作等,Struts2 的 Action 并没有提供相关问题的处理办法。
为了在基于 MVC设计模式的开发过程中,进一步解耦,以提高开发效率、降低维护成本等,我们将模型层的实现进行了进一步的划分。
基本上分为业务逻辑控制、业务功能实现、数据库持久化三个部分25。
Struts2 的 Action 主要进行业务逻辑的控制,并对传入、传出的参数进行一些预处理。
业务功能的实现以及数据库的持久化操作,则需要我们选择其它的工具。
我们选取 Spring 框架负责业务功能的实现,Hibernate 负责数据库的持久化操作。
2.3.2 Spring 简介 Spring 致力于 Java EE 应用的各层的解决方案,贯穿表现层、业务层和持久层2627 。
Spring 的存在与已有框架并不完全冲突,Spring 的存在使得在分层架构的基础上,可以在不同层次选用不同的组件,例如:StrutsHibernate 等,Spring 可以与他们进行无缝的整合28。
Spring 是一个轻量级容器框架,Spring 框架的整个 JAR 包才 1MB 多,Spring 的引入给企业应用带来的额外开销也非常小。
Spring 的核心思想是控制翻转和面向切面编程28。
至于控制翻转(Inversion of Control简称 IOC),Spring 将原来由对象自己创建或者从容器中寻找依赖对象变为由容器主动地将依赖在对象初始化的时候传递给对象,由此实现控制的翻转29,这样可以大大降低了程序的耦合度。
面向切面编程(Aspect Oriented Programming简称 AOP)的思想也受到了 Spring 的大力支持,Spring 对 AOP 的支持是通过动态代理的方式实现的。
基于 Spring 技术的程序模块可以运行在任何的 Java EE 服务器,具有很好的可移植性和可复用性30。
采用 Spring 技术的企业应用模块化程度相对较高,这给系统测试也带来了一定的便利。
62.3.3 Hibernate 简介 在数据库持久化操作中为了解决关系数据库中关系数据与面向对象编程中的对象之间的隔阂,需要用到 ORM(对象关系映射)思想。
Hibernate 作为对象关系映射 对的轻量级
开源框架, JDBC 进行了很好的封装,正是对象关系映射(Object/RelationMapping简称 ORM)思想的运用,实现对象与关系数据之间的映射31,开发人员可以保持面向对象开发的这样一种思维进行开发,考虑类间的继承关系32,而不用过多的关心关系数据间的依赖,对程序的开发工作提供了极大地便利,因此受到广大用户的青睐。
Hibernate 是对 JDBC 进行封装,完成与数据库的交互。
在与数据库的交互过程中,必须保证数据库中数据的一致性。
而导致数据库中数据不一致的主要原因是一次操作涉及到多次与数据库的交互,而一旦在操作的过程中出错,导致与数据库交互的中止,即操作只完成了一部分与数据库的交互任务。
为了避免以上情况的发生,Hibernate 引入了事务机制3536。
在 Hibernate 的 session 建立后,如果有必要,可以引入事务,事务中定义的是一系列的数据库操作。
事务中的
代码要么全部执行成功,即顺利提交;要么执行到事务中的某一段出现异常,这时由于在出现异常前已经有一部分的数据库操.