`

web.xml配置struts过滤器struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter和FilterDispatcher的区别

阅读更多

 

 FilterDispatcher是早期struts2的过滤器,后期的都用StrutsPrepareAndExecuteFilter了,如 2.1.6、2.1.8。StrutsPrepareAndExecuteFilter名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doFilter方法,即将request请求,转发给对应的 action去处理。FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.!

StrutsPrepareAndExecuteFilter的优势
       StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的,这样的改革当然是有好处的.!为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html!
       那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.!那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.!
给你打个比喻, 现在有病人要做手术, 现在struts2要做两件事, 搭病床(环境),执行手术.! 那么打麻药的工作呢.? 不可能要病人站着打吧, 所以必须有病床的环境,打完麻药之后再动手术.! 这个比喻非常形象了.!
       如果是2.1.3之前的版本,用org.apache.struts2.dispatcher.FilterDispatcher,
否则,用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
       从Struts2.1.3开始,将废弃ActionContextCleanUp过滤器,而在StrutsPrepareAndExecuteFilter过滤器中包含相应的功能。
       三个初始化参数:
       1、config参数:指定要加载的配置文件。逗号分割。
       2、actionPackages参数:指定Action类所在的包空间。逗号分割。
       3、configProviders参数:自定义配置文件提供者,需要实现ConfigurationProvider接口类。逗号分割.
<span style="font-size:14px;"><filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class> 
    <init-param> 
        <param-name>actionPackages</param-name> 
        <param-value>com.cjm.web.action</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping></span>

 如果程序报类找不到异常,且后面有 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter等信息
可能是你的版本问题.解决方法是确定你的struts版本,如果是2.1.3之前的版本,用org.apache.struts2.dispatcher.FilterDispatcher,以后的版本则配置org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
分享到:
评论

相关推荐

    org.apache.struts2.dispatcher.FilterDispatcher

    `org.apache.struts2.dispatcher.FilterDispatcher`是Struts 2框架中的一个核心组件,它作为Servlet过滤器(Filter)实现,负责处理HTTP请求并将其路由到相应的Action。在深入讲解这个知识点之前,我们先来理解一下...

    新struts2+jQuery所需包.rar

    配置web.xml文件时过滤器配置的不同, &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;, 新版本中都是过时的了,采取该过滤器, &lt;filter-class&gt;org.apache.struts2.dispatcher.ng...

    SSH和SSI等框架常用基础配置web.xml

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; ``` **解析**:这两个过滤器都是用于处理Struts2框架的请求。`FilterDispatcher`是旧版本Struts...

    Struts2.5.2的配置及问题解决

    2. 配置web.xml中的Struts过滤器。 3. 编写struts.xml配置文件。 4. 解决可能出现的依赖问题,如日志和类找不到错误。 5. 验证配置是否成功,通过运行应用来测试。 通过遵循这些步骤,开发者能够有效地配置和使用...

    传智播客struts2全程学习笔记

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/* &lt;/filter-mapping&gt; ``...

    struts2基础知识

    3. 在 web.xml 文件中配置 Struts2 框架的过滤器。 Struts2 框架的过滤器配置 Struts2 框架的过滤器用于拦截 Struts2 框架中的 Action。在 web.xml 文件中,可以使用以下两种方式配置 Struts2 框架的过滤器: 1. ...

    struts2.x所有包及配置文件

    将这些jar包添加到项目的类路径中,并在web.xml中配置Struts2的过滤器`org.apache.struts2.dispatcher.FilterDispatcher`(在较新版本中是`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`...

    Struts2配置

    在Struts2中,需要配置两个主要的过滤器:StrutsPrepareAndExecuteFilter和Struts2的默认配置。 - **StrutsPrepareAndExecuteFilter**:这是Struts2的核心过滤器,负责拦截所有进入应用程序的请求,并处理这些请求...

    Struts2官方例子1(Ant版的)

    在这个例子中,web.xml会包含Struts2的过滤器配置,例如`org.apache.struts2.dispatcher.FilterDispatcher`或`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。这些过滤器负责拦截HTTP...

    Struts2 HelloWorld

    我们需要在项目的web.xml文件中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.FilterDispatcher`或更现代的`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。这个过滤器负责...

    struts2.例子

    在`web.xml`中配置Struts2过滤器是非常重要的一步,因为这会直接影响到Struts2框架的初始化和请求处理流程。以下是文件中的关键部分: ```xml &lt;filter&gt; &lt;filter-name&gt;Struts2&lt;/filter-name&gt; &lt;filter-class&gt;org....

    Spring与Struts2整合

    需要在项目中引入Struts2的依赖,并在web.xml中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.FilterDispatcher`或更新版本的`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。...

    Struts2Jar包

    - 配置Struts2的过滤器(`org.apache.struts2.dispatcher.FilterDispatcher`或`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`,在Servlet 3.0以上的版本推荐使用后者)以拦截所有的HTTP...

    WebSphere Application Server下Struts2.0无法使用解决方案

    这个错误表明WebSphere没有正确识别或加载Struts2的Filter类,即`org.apache.struts2.dispatcher.FilterDispatcher`或其更新版本`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。...

    struts2教程

    过滤器类名为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,配置过滤器映射到/*路径,这意味着所有请求都会经过Struts2的过滤器处理。 以上便是对Struts2框架的全面介绍,包括其历史...

    struts2学习笔记(1)

    为了使Struts2能够正常工作,还需要在`web.xml`中配置过滤器。Struts2通过过滤器处理HTTP请求。 - **不同版本配置示例**: - **2.0及以下版本**: ```xml &lt;filter&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; ...

    struts2中文乱码问题

    综上所述,解决Struts2中文乱码问题的方法主要包括设置JSP页面编码、配置Struts2国际化编码、修改web.xml配置、使用POST请求方式以及自定义过滤器等。开发者可以根据项目的具体情况选择合适的方法来解决中文乱码问题...

Global site tag (gtag.js) - Google Analytics