目录
chain.doFilter(request, response); 这行代码的作用:
在web.xml文件中进行配置的时候,Filter的执行顺序是什么?
使用@WebFilter的时候,Filter的执行顺序是怎样的呢?
Filter 过滤器介绍
- Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是Servlet 程序、Listener 监听器、Filter 过滤器。
- Filter 过滤器它是 JavaEE 的规范,也就是一个接口。
- Filter 过滤器它的作用是拦截请求和过滤响应。拦截请求常见的应用场景有权限检查、日记操作、事务管理等等。例如:登录验证,统一编码处理,敏感字符过滤~~
-
Filter是什么,有什么用,执行原理是什么?
-
-
在图 1 中,当浏览器访问 Web 服务器中的资源时,需要经过两个过滤器 Filter1 和 Filter2。首先 Filter1 会对这个请求进行拦截,在 Filter1 中处理完请求后,通过调用 Filter1 的 doFilter() 方法将请求传递给 Filter2,Filter2 处理用户请求后同样调用 doFilter() 方法,最终将请求发送给目标资源。当 Web 服务器对这个请求做出响应时,也会被过滤器拦截,但这个拦截顺序与之前相反,最终将响应结果发送给客户端浏览器。
-
Filter是过滤器。
-
Filter可以在Servlet这个目标程序执行之前添加代码。也可以在目标Servlet执行之后添加代码。之前之后都可以添加过滤规则。
-
一般情况下,都是在过滤器当中编写公共代码。
Filter过滤器功能实现
-
1在HttpServletRequest到达 Servlet 之前,拦截客户的HttpServletRequest 。根据需要检查HttpServletRequest,也可以修改HttpServletRequest 头和数据。
2在HttpServletResponse到达客户端之前,拦截HttpServletResponse 。根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。
3 Filter接口中有一个doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,doFilter方法中有一个filterChain对象,用于继续传递给下一个filter,在传递之前我们可以定义过滤请求的功能,在传递之后,我们可以定义过滤响应的功能
-
一个过滤器怎么写呢?
-
第一步:编写一个Java类实现一个接口:jarkata.servlet.Filter。并且实现这个接口当中所有的方法。
-
- init方法:在Filter对象第一次被创建之后调用,并且只调用一次。
-
doFilter方法:只要用户发送一次请求,则执行一次。发送N次请求,则执行N次。在这个方法中编写过滤规则。
-
destroy方法:在Filter对象被释放/销毁之前调用,并且只调用一次。
-
//是在请求的时候添加过滤规则 System.print.out("doFilter方法开始执行")
//是在响应的时候添加过滤规则 System.print.out("doFilter方法执行结束")
-