Struts2 概述

 

概述
struts2是一个基于MVC设计模式的web应用框架,作为控制器(Controller)[或表示层]来建立模型与视图的数据交互。他本质上相当于一个servlet,通过扩展实现servlet标准来处理http请求,是在struts和WebWork2的基础上进行了合并的全新的框架。
struts2以WebWork2为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,降低侵入性(侵入式框架和非侵入式框架),struts2可以理解为WebWork2的更新产品,即相对于WebWork2,struts2的变化很小

优势:
 ·POJO表单即POJO操作
struts2去除掉了struts框架中的Action Forms部分,在struts2中你可以用任何一个POJO来接受表单输入,同样的,也可以把任一POJO视为一个Action类,而struts要求必须统一扩展自Action类
 ·绑定值到视图技术
从struts的JSP发展到了struts2的ValueStack技术将值绑定至视图
 ·表达式语言
struts2不仅支持EL表达式,还整合了OGNL(Object Graph Navigation Language)
 ·servlet依赖关系
struts2不像struts一样需要依赖于Servlet API。
 ·模板支持
支持使用模板生成视图
 ·标签支持
struts2改进了标签表单,新的标签表单可以让开发人员减少代码编写量
 ·AJAX支持
struts2创建了类似于标准的struts2标签的AJAX标签
 ·线程模型方面
struts的Action是单实例的,struts2的Action是一个请求一个实例,没有线程安全方面的问题
 ·Action执行控制
struts支持每个模块对应一个请求处理,但是模块中的所有Action必须共享相同的生命周期。struts2支持通过拦截器堆栈为每一个 ·Action创建不同的生命周期。
类型转换
struts2中使用OGNL进行类型转换,可以更加方便地使用
 ·众多内置拦截器
拦截器是AOP技术(Aspect-Oriented Programming)的一种实现策略,struts2中加入了许多内置拦截器,使我们能很方便地对业务进行扩展。


体系结构:
引用流程注解
1.当web容器收到请求(HttpServletRequest),它将请求传递给一个标准的过滤链。(包括ActionContextCleanUp过滤器)。
2.经过Other filters(SiteMesh,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求那个Action,ActionMapper返回一个收集Action详细信息的ActionMapping对象。
3.FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager)从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。
4.ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N),一旦执行结果返回字符串,ActionInvocation负责查找结果字符串对应的Result,然后执行这个Result,Result会调用一些模板(JSP)来呈现页面。
5.拦截器(interceptor N)会在被执行(顺序和Action执行之前相反,即拦截器调用返回的方向)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值