花最少的时间了解Struts 2

1. Struts 优缺点
Struts自2001年发布以来,在Web MVC领域拥有大量的用户群。优缺点也显露无疑。
优点:
(1) 标准的MVC实现方式,结构清晰,使开发者更加关注业务逻辑的实现。
(2) 丰富的标签库,使JSP页面开发更加简单。
(3) 通过配置文件实现良好的页面导航机制。
(4) 提供统一的Exception处理机制。
(5) 提供统一的数据库连接池的管理。
(6) 支持国际化等诸多本地操作功能。
缺点:
(1) Action采用单例模式设计,必须是线程安全的。因为在Struts中一个Action用来处理所有用户的请求,故存在资源共享的问题,所以必须考虑线程安全问题。我们的做法是尽可能的不定义类成员变量。
(2) 测试不方便。因Action、ActionForm都与Servlet耦合,这样测试就必须依赖Web容器。
(3) ActionForm与表单的对应关系过于死板。
(4) 只支持单一的JSP视图模式。

2. Struts 2 概述
Struts 2的体系结构与Struts 1差别很大。Struts 2采用Webwork设计核心。Struts 2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。
Struts 2 对Struts 1进行了如下的改进:
 在Action实现方面:Struts 1中必须要求统一扩展自Action类,而Struts 2中Action就是一个简单的POJO。
 在Action设计方面:Struts 1采用单例模式设计,一个Action实例处理所有请求,而Struts 2采用一个请求对应一个Action实例的模式设计,不存在资源共享问题。
 Servlet依赖方面: Struts1的Action依赖于Servlet API,比如Action的execute方法的参数就包括request和response对象。这使程序难于测试。Struts2中的Action不再依赖于Servlet API,有利于测试,并且实现TDD。
 封装请求参数:Struts1中强制使用ActionForm对象封装请求的参数。Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。
 表达式语言方面:Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(Object Graph Notation Language)。
 绑定值到视图技术:Struts1使用标准的JSP,Struts使用“ValueStack”技术。
 类型转换:Struts1中的ActionForm基本使用String类型的属性。Struts2中使用OGNL进行转换,可以更方便的使用。
 数据校验: Struts1中支持覆盖validate方法或者使用Validator框架。Struts2支持重写validate方法或者使用XWork的验证框架。
 Action执行控制的对比:Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的生命周期。Struts2支持通过拦截器堆栈为每一个Action创建不同的生命周期。

从某种程度上看,Struts2是从WebWork2上升级得到的。甚至Apache的官方文档也讲:WebWork2到Struts2是平滑的过渡。我们甚至也可以说Struts2就是WebWork2.3而已。在很多方面Struts仅仅是改变了WebWork下的名称。

目前,Struts已经分化成两个框架:第一个框架是传统的Struts1和WebWork结合后的Struts2。Struts2虽然是在Struts1的基础上发展起来的,但实质上是以WebWork为核心,Struts2为传统的Struts1注入了WebWork的设计理念,统一Struts1和WebWork两个框架,允许Struts1和WebWork开发者同时使用Struts2框架。

Struts分化出来的另一个框架是Shale,这个框架远远超出了Struts1原有的设计思想,它与原有的Struts1的关联很少,它使用全新的设计思想。Shale更像一个新的框架,而不是Struts的升级。而Shale则是建立在JSF之上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值