Struts2 框架及系统架构
- 格式:ppt
- 大小:420.50 KB
- 文档页数:10


基于STRUTS2.0+SPRING+IBATIS技术的WEB开发
摘要:随着b/s多层应用已成为web开发的主流,本文首先介绍了struts2.0、spring、ibatis这三种框架,随后介绍了如何使用这三种框架组合来实现web开发。
关键词:b/s struts2.0 spring ibatis
随着中国软件的发展,不同于c/s软件,用户不需要在每台电脑上安装客户端软件,b/s软件只需要在联网电脑的浏览器中输入网址就可以访问远程的信息,因此b/s软件越来越受到用户的欢迎。b/s软件的开发有很多种方式,有不同的语言,本文主要介绍在struts2.0、spring、ibatis三种框架组合的基础上实现高校宿舍智能化、信息化管理的研究与实现。
1、struts2.0
struts2的体系使用了webwork的设计核心,并大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器与servlet api分离。从数据流图上来看,struts2与webwork相差不大,struts2同样使用拦截器作为处理,以用户的业务逻辑控制器为目标,创建一个控制器代理。控制器代理负责处理用户请求,处理用户请求时回调业务控制器的execute方法,该方法的返回值将决定了struts 2将怎样的视图资源呈现给用户。
2、spring spring是目前java ee 领域中比较流行的一个开源框架,它的目的是为了解决企业应用程序开发的复杂性。spring框架的分层架构允许在不同的层次上选择各种组件,所以spring可以和hibernate、struts以及jsf等框架结合起来。spring框架是一个分层架构,由7个定义良好的模块组成。spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。
组成spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。
3、ibatis
javaEE常⽤开源框架的认识及概述
对javaEE框架的认识 ⼀、什么是框架
通俗的理解,框架是我们软件开发中的⼀套解决⽅案,不同的框架解决的问题是不同的,⽐如MyBatis框架解决的是持久层的问题,springMVC框架解决的是表现层的问题。
需要注意的是,框架它本⾝⾃⼰是不能实现业务上的功能,它只能对,⽐如说持久层、表现层、结构合理性等等,提供⼀些解决⽅案,⽽真正的业务层部分,还需要程序员⾃⼰来提供。所以说,框架可以理解为⼀个半成品,我们选⽤这个半成品,然后加上业务需求(即项⽬中的需求)来最终实现整个的功能。
⽽我们使⽤框架的⽬的其实也很简单,就是为了提⾼开发的效率,⽽不⽤关⼼⼀些繁琐的、复杂的底层代码实现,从⽽把更多的精⼒⽤在需求的实现上。 ⼆、框架能帮我们解决哪些问题
要明⽩框架能解决哪些问题,⾸先要知道三层架构。 三层架构分为三层:
表现层:是⽤于展⽰数据的;
业务层:是处理业务需求的;
持久层:是和数据库交互的。
从这张图可看出上⾯列出的三个框架和三层架构所处的位置。可以看出MyBatis框架是⼀个持久层框架,它是和数据库交互的;⽽下⾯的Spring框架有点特殊,它不属于任何⼀层;SpringMVC框架是处于表现层的,它是⼀个表现层框架。
从这张图可⼤致得出,不同的框架是各司其职的,它们解决某⼀层或者某⼀类的事情。
三、对⼀些主流框架的认识 由于以下具体的框架都没有学过,所以只能说⼀说,我对这些框架的⼤体认识,可能对于某些框架没⽤使⽤过和对⽐过很难对它的优势有深刻的认识,只能在后续的学习中,深⼊理解。1、Struts2框架
Struts2框架处于三层架构的表现层,可以⽤来替代掉Servlet技术,来处理前端访问服务器的请求(如表单、页⾯提交过来的请求),所以Struts2是属于⼀个前端处理的框架。
下图显⽰了Struts2框架在三层架构中的位置:
对于web⽇常的⼯作,⽐如获取请求参数、转发、重定向、校验参数等等,使⽤Servlet技术基本都可以完成。既然使⽤Servlet技术基本都可以完成我们的需求,为什么还要使⽤Struts2这个框架呢?原因在于Struts2有其⾃⾝的优势,相⽐使⽤Servlet,Struts2⽤起来更加⽅便,很多事情它⾃动就帮我们做了,⽽且Struts2还具有更加先进的架构和思想。 对于Struts2框架的历史也⾮常有意思,⼤部分框架不同版本之间性质上不会有什么改变,基本是不断修改bug和完善功能,⽽Struts2和它之前的版本Struts1之间的最⼤区别就是技术上没什么关系,这就要从Struts的历史说起。 在早年Struts2还没出来的时候,Struts1特别⽕,⽤得很⼴,但这时候Struts1的作者⾮常苦恼,因为Struts1当时虽然很好⽤,但是它基于的架构和所有的功能构建都是在Servlet之上(这⾥指的不是Servlet技术,⽽是具体的Servlet类),⽽Servlet是线程不安全的,所以导致整个Struts1框架也是处于⼀种线程不安全状态,使得很多的功能⽆法落实,所以Struts1的作者就很苦恼这个问题,他⼀直在研发新的架构。与此同时,另外有⼀个团队也⾮常苦恼,这个团队(也就是WebWork团队)也开发了⼀款前端处理框架,但是他们是后来⼈,他们看到了Struts的缺陷,于是他们开发出来的框架同样也是基于Servlet技术,但它们基于的是Filter(过滤器),这样设计出来的框架会灵活很多,⽽且从架构上来说彻底摆脱了线程安全问题。可是当时满⼤街⽤的都是Struts1框架,WebWork团队⾟⾟苦苦开发出的框架根本没⼈⽤,推⼴不出去。于是,WebWork就想了⼀个办法,找到了Struts1的作者想要⼀起合作,Struts的作者看到这个新的框架后,两者⼀拍即合,于是有了Struts2框架。所以Struts2的前⾝就是WebWork,⽽Struts1和Struts2两者基本是两个不同的框架,当然后来Struts1的作者也把⾃⼰之前想要在Struts1中实现的想法带⼊到了Struts2中来,所以现在的Struts2框架是⼀个强强联⼿的框架,整合了Struts1和WebWork的优点。 2、SpringMVC
综 合/193 基于Spring+SlruIs2+Hibernate的软件行业管理系统的实现 谭芳芳许彪
摘要:Spring、Struts、Hibernate是近来在J2EE开发中的主流 框架,本文介绍了三种框架的工作原理,并将Spring、Struts2和 Hibernate三种框架进行整合,设计了软件行业管理系统,包括 人员管理、计划管理、任务管理、权限管理等服务。 关键词:Spring;Struts2;Hibernate;软件行业管理系统 中图分类号:F123.16文献标识码:A 文章编号:CN43一lO27/F(2OlO)03—193—01 作者:湖南科技职业学院软件学院;湖南,长沙,410000 一、系统架构设计 目前基于Internet网络平台的Web应用系统在应用软件 系统领域中占据较大的比重,如何高效、快速的进行软件开发变 得非常重要。在以往项目开发中一般采用JSP+Servlet+Jav— aBean的方式。在这种传统开发方式中,虽然相对于Model1已 经有了很大的改进,但是开发人员需要手动实现MVC模式,在 考虑业务逻辑的同时还必须考虑如何进行系统架构。这样既影 响了开发效率,也不利于系统的维护。为了提高开发的效率,并 且进一步改进系统框架的安全性、稳定性以及健壮性,本系统采 用基于MVC模式的Spring、Struts、Hibernate框架的分层 架构。 Spring是一个非常活跃的开源框架,它是一个基于IOC和 AOP来构架多层J2EE系统的框架。Spring不强迫开发人员在 每一层必须使用Spring,因为它在模块化方面做得非常好,它允 许开发人员根据项目的需要选择使用它的某一个模块;Spring 实现了很优雅的MVC,对不同的数据访问技术提供了统一的接 El,采用IOC使得可以很方便的实现对Bean类的装配,提供了 简洁的AOP并据此实现Transaction Management等。Spring 提供了一种轻量级的解决方案,它以一种非侵入式的方式来管 理代码,使得组件之间的依赖达到最小,从而提高组件的重 用性。 ‘ Struts2作为经典的MVC设计模式的一种具体实现,是建 立在当前动态网站设计领域中JSP、Servlet、XML等相关开发 技术基础之上的一种主流开发架构。Struts为Web应用提供 了通用的框架,让开发人员可以把主要精力集中在业务处理方 面。Struts有自己的控制器,同时整合了模型层和视图层的技 术,实现了真正的MVC设计模式,极大地节约了开发人员的 时间。 Hibernate框架自2001年发布以来,经过几年的发展已经 成为当前最流行的持久层解决方案。Hibernate定义为一个对 象/关系数据库映射工具(ORM),它作为开源的持久层框架已 经为众多的软件开发项目所采用。它作为连接Java应用程序 和数据库的中间件,对JDBC进行了轻量级的封装,负责对Java 对象的持久化。在分层结构中处于持久化层,封装对数据库的 访问细节,使业务逻辑层更专注于实现业务逻辑。Hibernate通 过配置文件(hibernate.properties或hibernate.cfg.xml和映射 文件(***.hb札xm1)把Java对象或持久化对象(POJO)映 射到数据库中的数据表,然后通过操作P()J0对数据表中的数 据进行增删改查等操作。通常是将Hibernate框架和其他开源 框架Struts、Spring等联合使用,实现复杂的商业系统。 系统的整体架构方案如下图1所示: 表示层 Struts MVC(Struts Action,Action Form,JSP) 发送请求 l返同结果 业务逻辑层 : Spring T1.ansaction 千 }通信 t DA0层 DAO组f『I: t l通信 ● 持久层 Hibernate框架 JDBC 数据源燧接池
1 配置Action
Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法。
该方法如下:
public String execute() throws Exception
Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方法即可:
public String xxx()
在实际开发中,action类很少直接实现Action接口,通常都是从com.opensymphony.xwork2.ActionSupport类继承,ActionSupport实现了Action接口和其他一些可选的接口,提供了输入验证,错误信息存取,以及国际化的支持,选择从ActionSupport继承,可以简化action的定义。
开发好action之后,好需要对action进行配置,以告诉Struts2框架,针对某个URL的请求应该交由哪个action进行处理。
1. Action映射:
action映射是Struts2框架中的基本” 工作单元”,action映射就是将一个请求URL(即action的名字)映射到一个action类,当一个请求匹配某个action的名字时,框架就使用这个映射来确定如何处理请求。
action元素的完整属性表
例如:
/user.jsp
2. 使用method属性
在配置action时,我们可以通过action元素的method属性来指定action调用的