如果是2.1.3之前的版本,用
org.apache.struts2.dispatcher.FilterDispatcher
,否则用
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
从Struts2.1.3开始,将废弃ActionContextCleanUp过滤器,而在StrutsPrepareAndExecuteFilter过滤器中包含相应的功能。
StrutsPrepareAndExecuteFilter名字已经很能说明问题了,prepare与execute,
前者表示准备,可以说是指filter中的init方法,即配制的导入;
后者表示进行过滤,指doFilter方法,即将request请求,转发给对应的 action去处理。
这样的改革当然是有好处的.因为如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html! 那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.! 那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.!
三个初始化参数:
- 1、config参数:指定要加载的配置文件。逗号分割。
- 2、actionPackages参数:指定Action类所在的包空间。逗号分割。
- 3、configProviders参数:自定义配置文件提供者,需要实现ConfigurationProvider接口类。逗号分割。
<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>
分享到:
相关推荐
综上所述,StrutsPrepareAndExecuteFilter 是 Struts2 框架的核心过滤器,它在每次请求到达时执行预处理和执行操作,确保请求能被正确路由到 Action 并处理响应。通过分析其源码,我们可以深入了解 Struts2 的工作...
1. **StrutsPrepareAndExecuteFilter**: Struts2框架中的`StrutsPrepareAndExecuteFilter`是核心过滤器,负责处理HTTP请求并执行相应的Action。在Struts.xml配置文件中,设置 `...
这个bug是由Struts2上传文件后return SUCCESS...at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:103) 可以完美解决此类struts2的出错问题!
StrutsPrepareAndExecuteFilter是Struts2框架中的核心过滤器,它负责拦截请求并决定是否需要调用某个Action。 当StrutsPrepareAndExecuteFilter被调用时,它首先询问ActionMapper来确定请求是否需要调用特定的...
当`StrutsPrepareAndExecuteFilter`初始化时,它会读取类路径下的默认配置文件`struts.xml`,并将配置内容解析成内存中的JavaBean,后续的请求处理都会基于这些内存中的数据,而不是每次都重新读取配置文件。...
新struts2+jQuery所需包.rar\ 以及老版struts2所需jar包 新Struts2与老版struts2的区别如下: 配置web.xml文件时过滤器配置...<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <filter-name>struts2 <url-pattern>/* ``` 3. **编写Action**: - **Action类**:每个功能对应一个Action类,通常...
Struts 2框架提供了多种内置过滤器,如`TilesFilter`、`StrutsPrepareAndExecuteFilter`等,这些过滤器帮助开发者管理请求和响应,同时提供了一些基本的安全特性。然而,对于更复杂的权限控制,开发者通常需要自定义...
<filter-name>StrutsPrepareAndExecuteFilter <filter-class>com.example.StrutsPrepareAndExecuteFilter</filter-class> <filter-name>StrutsPrepareAndExecuteFilter <url-pattern>/* ``` 3. **...
在web.xml中配置Struts2的核心过滤器`StrutsPrepareAndExecuteFilter`,并创建一个名为`struts.xml`的配置文件,这是Struts2应用的配置中心。 完成环境配置后,可以开始创建第一个Struts2应用。这通常涉及编写JSP...
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <filter-name>Struts2 <url-pattern>/* ``` 2. **Struts2的体系结构**: Struts2的体系结构基于拦截器模型,与...
1.本demo严格按照MVC的分层模式采用myeclipse编写,可直接运行,服务器为tomcat,数据库为mysql。 2.数据库操作使用c3p0连接池和dbtuils组件,...当然需要在web.xml中配置核心filter—strutsPrepareAndExecuteFilter.
在Struts2中,`FilterDispatcher`(在较新版本中被`StrutsPrepareAndExecuteFilter`取代)是核心过滤器,它负责将请求路由到合适的Action。 2. **全局变量(Global Variables)**:在Struts2中,全局变量通常是指在...
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <!-- 引用个具体类文件 --> </filter> <filter-mapping> <filter-name>struts2</filter-name> ...
1. **流程概述**:在Struts2中,请求首先由`StrutsPrepareAndExecuteFilter`处理。如果请求是Action,框架将创建`ActionInvocation`,并通过`ActionProxy`准备`Action`和拦截器链。执行拦截器后,执行`Action`的方法...
Struts2的核心组件包括StrutsPrepareAndExecuteFilter、Action、Interceptor(拦截器)和配置文件。请求首先通过StrutsPrepareAndExecuteFilter,该过滤器根据配置文件决定是否将请求转发给Action处理。Interceptor...
Struts2采用的是前端控制器模式,其中的控制器组件为`StrutsPrepareAndExecuteFilter`过滤器。 - **框架对比**:在Java Web开发领域,Struts2常被拿来与Webwork和SpringMVC等框架进行比较。虽然它们都采用了MVC设计...
2. **自定义配置**:如果需要使用自定义的位置,可以通过`web.xml`文件中的`StrutsPrepareAndExecuteFilter`过滤器进行配置。在`init-param`标签内,可以设置`config`参数来指定配置文件的路径。 在提供的代码片段...
接着,请求被web.xml中的FilterDispatcher(在Struts2.1之后为StrutsPrepareAndExecuteFilter)捕获。这个过滤器根据配置文件(struts.xml)解析请求,确定需要执行哪个Action。ActionMapper负责确定Action的具体类...
首先,我们需要创建一个继承自StrutsPrepareAndExecuteFilter的自定义过滤器类,如下所示: ```java import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax....