struts2与struts1的比较

struts2相对于struts1来说简单了很多,并且功能强大了很多,我们可以从几个方面来看:

从体系结构来看:struts2大量使用拦截器来出来请求,从而允许与业务逻辑控制器 与 servlet-api分离,避免了侵入性;而struts1.x在action中明显的侵入了servlet-api.

从线程安全分析:struts2.x是线程安全的,每一个对象产生一个实例,避免了线程安全问题;而struts1.x在action中属于单线程。

性能方面:struts2.x测试可以脱离web容器,而struts1.x依赖servlet-api,测试需要依赖web容器。

请求参数封装对比:struts2.x使用ModelDriven模式,这样我们 直接 封装model对象,无需要继承任何struts2的基类,避免了侵入性。

标签的优势:标签库几乎可以完全替代JSTL的标签库,并且 struts2.x支持强大的ognl表达式。

当然,struts2和struts1相比,在 文件上传,数据校验 等方面也 方便了好多。在这就不详谈了。

一个比较优秀的框架可以帮着我们更高效,稳定的开发合格的产品,不过我们也不要依赖框架,我们只要理解了思想,设计模式,我们可以自己扩展功能,不然 就要 永远让别人牵着走了!

时间: 2024-11-04 13:30:15

struts2与struts1的比较的相关文章

Struts2与Struts1的区别

Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简单来说二者的区别是: 一个是Stuts1 ,一个是Stuts2,这是最大的区别,技术方面,Stuts1有个核心控制器,但是只提供了一个接口,也就是execute,还要配置actionform之类的,很麻烦,所以依赖性比较强:而Stuts2是针对拦截器开发的,也就是所谓的AOP思想,可以配置多个act

struts2与struts1整合,Unable to load configuration. - interceptor-ref ... struts.xml

struts.xml中为了与struts1的MVC模式整合,需要类似如下的拦截器的引用 <interceptor-stack name="integration"> <interceptor-ref name="static-params"/> <interceptor-ref name="loginForm"/> <interceptor-ref name="model-driven"

struts2与struts1整合,java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

原因:我往项目的WEB-INF/lib中导入了struts2基本的包,还有struts1的core包,以及struts2-strut1-plugin的包,但是没有导入commons-loggin-1.3.1这个包,如下图 我打开commons-loggin-1.3.1这个包看了一下,果然找到了这个组件的class文件 看到这个错误的时候,我感觉就应该i啊是commons-logging这个包没有添加导致的,添加上就好了 struts2与struts1整合,java.lang.NoClassDef

struts2与struts1整合,java.lang.InstantiationException, Exception occurred during processing request: null

做了2个action,其中一个运行没有问题,另一个报错,看下面的报错信息,再看了看struts.xml,因为没有给GetBooks这个action配置actionform,所以就导致报null.下面是有问题的struts.xml,其中主要的问题就是没有给GetBooks这个action配置actionform,也就是没有添加那个interceptor-ref name="integration",添加上就好了(这个form在应用的逻辑里面,GetBooks是不需要form的,但是可能是

Struts2重新学习2之struts2和struts1的区别

1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类:Struts 1的一个具体问题是使用抽象类编程而不是接口.Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能.Struts 2提供一个ActionSupport基类去实现常用的接口.即使Action接口不是必须实现的,只有一个包含execute方法的POJO类都可以用 作Struts 2的Action. 2) 线程模式方面的对比:Struts 1 A

小学生之浅谈Struts2与struts1的运行机制

Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数

struts2和struts1的理解

1.Struts 2的基本流程 Struts 2框架由3个部分组成:核心控制器FilterDispatcher.业务控制器和用户实现的业务逻辑组件.在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,而用户需要实现业务控制器和业务逻辑组件.Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件.核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内

struts2和struts1认识

1.Struts 2基本流程 Struts 2框架本身可以大致分3部分:核心控制器FilterDispatcher.业务总监Action与用户实现企业业务逻辑组件. 核心控制器FilterDispatcher是Struts 2框架的基础.包括了框架内部的控制流程和处理机制.业务控制器Action和业务逻辑组件是须要用户来自己实现的.用户在开发Action和业务逻辑组件的同一时候,还须要编写相关的配置文件,供核心控制器FilterDispatcher来使用. Struts 2的工作流程相对于Str

struts1,struts2,springMVC终极对比

最近做项目用到了struts2,之前一直是用struts1和springMVC.感觉到了struts2从很大程度上和这两个还是有很大区别的,所以今天搜集了些资料,给他们做一下对比. Struts1官方已经停止更新,现在用的也比较少,这里主要讲一下struts2和struts1比较都有哪些不同和进步.Struts2可以说不是完全从struts1改进来的,因为struts2原本就是举世闻名的Webwork2,在经历几年的发展之后,struts和WebWork社区决定合二为一,也就是今天的struts