3.为什么要使用struts2代替struts1.x】的更多相关文章

做了2个action,其中一个运行没有问题,另一个报错,看下面的报错信息,再看了看struts.xml,因为没有给GetBooks这个action配置actionform,所以就导致报null.下面是有问题的struts.xml,其中主要的问题就是没有给GetBooks这个action配置actionform,也就是没有添加那个interceptor-ref name="integration",添加上就好了(这个form在应用的逻辑里面,GetBooks是不需要form的,但是可能是…
Struts1和Struts2的区别和对比: Action 类: • Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Action是接口. • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能.Struts2提供一个ActionSupport基类去 实现 常用的接口.Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Act…
struts2相对于struts1来说简单了很多,并且功能强大了很多,我们可以从几个方面来看: 从体系结构来看:struts2大量使用拦截器来出来请求,从而允许与业务逻辑控制器 与 servlet-api分离,避免了侵入性:而struts1.x在action中明显的侵入了servlet-api. 从线程安全分析:struts2.x是线程安全的,每一个对象产生一个实例,避免了线程安全问题:而struts1.x在action中属于单线程. 性能方面:struts2.x测试可以脱离web容器,而str…
Struts2是基于WebWork的一个全新框架.不过有了Struts1的基础,学Struts2更方便.Struts2主要改进是取代了Struts1的Servlet和Action.Struts2的核心框架是当作一个filter来实现其功能的,而Struts1是ActionServlet.然后在Action上,Struts1都少不了要传递Request等参数,还要继承Action父类,而Struts2只要实现了一个public String execute()就可以了,这样Action就可以实现脱…
原因:我往项目的WEB-INF/lib中导入了struts2基本的包,还有struts1的core包,以及struts2-strut1-plugin的包,但是没有导入commons-loggin-1.3.1这个包,如下图 我打开commons-loggin-1.3.1这个包看了一下,果然找到了这个组件的class文件 看到这个错误的时候,我感觉就应该i啊是commons-logging这个包没有添加导致的,添加上就好了…
struts.xml中为了与struts1的MVC模式整合,需要类似如下的拦截器的引用 <interceptor-stack name="integration"> <interceptor-ref name="static-params"/> <interceptor-ref name="loginForm"/> <interceptor-ref name="model-driven"…
转载(没看懂) Action 类 ◆Struts1要求Action类继承一个抽象基类org.apache.struts.action.Action.Struts1的一个普遍问题是使用抽象类编程而不是接口. ◆Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能.Struts2提供一个ActionSupport基类去实现 常用的接口.Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象.…
Struts1工作原理图: 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.(面向对象思想) 2.发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器. 3.form填充:struts的总控制器ActionServlet在用户提交请求时将数…
1.Struts 2基本流程 Struts 2框架本身可以大致分3部分:核心控制器FilterDispatcher.业务总监Action与用户实现企业业务逻辑组件. 核心控制器FilterDispatcher是Struts 2框架的基础.包括了框架内部的控制流程和处理机制.业务控制器Action和业务逻辑组件是须要用户来自己实现的.用户在开发Action和业务逻辑组件的同一时候,还须要编写相关的配置文件,供核心控制器FilterDispatcher来使用. Struts 2的工作流程相对于Str…
1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类:Struts 1的一个具体问题是使用抽象类编程而不是接口.Struts 2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能.Struts 2提供一个ActionSupport基类去实现常用的接口.即使Action接口不是必须实现的,只有一个包含execute方法的POJO类都可以用 作Struts 2的Action. 2) 线程模式方面的对比:Struts 1 A…
转自:https://blog.csdn.net/li15365002374/article/details/9166431?utm_source=blogxgwz1 (1)struts2的execute方法中的参数不会依赖于servletAPI,实现了也servlet解耦,是一种无侵入式的设计. (2)struts2提供了拦截器,利用拦截器可以进行AOP编程,实现权限拦截等功能. (3)struts2提供了类型转换器,我们可以很容易地对请求参数转换成需要的类型. (4)提供了同种表现层技术支持…
此文转于http://www.blogjava.net/sterning/archive/2007/07/17/130892.html Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用.作为最成功的Web框架,Struts自然拥有众多的优点:MVC 2模型的使用.功能齐全的标志库(Tag Library).开放源代码. 但是,正所谓“没有最好,只有更好”,Struts1.x自身也有不少的缺点:需要编写的代码过多,容易引起“类爆炸”.单元测试困难.这些缺点随着…
最近做项目用到了struts2,之前一直是用struts1和springMVC.感觉到了struts2从很大程度上和这两个还是有很大区别的,所以今天搜集了些资料,给他们做一下对比. Struts1官方已经停止更新,现在用的也比较少,这里主要讲一下struts2和struts1比较都有哪些不同和进步.Struts2可以说不是完 全从struts1改进来的,因为struts2原本就是举世闻名的Webwork2,在经历几年的发展之后,struts和WebWork社区决定合二 为一,也就是今天的stru…
Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简单来说二者的区别是: 技术方面,Stuts1有个核心控制器,但是只提供了一个接口,也就是execute,还要配置actionform之类的,很麻烦,所以依赖性比较强:而Stuts2是针对拦截器开发的,也就是所谓的AOP思想,可以配置多个action,用起来比较方便,但是因为请求之前的拦截器有一些注入…
Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简单来说二者的区别是: 一个是Stuts1 ,一个是Stuts2,这是最大的区别,技术方面,Stuts1有个核心控制器,但是只提供了一个接口,也就是execute,还要配置actionform之类的,很麻烦,所以依赖性比较强:而Stuts2是针对拦截器开发的,也就是所谓的AOP思想,可以配置多个act…
最近学习Struts1和Struts2.好多人.提到非常多的信息. Struts2不从Struts1进化. Struts2的前身WebWork. 呢,看了一些资料,下边就来比較比較. 一.架构分析 Struts1的架构图: 运行流程: 1.用户在浏览器端发送请求.server(比方:Tomcat)创建HttpServletRequest和HttpServletResponse对象.并将用户的请求的表单信息放到HttpServletRequest对象中. 2.创建ActionServlet对象,在…
一.Struts1 1.Struts1原理简介 Struts1框架以ActionServlet作为控制器核心,整个应用由客户端请求驱动.当客户端向Web应用发送请求时,请求被Struts1的核心控制器ActionServlet拦截,ActionServlet根据请求决定是否需要调用业务逻辑控制器处理用户请求(实际上,业务逻辑控制器还是控制器,它只是负责调用模型来处理用户请求),当用户请求处理完成后,其处理结果会通过jsp呈现给用户. Struts1,控制器就是它的核心,Struts1的控制器分为…
一.概述 Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的全部请求.Struts1框架有3个重要组成部分:Action.ActionForm和ActionForward对象. ActionForm必须实现ActionForm的基类,设计上并非真正的POJO ActionForward就是一个逻辑视图,通过在配置文件里定义ActionFoward的映射,完毕逻辑视图名和实际视图资源之间的映射 Struts2核心控制器:FilterDispatch…
转载自http://blog.csdn.net/john2522/article/details/7436307/ struts2不是struts1的升级,而是继承的webwork的血统,它吸收了struts1和webwork的优势. 先看struts的Action官方注释(struts1.3.8源代码) /**  * <p>An <strong>Action</strong> is an adapter between the contents of an  * in…
为什么struts2的action是线程安全的,struts1的action不是线程安全的? 先对struts1和struts2的原理做一个简单的讲解 对于struts1 ,当第一次**.do的请求过来时,在内存中的actionmapping中找到相对应的action,然后new出这个action放在缓存中,当第二次一样的请求过来时,还是找的这个action,所以对于struts1来说,action是单实例的 ,只有一个,如果在action中定义变量,就要非常小心了,因为并发问题,可能带来灾难性…
Struts2 概述 1,仍然是一个基于请求响应的MVC框架 2,Struts2不是Struts1的升级 3,Struts2与Struts1的体系结构差距非常大 4,Struts2採用了还有一个MVC框架WebWork的核心设计 5,Struts2更优秀:松耦合设计.. Struts1与Struts2的对照 1,Action方面 Struts1的Action必须继承:Struts1是单例的,存在线程安全问题:控制运行方面.Struts1固定不变的 Struts2的Action能够不继承:Stru…
  特性 Struts1 Struts2 Action Struts1.x要求Action类要扩展自一个抽象基类.Struts1.x的一个共有的问题是面向抽象类编程而不是面向接口编程. Struts2的Action类实现了一个Action接口,连同其他接口一起来实现可选择 和自定义的服务.Struts2提供一个名叫ActionSupport的基类来实现一般使用的接口.当然,Action接口不是必须的.任何使用 execute方法的POJO对象可以被当作Struts 2的Action对象来使用.…
