我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > Struts 2框架介绍以及与Struts1,WebWork比较
总共48086条微博

动态微博

查看: 2074|回复: 2

Struts 2框架介绍以及与Struts1,WebWork比较

[复制链接]

114

主题

29

听众

429

金钱

传功长老

该用户从未签到

跳转到指定楼层
楼主
发表于 2014-08-05 22:02:29 |只看该作者 |倒序浏览
.struts2框架简介

      Struts2以WebWork优秀的设计思想为基础,吸收了Struts1的部分优点,建立了一个兼容WebWork和Struts1的框架,实现了MVC设计模式.Struts2是Struts的下一代产品,它在Struts1和WebWork的技术基础上进行了合并,是一种全新的框架.Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这使得业务逻辑控制器能够与ServletAPI完全脱离开.

.Struts2的特性

1.上手非常容易,可以使用起步教程,使用模板工程或者Maven原型建立struts2工程.

2.良好的设计.struts2中想要处理和HTTP相关的操作,只需要使用Struts框架的接口即可.

3.标签库功能强大,种类丰富.Struts2中所有的标签自带了Table内容,可以方便的处理格式.

4.支持POJO(Plain Ordinary java Object/PlainOld java Object,普通的javaBean)表单.Struts2中可以直接使用javabean获得客户的收入或者将属性表示出来,可以使用任意合适的类型来接受页面传来的数据或者数据表现出来.

5.支持众多的其他开源组件或技术扩展.Struts2可以方便的使用spring管理Struts的action创建,通过使用Spring可以充分的利用Spring的依赖功能,并且能够很好的集成其他的框架.

.Struts2执行流程

(1)客户端浏览器发出HTTP请求。

(2)根据web.xml配置,该请求被FilterDispatcher接收。

(3)根据struts.xml配置,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton。

(4)Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

( 5)Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。

( 6)返回HTTP响应到客户端浏览器。


* d6 k, U( j9 a2 J! h.Struts2框架工作原理

(1)客户端初始化一个执行Servlet容器的请求,这个请求经过一系列的过滤器(Filter),接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action,其中ActionMapper在Web应用启动时根据配置信息加载生成.

(2)如果AcitonMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类.ActionProxy创建一个ActionInvocation的实例,ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及相关拦截器的调用.

(3)一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果.返回结果通常是一个不要被表示的JSP.

.Struts2框架实现MVC设计模式 / T  A' R+ l# V$ {: }

六.Struts2与Struts1,WebWork比较1.Struts1

      Struts1的核心是控制器,由两部分组成:核心控制器和业务逻辑控制器.核心控制器是ActionServlet,由Struts1提供,业务逻辑控制器是用户自定义的action,有应用开发者提供.

整个应用由客户端请求驱动,客户端向web发送的请求被struts1的核心控制器ActionServlet拦截,ActionServlet根据请求决定是否调用业务逻辑控制器处理用户请求,当用户请求完成后,其处理结果通过jsp呈现给用户.如果用户只是希望得到某个URL资源,得有ActionServlet将被请求的资源转发给用户.

2.WebWork

      WebWork是建立在称为XWork的Command模式框架之上的强大的基于Web的MVC框架.它描述了从客户端的一次请求到最后服务器响应的整个执行过程.

      WebWork由Actions,Results,Interceptors三个关键部分组成.其中一个Action代表一次请求或调用.Action类要实现Action接口,它要实现默认的execute方法,并返回一个在配置文件中定义的Result.Results是一个结果页面的定义.它用来指示Actio执行之后,如果显示结果.Interceptors是WebWork的拦截器,拦截Action的请求,在Action执行之前或之后调用拦截方法.

相对于Struts,WebWork的优点(1)aciton无需与Servlet API耦合,更容易测试.(2)action无需与WebWork耦合,代码重用率更高.(3)支持更多的表现层技术,有更好的适应性.

3.Struts2

      Struts2是用户了WebWork和Struts的优点,但是更胜过它们.Struts2的优势所在:

(1)Struts2更加优雅一些,至少Action变成了一个纯粹的POJO,而不再需要实现任何一个接口.

(2)Struts2全面应有DOJO.

(3)Struts借鉴了Spring的方式,提供了对action名称通配的支持.

(4)Struts2引入了消息存储拦截器MessageStoreInterceptor用于存放,检索各种提示,错误消息等,在一个session生命中都可使用.

(5)struts可以使用任何数据访问技术.

七.总结

      这些是Struts2的一些宏观的内容,在每次的学习总,宏观把控好了,至少在细节方面就不会走偏了,更可能让你的学习加速度达到最大.宏观了解一下Struts2的知识,更加有助于以后更好的的学习Struts2.

0 Y6 \+ u3 E: u( T" {+ Z. t1 v2 K+ Z
6 W! N2 Q  S4 m! c2 h  ^

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

3

主题

0

听众

212

金钱

四袋长老

该用户从未签到

沙发
发表于 2016-03-07 17:59:08 |只看该作者
很不错哟,谢谢楼主,受教了。
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表