struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别

问题描述

内容如题~

解决方案

FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.!StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.!这样的改革当然是有好处的.!为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html!那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.!那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.!给你打个比喻, 现在有病人要做手术, 现在struts2要做两件事, 搭病床(环境),执行手术.! 那么打麻药的工作呢.? 不可能要病人站着打吧, 所以必须有病床的环境,打完麻药之后再动手术.! 这个比喻非常形象了.!
解决方案二:
自从struts 2.1.3以后,FilterDispatcher已标注为过时改用StrutsPrepareAndExecuteFilter。在StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml文件完成初始化操作,struts2读取到的struts.xml的内容后,以javabean形式放在内存中,以后 struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件。

时间: 2024-09-19 01:38:42

struts2 FilterDispatcher 和 StrutsPrepareAndExecuteFilter 的区别的相关文章

Struts2 配置问题,在线等

问题描述 最近在学习Struts2,在Tomcat6.0环境下手动创建Web应用,以下是具体的文件:Web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

Struts2.5版本之后Tomcat启动报错问题

初次学习Struts2,本着学习最新版本知识的原则,使用了Struts2.5.5版本.使用2.1版本没有问题,但是2.5版本果然会报错,完全靠自学...我真是解决两个小时啊!对新手来说上手坑真的比较多... 1.导入lib,我们只需要导入一些最小依赖包,下面列出的是我导入的 commons-fileupload-1.3.2.jar commons-io-2.4.jar commons-lang3-3.4.jar commons-logging-1.1.3.jar freemarker-2.3.2

Struts2升级版本至2.5.10,高危漏洞又来了

前情概要 漏洞年年有,最近特别多.2017年3月6日,Apache Struts2被曝存在远程命令执行漏洞,漏洞编号:S2-045,CVE编号:CVE-2017-5638,官方评级为高危,该漏洞是由于在使用基于Jakarta插件的文件上传功能条件下,恶意用户可以通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行任意系统命令,导致系统被黑客入侵. 漏洞分析请移步:https://yq.aliyun.com/articles/72008 建议 如果这个版本在Struts2.3

Struts2 和 Spring MVC 孰优孰劣

最近我在将APDPlat升级到Java8,由于之前有很多的同学希望我把APDPlat的struts2替换为spring mvc,所以我就决定试试看. 本次我把APDPlat的struts2改造为spring mvc的目标是:99.99%不改动JS.HTML.JSP等前端代码,只改JAVA代码!所以大家要先理解我的目标,然后再来看我的做法. 本文我们看两个转换前后的例子: 1.下拉列表服务,此类比较简单,只涉及一个方法store: 使用struts2: @Scope("prototype"

Shiro+Struts2+Spring3 加上@RequiresPermissions 后@Autowired失效

问题描述 @ParentPackage("all")@Namespace("/project")public class ProjectAction extends BaseAction {public final static Logger logger = LoggerFactory.getLogger(ProjectAction.class);@Autowired(required=true)private ProjectService projectServ

struts升级到2.5.2遇到的问题及解决方案(推荐)_java

原来的版本是2.3.x,由于安全原因需要升级到2.5.2. 1,2.5.2版本不再提供xwork.jar ,整合到了 struts-core包中. 2,方法不能访问的问题,需要在每个action配置文件中加上 strict-method-invocation="false": <package name="login" namespace="/login" extends="struts-default" strict-

Struts1和Struts2的区别和对比

  Struts1和Struts2的区别和对比: Action 类:• Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口. • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能.Struts2提供一个ActionSupport基类去实现常用的接口.Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象. 线程模式:• Struts

struts2 ValueStack的set方法与setValue方法的区别

struts2中 ValueStack的set方法与setValue方法的区别呢? 示例代码: Java代码   ActionContext.getContext().getValueStack().setValue("myname22", "ttt");    区别: (1)setValue 方法必须要求有该属性的setter方法,否则会报错: Error setting expression'myname22' with value 'ttt' - [unkno

struts2 延迟加载与一般加载的区别?

问题描述 最近一直在用struts2做一些小项目由于是刚接触,所以对延迟加载和普通加载不是很深入的了解也有在google和百度上面找一些资料,但是都说的太笼统了,还是不很明白,.最后在这里恳求各位高手给指点指点,两者的区别用法,什么时候该用,什么时候不该用,等等最好有demo注释谢谢!!!!!!!!!!!! 解决方案 解决方案二:该回复于2011-03-28 13:23:17被版主删除解决方案三:struts2有延迟加载???那个是hibernate吧?hibernate的延迟加载是,比如说一个