也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里面也有自己的内容) 借助于Spring插件(Struts2-spring-plugin-XXX.jar),我们可以非常简单地完成Spring和Struts2的整合,这种整合包括让Action自动装配Spring容器中的Bean,以及让Spring管理应用中的Action两种方式,不管采用哪种方式,完…
struts2的核心和工作原理   在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就不在提了. 技术优势 Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Servlet API揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业…
Struts2面试题 一.工作原理 一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个…
Struts2官网:http://struts.apache.org/ 目前最新版本:Struts 2.3.24 Struts1已经完全被淘汰了,而Struts2是借鉴了webwork的设计理念而设计的基于MVC的框架.感兴趣的可以了解一下webwork概念,这里不做涉及.我们常说的Struts2 Spring Hibernate三大面试中常被问到的框架,其实Struts2和SpringMVC是两个独立的MVC框架.而且SpringMVC是目前最好的MVC框架(个人感觉),但是由于旧的一些项目运…
struts2的核心和工作原理 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.技术优势 Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Servlet API揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的Java语言进行程序设计. 二是提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所有请求进行处理的关键组件,如…
前言: 接触Struts2已经有一段时间,Student核心内容就是通过拦截器对接Action,实现View层的控制跳转.本文根据自身理解对Struts2进行一个Java实例的模拟,方便大家理解! 示意图 通过以上简单的示意图,我们可以看到Struts2将ServletAPI与业务处理分离,让开发者能够在用户向客户端发送请求的时候通过拦截机制更好的进行业务层处理,提高开发效率.下面我们就通过几个Java类模拟Struts2拦截器的实现. 拦截原理 代码设计: 1ActionInvocation…
Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,成功地结合了 WebWork和Struts1.x 两种 web 框架. Apache Struts2与Struts1完全不同,它的核心功能都是使用拦截实现"值栈"的概念,OGNL(Object-Graph Navigation Language)表达式和Struts2标签来解决应用程序数据,很多注解和约定,使这个框架更加易于使用. Struts2有两方面的技术优势,一是所有的Struts2应…
我们都知道 struts2 是基于webframework 出现的 优秀的mvc 框架, 他和struts1 完全没有联系.struts2 是一个框架, 啥叫框架呢?是一个优秀的半成品 . web的框架在java 中有 webframework  struts2  springmvc.... struts2 和struts1 区别 1.没有任何联系 2.struts2内核是webframework demo1: struts2 的入门demo: 1.web框架的过滤器 <!-- struts 定…