【Java开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了Java开源代码-基于SSH2的企业人事管理系统研究与实现 - 硕士论文的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
西南交通大学 硕士学位
论文基于SSH2的企业人事管理系统研究与实现 别:硕士 专业:交
通信息工程及控制 指导教师:文登敏 20100501 西南交通大学硕士研究生学位
论文 第1页 摘 要 Java技术随着Internet的迅猛发展,已经成为软件业的主流技术。
为了编码的规范化和标准化,各种框架技术不断涌现出来,其中最有名的是Struts2、Spring和Hibernate。
与传统的SSH(Strutsl+Spring+Hibernate)架构相比,Struts2+Sprin92+Hibernate3的全新架构的优势在于Struts2的全新变化。
Struts2.0版本是在2007年推出的全新框架,它改进了Strutsl的一些主要不足。
相对于Strutsl,Struts2采用拦截器或拦截器栈将实现用户业务逻辑(Action)同ServiaAPl分离开,可以在Action执行的前后进行动态拦截,简化Action
代码,并且提供了更加丰富的功能,例如数据类型转换、国际化、以及文件上传等。
与此同时,Struts2比Strutsl更加的简单,更加的灵活,例如它取消了ActionForm组件、支持OGNL语言,支持多种视图技术,如Jsp,Velocity,FreeMarker,JasperReports等。
本文首先讨论了Struts2、Sprin92和Hibernate基础及其相关技术,包括各个架构的关键支撑技术。
然后研究了Struts2和Spring整合的方式方法,Spring和Hibernate整合的方式方法,以及Struts2、Spring和Hibernate三种技术整合的最佳方案。
最后在实际项目企业人事管理系统中应用了Struts2、Spring和Hibemate整合技术。
关键字:Struts2;Spring;Hibernate;企业人事
管理系统 西南交通大学硕士研究生学位
论文 第1 I页 Abstract With the rapid development of Intemet,Java technology has become a mainstream。
technology of software industry.In order to realize standardize and standardization ofencoding,a variety of frameworks technology come to the fore,among them,the mostfamous iS the Struts2,Spring,and Hibemate.Comparing With the traditional SSH(Struts 1+Spring+Hibernate)structure.a new architecture of Struts2+Sprin92+Hibernate3 has theadvantage of the new changes in Struts2. Struts2.0 version launched in 2007 iS a new framework.which improves some of themajor deficiency of Struts 1.Relative to the Struts 1,Struts2 utilizes interceptors orinterceptor stack to separate enable users business 109ic(Action)with the Servlet API,realizing the dynamic block before and after Action executed,simplifying Action Code,andprovides a more rich set of function,Such as data type conversion,internationalization,andfile uploads.And more,Struts2 is simpler,more flexible than Struts 1,such as abrogatingActionForm components,supporting for OGNL language,and support multiple viewtechnologies,such as Jsp,Velocity,FreeMarker,JasperReports and SO on. This article first discusses The Struts2,Sprin92 and Hibernate base and its relatedtechnologies,including the key supporting technology for all frameworks.And then westIldy the ways to integrate Struts2 and Spring,the means to integrate Spring and Hibemate,as well as the best practices to integrate Struts2,Spring and Hibemate 3 kinds of technology.Finally,Struts2,Spring and Hibernate integration technology has been applied in the actualproject…-enterprise personnel management system. Keywords:Struts2;Spring;Hibernate;enterprise personnel management system 西南交通大学 曲南父逋大罕 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,同意学校保留 并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本 人授权西南交通大学可以将本
论文的全部或部分内容编入有关数据库进行检索,可 以采用影印、缩印或扫描等复印手段保存和汇编本学位
论文。
本学位
论文属于 1.保密口,在 年解密后适用本授权书; 2.不保密囱,使用本授权书。
(请在以上方框内打“4”)学位
论文作者签名:到、鲡络一 指导老师签名:日期:沙、o一罗29 日期:20lD印 西南交通大学硕士学位
论文主要工作(贡献)声明 本人在学位
论文中所做的主要
工作或贡献如下: 本文针对Struts2和Strutsl各自技术优缺点分析,结合Spring架构和Hibernate架构的关键支撑技术。
重点研究了Struts2和Spring整合的方式方法,Spring和Hibernate整合的方式方法,总结出Struts2、Spring和Hibernate三种技术整合的最佳方案。
最后在实际项目企业人事管理系统中应用了Struts2、Spring和Hibernate整合技术。
在该项目的分析设计中严格采用分层的结构来构建
软件体系架构,使该系统具有良好的开放性、伸缩性和可靠性 本人郑重声明:所呈交的学位
论文,是在导师指导下独立进行研究工作所得的成果。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中作了明确说明。
本人完全了解违反上述声明所引起的一切法律责任将由本人承担。
学位
论文作者签名:釉’=痧 日期:矽19·万29 西南交通大学硕士研究生学位
论文 第1页 第1童绪论1.1研究背景 随着
计算机技术的发展,网络已成为人们获取所需信息资源的一个重要途径。
而单纯的静态页面由于采用单纯的HTML语言组成,缺乏交互性,已经不能满足
网络发展的需要。
因此,为了满足实际的需要,许多网页文件扩展名不再只是以“htm”出现,更多是以“php”、“asp”、“jsp”、“shtml”等为后缀的网页文件,这些都采用动态网页技术制作。
从而Web程序逐渐成为主流,而在Java世界中更是如此。
虽然JSP/Servlet可以很好地完成Web程序,但并不适合开发大型Web程序。
有专家指出,IT应用技术并不难学,难的是标准化和规范化。
每个程序员都有自己的思路和习惯,写出来的
代码自然是五花八门。
因此,各种用于辅助开发的框架大量涌现,这实际是规范化的需要。
纯JSP和用框架写Web谁快?显然是JSP。
但为什么还要使用框架?原因就在于100个人写出的JSP,就有100种写法;而100个人采用框架,
代码基本相似。
使用框架的成功,正缘于其在Java Web层的规范化方面所做的贡献。
目前最著名的框架有Struts、Hibernate和Spring。
这三个框架分别在各自的领域中发挥着作用,如果将三种框架组合使用将能够获得比单个框架时更好效果。
Struts作为第一个基于MVC设计模式的
开源的Java Web编程框架,在业界受到了广泛推崇,得到了普遍应用,已经成为一个主流的Web编程框架。
Struts通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层,从而面上联系较少,耦合度较低,从而大大提高了应用程序的可维护性和扩展性。
Spring是最近几年推出的新型的轻量级的J2EE
开源框架,能够支持许多JavaWeb技术和框架,使得Java/J2EE应用的开发变得更简单更高效。
Spring是基于IoC(InversionofControl,反向控制)和AOP的构架多层J2EE系统的框架,不必在每一层中使用Spring,因为它的良好模块化允许程序员根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IoC使得实现bean的装配变得很容易,它提供了简洁的AOP,并可据此实现Translation Management。
Hibernate是对象/关系映射(ORM,Object/Relational Mapping)的解决方案,将Java对象与对象关系映射至关系数据库中的表格与表格之间的关系,并提供了这个过程中自动对应转换的
方案。
Hibernate是Java应用和关系数据库之间的桥梁,负责Java对象Struts2和关系数据之间的映射。
Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。
Hibernate作为一个ORM工具,很好的解决了持久性
问题。
与传统的SSH(Strutsl 4-spring+Hibernate)架构相比,Struts2+Sprin92+Hibernate3的全新架构的优势在于Struts2的全新变化。
Struts2.0版本是在2007年推出的全新框架, 西南交通大学硕士研究生学位
论文 第2页它改进了Strutsl的一些主要不足。
Struts2是基于另一个优良的MVC框架WebWork之上进行了一次巨大的升级。
相对于Strutsl,Struts2采用拦截器或拦截器栈将实现用户业务逻辑(Action)同Servlet APl分离丌,可以在Action执行的前后进行动态拦截,简化Action
代码,并且提供了更加丰富的功能,例如数据类型转换、国际化、以及文件上传等。
与此同时,Struts2比Strutsl更加的简单,更加的灵活,例如它取消了ActionForm组件、支持OGNL语言,支持多种视图技术,如Jsp,Velocity,FreeMarker,JasperReports等。
在一个项目中根据这三种架构各自的特点将Struts2,Sprin92和Hibernate3有机的整合起来,可使
程序代码更加规范,降低程序的耦合性,提高程序的可维护性和可扩展性。
1.2国内外研究现状 目前,国内外信息化建设已经进入了以Web应用为基础核心的阶段。
Java语言是开发Web应用的最佳语言。
然而,使用Java建立一个不是很复杂的Web应用
系统,也不是一件容易的事情,有很多东西需要仔细考虑,比如,怎样建立用户接口?在哪里处理业务逻辑?怎样持久化数据?这些都可以通过框架解决。
Struts,Spring和Hibernate就是当前最流行和最常用的框架。
Struts是在2001年发布的Web框架。
经过多年的检验和修正,Struts越来越稳定和成熟。
在2007年推出了Struts2.0版本的全新框架,改进了Strutsl的一些主要不足。
Struts2是基于另一个优良的MVC框架WebWork之上进行了一次巨大的升级。
Struts把实现业务逻辑(Action)同Servlet APl分离开,该分离机制采用了拦截器或拦截器栈,将用户的Web请求进行拦截处理,从而提供了更加丰富的功能,例如,数据类型转换、国际化、文件上传等。
S砸ng和Struts都是一种轻量级的J2EE应用程序框架。
Struts注重降级表现和逻辑耦合程度,主要是把业务逻辑和表现层分开,但不涉及业务层和持久层的关联;Spring主要是对业务层的细化,从而更深层次地降低了耦合程度,其核心是一个轻量级的容器container,实现了IoC模式的容器。
而Hibernate也是现在最流行的轻量级持久化框架之一,它是Java应用和关系数据库之间的桥梁,封装了通过JDBC访问数据库的操作。
Struts2、Sprin92和Hibernate3都是当前最流行的轻量级框架,然而在项目开发中将三种框架整合在一起在应用并不多见,因此如何合理有效地将三种框架联合用于项 目开发非常值得研究,具有重要的理论和实际价值。
西南交通大学硕士研究生学位
论文 第3页1.3课题研究目的及意义 本课题主要研究Struts2框架,Sprin92框架和Hibernate3框架在项目中的整合方法。
在一个项目中,三个框架各司其职:1)Struts2框架主要用来解决用户接口uI层,及其与后端应用层之问的交互;管理用户的请求,做出相应的响应;提供一个流程控制器,委派调用业务逻辑和其他上层处理;处理异常;为显示提供一个数据模型;用户界面的校验。
2)Hibernate框架主要负责Web应用的后端,数据持久层的处理,包括如何
查询对象的相关信息、如何存储、更新、删除数据库中的记录等。
3)Spring框架是连接Struts和Hibemate框架的桥梁,是Web应用的中间部分——业务层或服务层,主要负责:处理应用程序的业务逻辑和业务校验;管理事务;提供与其他层相互作用的接口;管理业务层级别的对象的依赖;在表示层和持久层之间增加一个灵活的机制,使得他们不直接联系在一起;通过揭示从表示层到业务层之间的上下文来得到业务逻辑;管理程序的执行。
通过详细全面的研究,给出实用的整合原则,规范复合型Web程序项目的开发。
1.4主要研究内容及成果 截止目前,Struts2概念的提出才三年多,而将这些崭新的技术、理论、理念和应用系统结合在一起,研究其应用的可行性和技术要点便是本文的主要内容。
主要内容包括: 1、深入分析Struts2、Sprin92和Hibernate3技术; 2、面向对象理论的研究和实践; 3、研究Struts2框架、Sprin92框架和Hibemate3框架的整合方法。
4、将需求分析得到的结果转化为切实可行的系统模型,
设计出系统对数据的处理流程;从系统的角度分析将抽象的思路实例化为具体的模块,并且分析各个模块之间的关系;根据各种软硬件的条件与限制,选择合适的方案开发出灵活的、易于交互的、健壮的和能够满足用户需求的软件。
1.5
论文的组织结构 本文正文共分为五章,其后的内容是这样安排的: 第2章,主要讨论了Struts2、Sprin92和Hibernate基础及其相关技术,包括各个架构的关键支撑技术。
第3章,主要讨论Struts2和Spring整合的方式方法,Spring和Hibernate整合的方式方法,以及Struts2、Spring和Hibernate三种技术整合的最佳方案。
第4章,基于Struts2、Spring和Hibernate整合技术企业人事管理系统的需求分析与具体的设计以及实现过程。
西南交通大学硕士研究生学位
论文 第4页 总结部分。
对本
论文的工作进行了总结,在实践中应用Struts2、Spring和Hibernate整合技术的研究成果和应用价值,以及随着新技术的发展对日后工作进一步完善和展望。
西南交通大学硕士研究生学位
论文 第5页 第2章相关技术分析2.1 STRUTS2技术架构分析 Struts2技术架构是2007年才推出的~种全新的框架。
它不是Strutsl的升级版本,实际上它是在WebWork的基础上发展而来的。
2.1.1 Struts2与Stmtsl比较 Strutsl作为一个非常成熟的框架,自身具有很多的优点:可以实现MVC模式;具有丰富的标签;页面
导航功能;提供异常处理机制,数据库连接池管理等。
但是随着Web技术的发展,暴露出了Strutsl有许多的缺点: 1对事件的支持不够,在Strutsl中,一个表单Form只能对应一个Action类,这样导致在一个项目中Action类相当的多。
2 Strutsl主要通过JSTL的表达式语言来获取数据,但是JSTL的表达式语言在Collection和索引属性方法处理的不是很好。
3 Strutsl的FormBean把所有的数据都作为String类型,它不能自动进行类型转换,并且类型转换的错误信息返回给用户是非常困难的。
4由于Strutsl的每个Action都通Web层耦合到一起,它的测试依赖于Web容器,测试起来非常不方便。
5 Strutsl的每一个模块有单独的生命周期,但是模块中所有的Action必须共享相同的生命周期。
6 Strutsl支持在ActionForm的validate方法中手动校验,或者通过CommonsValidator的扩展来校验。
同一个类可以有不同的校验内容,但不能校验子对象。
7 Strutsl使用ActionForm对象捕获输入。
所有的ActionForm必须继承一个基类。
因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。
Struts2和Strutl比较起来,在这些方面有了很大的改进: 1在事件处理方面,Struts2在一个Action中可以处理多个事件请求。
2在表达式语言方面,Struts2既可以使用JSTL语言,也支持一个更强大和灵活的表达式语言~一”Object Graph Notation Language”(OGNL)。
3在类型转换方面,Struts2使用OGNL进行类型转换。
提供基本和
常用对象的转换器。
4在测试方面,Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使得测试更容易。
西南交通大学硕士研究生学位
论文 第6页 5 Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。
堆栈能够根据需要和不同的Action~起使用。
6在校验方面,Struts2支持通过validate方法和校验框架来进行校验。
校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性。
7 Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。
Action属性能够通过web页面上的taglibs访问。
2.1.2 Struts2与WebWork的比较 WebWork兴起的时间比较短,尽管他有更加先进的技术优势,但被开发者接受需要时间的验证,而且国内目前使用WebWork架构开发案例的比较少,而Strutsl是目前应用最早的一种MVC架构,已经被大多数开发者所接受并使用,所以Apache公司推出Struts2是有意借助Strutsl在业界的成功来推广Struts2。
。
Struts2和WebWork非常相像,它是以WebWork为核心来实现的。
但是,Struts2和WebWork比较起来,还是存在差别: Struts2不再Webwork2内置的IoC容器,而改为全面支持Spring的IoC容器,以Spring的IoC容器作为默认的对象ObjectFatory。
Struts2创建的对象都是由对象工厂ObjectFactory实例化,ObjectFactory可以集成各种IoC容器,例如Spring、Pico、Plexus等等.这就为Struts2和其它各种框架整合提供了方式方法。
在拦截器方面,Struts2不再支持AroundInterceptor,如果要用到AroundInterceptor,则必须单独引入Webwork2的相关类,或者重写自己的拦截器。
由于Webwork2的富文本编辑器fichtexteditor不好用,且有不少bug。
所以Struts2全面引入了Dojo后,不再支持Webwork2的富文本编辑器richtexteditor,而以Dojo的编辑器取代。
Struts2最大的一个改进是提供了对action名称通配符的支持,而WebWork则没有。
在WebWork中,需要在xwork.xml中以以下方式定义action: <action nalTle=“LoginAction’’class=“coin.action.LoginAction’’> <result name=“sucess’’>/success.jsp</result> <result name=‘‘input’’>/login.jsp</result> </action>而在Struts2中,可以引用通配符配置: <action name=‘‘木LoginAction’’class=“eom.action.LoginAction’,> <result name=‘‘Sucessl’’>/success.jsp</result> <result name=“input’’>/login.jsp</result> </action> 西南交通大学硕士研究生学位
论文 第7页2.1.3 Struts2技术架构的分析 Struts2本质上是从WebWork发展而来,它同时具备Stmtsl.X和WebWork的相关优点。
Struts2本身实现了MVC,并且简化了基于MVC模式的Web应用程序的开发,具有模块化,灵活性和重用性的特点。
从用户的角度来看,Struts2一共包含三大块的内容,分别是Struts2的核心类,Struts2的配置文件和Struts2的标签库。
Struts2的整体架构如图2.1所示。
>truts e H郇se眺t嘲uest】 J l “ 辱嚣 母 ’ 一 。
一 ,‘弘+脯…?·Ⅵ“’ ● 。
、± ActionContextCleanUp 1 厂 Other filters(SiteMesh,etc) I _一 } ‰ FilterDispatcher … …一 l …● 。
7 、 l , ‖j ≯ ,、:Interceptor.1ElAct.i l 、Acti崖Proxy童 : 董 l In£erceptor2盖 : l,一……“‘l t 二一t.^n巍^奠nr~凸p 』 F r…_=:= g 1’ :Interceptor 3盖 Tag Subsystom 降ColfigurationManager】 I l,。
’: HTML,驭帅,forms,etc Action Action 】 l L Jl k J 1lr 帕∞《》—◆。
.r.^一。
I— .