Struts 2框架介绍

      在我的前一篇博客<<你是否混谈MVC和三层>>层介绍过MVC模式,既然了解了MVC模式,再次我们就来了解一下实现MVC的框架--Struts框架.

.Struts2框架简介

      Struts2WebWork优秀的设计思想为基础,吸收了Struts1的部分优点,建立了一个兼容WebWorkStruts1的框架,实现了MVC设计模式.Struts2Struts的下一代产品,它在Struts1WebWork的技术基础上进行了合并,是一种全新的框架.Struts2WebWork为核心,采用拦截器的机制来处理用户的请求,这使得业务逻辑控制器能够与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管理Strutsaction创建,通过使用Spring可以充分的利用Spring的依赖功能,并且能够很好的集成其他的框架.

.Struts2执行流程

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

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

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

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

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

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

 

.Struts2框架工作原理

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

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

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

.Struts2框架实现MVC设计模式

 

.Struts2Struts1,WebWork比较

1.Struts1

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

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

2.WebWork

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

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

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

3.Struts2

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

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

(2)Struts2全面应有DOJO.

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

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

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

.总结

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值