在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ include file="/index.jsp"%>的情况。
到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤
,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。
<filter>
<filter-name>TestFilter</filtername>
<filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
</filter-mapping>
分享到:
相关推荐
在实现 Filter 过滤器时,需要编写一个类去实现 Filter 接口,实现过滤方法 doFilter(),然后到 web.xml 中去配置 Filter 的拦截路径。下面是一个简单的示例代码: public class AdminFilter implements Filter { ...
在这里,`filter-mapping`元素指定了哪些请求应该被这个过滤器拦截。`url-pattern="/*"`表示所有URL路径都应被该过滤器处理;`dispatcher`元素则表明过滤器将处理两种类型的请求:直接的HTTP请求(`REQUEST`)和...
为了在应用服务器中启用 `Urlwriter`,你需要将 `urlrewrite.jar` 文件添加到服务器的类路径中,并在 web.xml 配置文件中配置过滤器: ```xml <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-...
2. **配置Filter**:在`web.xml`文件中,声明你的Filter类以及需要拦截的URL模式。 ```xml <filter> <filter-name>AdminFilter</filter-name> <filter-class>com.atguigu.filter.AdminFilter</filter-class> </...
这个过滤器在`doFilter()`方法中检查每个请求的目标URL(`request.getRequestURI()`),如果目标URL在预定义的`includes`列表中,就使用`RequestDispatcher`的`forward()`方法将请求转发给相应的Servlet处理。...
在`<filter-mapping>`中,`<dispatcher>`元素用于指定Filter拦截资源的方式,常见的值有REQUEST、INCLUDE、FORWARD和ERROR,分别对应不同的请求处理阶段。例如,REQUEST表示用户直接访问,INCLUDE表示通过`...
在这个例子中,"/hello" 请求将被转发到 HelloWorldAction 类,处理后返回 "success" 前向,显示 "hello.jsp" 页面。 2. **Action 类** - 如 "HelloWorldAction.java",这是 Struts 的核心组件之一,它处理 HTTP ...
2. **FORWARD**: 当请求通过`RequestDispatcher.forward()`被转发时,过滤器会被调用。 3. **INCLUDE**: 当请求通过`RequestDispatcher.include()`被包含时,过滤器也会执行。 4. **ERROR**: 当发生错误并重定向到...
- **Struts.xml配置**:这是Struts框架的主要配置文件之一,通常位于项目的`src`目录下。在这个文件中,开发者可以通过`<package>`、`<action>`、`<result>`等标签来定义模块的结构、Action的映射关系以及结果的...
- **请求转发**:使用RequestDispatcher的forward方法,服务器内部跳转,一次请求完成多个资源的处理。 - **重定向**:通过设置响应状态码和Location头实现,浏览器发起新的请求,两次HTTP交互。 6. **会话管理**...
6. **结果转发**:execute()方法返回一个ActionForward对象,指示ActionServlet将请求转发给哪个JSP页面,最终生成动态响应并返回给客户端。 接下来,我们转向Struts2的工作原理: 1. **客户端请求**:客户端发送...
源码展示了如何解析这些XML配置,将它们转化为内部的数据结构,以及如何动态加载和更新配置。 8. **异常处理**:Struts2提供了一套完整的异常处理机制,包括全局异常处理和Action级别的异常处理。源码分析能帮助...
文件内容中存在OCR扫描错误,例如"packageAction"应理解为Java包命名的上下文,"nextval"和"currval"是数据库中序列的相关操作,"filter-class"的正确写法应为"filter-class","requestDispatcher"和"forward"的使用...
为了解决这一问题,通常的做法是创建一个自定义的BirtFilter类,这个类继承自javax.servlet.Filter接口,并重写其方法。自定义的BirtFilter需要能够识别哪些请求是针对BIRT报表的,并将这些请求直接转发到BIRT的处理...
- **解析**:`<filter>`元素用于声明过滤器类,而`<filter-mapping>`元素用于指定哪些资源会被该过滤器拦截。 ### 12. 自定义标签的描述文件配置 - **问题**:自定义标签的描述文件应该如何配置? - **答案**:B. ...
当用户发起请求时,Struts框架会通过前端控制器(Front Controller,即StrutsFilter)拦截请求,然后根据struts-config.xml中的配置转发到相应的Action。Action处理业务逻辑后,通过ActionForward指定下一个页面或...
- **拦截器(Interceptor)**:处理请求的核心组件之一。 - **Action**:负责具体的业务逻辑处理。 2. **工作流程**: - 用户发起HTTP请求。 - 请求首先经过一系列过滤器(如ActionCleanUpFilter等),然后由...
5. **转发机制**:实现ActionForward,控制请求的流向,决定哪个视图将被渲染。 6. **国际化与本地化**:理解并实现资源文件(如.properties)的使用,支持多语言。 7. **异常处理**:设置全局的异常处理器,统一...
在Servlet中,可以使用RequestDispatcher的forward()方法将请求转发到另一个资源,或者使用Response.sendRedirect()方法进行重定向。转发在服务器端完成,而重定向则是在客户端完成。 六、Servlet过滤器 除了...