主要:实现一个Filter接口
init()、destroy() 原理、执行时机 同Servlet
配置过滤器,类似servlet
通过doFilter()处理拦截,并且通过chain.doFilter(request, response);放行
filter映射
<filter>
<filter-name>Myservlet</filter-name>
<filter-class>org.setudent.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Myservlet</filter-name>
<url-pattern>/Myservlet</url-pattern>
</filter-mapping>
只拦截 访问Myservlet的请求
<url-pattern>/Myservlet</url-pattern>
拦截一切请求(每一次访问 都会被拦截)
<url-pattern>/*</url-pattern>
通配符
dispatcher请求方式:
REQUEST:拦截HTTP请求 get post
FORWARD:只拦截 通过 请求转发方式的请求
INCLUDE:只拦截拦截通过 request.getRequestDispatcher("").include() 、通过<jsp:include page="..." />此种方式发出的请求
ERROR:只拦截<error-page>发出的请求
过滤器中doFilter方法参数:ServletRequest
在Servlet中的方法参数:HttpServletRequest
过滤器链
可以配置多个过滤器,过滤器的先后顺序 是由 <filter-mapping>的位置 决定