过滤器 问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:42:12
在过滤器的doFilter里面总有一个filterChain.doFilter(request, response);到底干嘛的啊
过滤器的doFilter方法这个这个方法有咩区别?有咩关系?我想看看源码,怎么是个抽象的,也不知道谁实例化了他。

神煞J - 见习魔法师 三级
我问的是你的这句:chain.doFilter(request, response);
能详细讲讲吗?

过滤器 首先在 web.xml中配置
<filter-mapping>
<filter-name>encoding(名字)</filter-name>
<url-pattern>/*(有效范围/*代表所有,如果是/page/* 就代表请求page文件路径下的所有请求 都会经过过滤器处理)</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>encoding(对应上面的名字)</filter-name>
<url-pattern>com.test.CharEncoding(过滤器所在位置)</url-pattern>
</filter-mapping>

然后是过滤器写法
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//获得HttpServletRequest
HttpServletRequest req=(HttpServletRequest)request;
//讲所有经过这个 过滤器处理的请求的编码设置为utf-8
req.setCharacterEncoding("UTF-8");
//设置完之后 就继续运行程序
chain.doFilter(request, response);
}

如果程序好吧 一条河流 水在一直往下流
过滤器 就是 在指定位置上 放了个滤网

你要知道
chain.doFilter(request, response);
是什么意思 就要知道 web 程序运行 原理