`

struts 1与struts 2对比

阅读更多

 

Strut1

1. 核心控制器是核心控制器ActionServlet,必须继承抽象基类Action,

2. 代码和ServletAPI大量耦合,单元测试必须通过启动Web容器,

3. 只支持JSP作为视图展现。

4. 单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求,需要注意Action的资源。

Struts1是单例模式,也就是所,Web容器(例如:Tomcat)启动的时候,就会实例化一个Action对象,那么所有请求都是用的这个对象。所以当遇到2个请求并发的时候,那么其实他们调用的是同一个类,这个时候当你在Action内部定义属性的时候,就会产生线程同步的问题。

例如:

你在Action定义了一个 int i = 0;

然后在这个Action里面的某一个方法里面对这个i进行操作。当并发的时候就会遇到问题。

所以:我们在用struts1的时候不能在action里面定义属性,要用到只的话只能在方法里面定义。

 

Strut2

1. 核心控制器是核心控制器ServletDispatcher,

2. 代码更像是一个普通的POJO,ServletAPI相关的返回值都是Map,Strut2的系列拦截器会对其进行自动转换。

3. 可以降低代码的污染和更好的复用,支持多种试图展现。

4. 整合了OGNL语言,值栈。

5. 为每一个请求产生一个实例,不存在线程安全问题。

Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题 。所以我们可以在Struts2的Action里面去定义属性。

但是Struts2由于 Action和普通的Java类没有任何区别(也就是不用像Struts1里面那样去实现一个Struts的接口,有兴趣的朋友可以自己去了解),所以我们可以用Spring去管理Struts2的Action,这个时候我们就要注意了,因为当我们在spring里面去定义bean的时候,spring默认是Singleton,我们要改成Prototype。

转载自:http://www.cnblogs.com/NicholasLee/archive/2012/07/08/2581507.html

分享到:
评论

相关推荐

    Struts1和Struts2的区别和对比

    Struts1和Struts2的区别和对比 Struts1和Struts2的区别和对比

    Struts1与Struts2本质区别

    2 线程模式方面的对比:Struts 1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts 1 Action能做的事,并且要在开发时特别小心。Action资源必须是线程安全的...

    Struts1和Struts2的区别和对比.txt

    Struts1和Struts2的区别和对比.txt

    Struts2与Struts1的对比

    本文档对于Struts2与Struts1的一些特性的对比

    struts2与struts的对比

    struts2与struts的对比,简要介绍了struts2,明确了struts2进行了本质上的修改

    Struts1与Struts2的区别

    Struts1与Struts2的区别,让大家更好的对比Struts1与Struts2

    Struts2与Struts1的对比.chm

    关于struts2于struts1对比的资料,对于学习Java及struts的人来说是很有帮助的

    Struts2权威指南

    第1章 Struts 2概述1  1.1 MVC思想概述2  1.1.1 Web技术的发展2  1.1.2 Model 1和Model 24  1.1.3 MVC思想及其优势6 ... 1.4 Struts 2与Struts 1的对比20  1.5 WebWork和Struts 2对比21  1.6 本章小结22

    struts1和struts2的对比

    很好的述说了struts1和struts2的区别

    struts2学习总结

    Struts2 与 struts1 的对比 控制器类: Struts2的控制器不像struts1的那样了 它就是一个简单的pojo 里面包含封装用户的请求参数

    Struts2轻松入门,Struts2总结

    Struts2轻松入门 Struts2总结 Struts2和Struts1.x对比学习

    struts2-指南

    — Web 应用的发展 — Model 1 和Model 2 — MVC 思想 — MVC 模式的优势 — 常用MVC 框架及其特征 — Struts 1 的...Struts 2 的标签库 — Struts 2 的控制器组件 — Struts 1 和Struts 2 的对比

    struts2教程.CHM文档

    本章要点 — Web应用的发展 — Model 1和Model 2 — MVC思想 — MVC模式的优势 — 常用MVC框架及其特征 ...— Struts 1的基本结构及其存在的问题 ...— Struts 1和Struts 2的对比 .......................

    Struts2.0基础知识培训

    — Web应用的发展 — Model 1和Model 2 — MVC思想 — MVC模式的优势 — 常用MVC框架及其特征 — Struts 1的基本结构及其存在的问题 — WebWork的基本结构 — Struts 2的起源 ...— Struts 1和Struts 2的对比

    servlet和struts2对比案例

    servlet和struts2对比案例,工作室案例对比,加深了解。

    struts2标签库

    花费了很长时间,struts2的常用标签的用法都一一进行了与strut1的对比和说明,很是适合学过strut1的人去学习和研究。

Global site tag (gtag.js) - Google Analytics