Filter映射和过滤器

本文详细介绍了Filter在Web应用中的映射配置,包括使用通配符拦截所有请求和通过<dispatcher>元素指定不同访问方式的拦截。讨论了REQUEST、INCLUDE、FORWARD和ERROR四种Dispatcher类型,并以FORWARD为例展示了过滤器对转发请求的拦截过程。同时,介绍了如何通过CharacterFilter类处理全站编码问题,以及如何通过HttpServletRequestWrapper对HttpServletRequest进行包装,以方便设置GET方式请求的编码。
摘要由CSDN通过智能技术生成

Filter映射
1、使用通配符“*”拦截用户的所有请求
Filter E <1n心—西5田-尔N"配直习滤器拦截的资源信息,如果想让过滤器拦截所的请求访问,那么需要使用通配“**”
2、拦截不同方式的访问请求
在web.xml文件中,一(个ilter-mapping>元素用于配置一个Fller 所负责拦数的资源。元素中有一个特殊的子元素<dispatcher,该元素用于指定过滤器所拦数的资源被Servlet容器调用的方式,<dispatcher 元素的值共有4个
1 ) REQUEST
当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是通过RequestDispatcher的include()或forward()方法访问的,那么该过滤器将不会被调用。
2 ) INCLUDE
如果目标资源是通过RequestDispatcher的include()方法访问的,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
3 ) FORWARD
如果目标资源是通过RequsDispatcler的foward)方法访问的,那么该过滤器将被调用。除此之外,该过滤器不会被调用。
4) ERROR !
如果目标资源是通过声明式异常处理机制调用的,那么该过滤器将被调用。除此之外,过滤器不会被调用。
为了更好地理解上述4个值的作用,接下来以FORWARD为例,分步骤演示Filter对转发请求的拦截效果。
2)为了防止其他过滤器影响此次Fller 链的演示效果,请先在web xml文件中注释掉其他过滤器的配置信息。
然后,将MyFilter01和MyFilter02过滤器的映射信息配置在MyServlet配置信息前面

package cn.itcast.chapter08.filter;

import javax.servlet.FilterConfig;
import javax.servlet.ServletException;

public class myFilter3 implements Filter {
   
	private String characterEncoding ;
	FilterConfig fc;
	public void init(FilterConfig fConfig) throws ServletException {
   
		//获取FilterConfig对票
	
	this.fc = fConfig;
	}
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException【参数信息
	characterEncoding=fc.getInitParameter("encoding");
	System.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值