06_过滤器Filter
WEB三大核心组件: Servelt Filter Listener
一、Filter
过滤目标:请求
可以根据配置条件对 满足条件的请求进行一个检查 检查请求是否满足 条件 如果满足 则该请求可以继续执行 否则 就返回。
二、Filter 实现
方式一:
第一步 实现Filter接口来实现自己的Filter
第二步 配置Filter
<filter>
<filter-name>helloFilter</filter-name>
<filter-class>org.lanqiao.web.filter.HelloFilter</filter-class>
<init-param>
<param-name>username</param-name>
<param-value>zhangsan</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>helloFilter</filter-name>
<!-- 指的是可以拦截那些请求 /* 表示拦截所有请求-->
<url-pattern>/*</url-pattern>
</filter-mapping>
public class HelloFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
//FilterConfig 获取Filter的配置信息
String filterName = filterConfig.getFilterName();
String username = filterConfig.getInitParameter("username");
System.out.println( filterName +"---"+username);
}
//执行拦截
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("doFilter....");
//表示对拦截到的请求放行
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
System.out.println("destroy......");
}
}
方式二:继承HttpFilter
public class TestFilter extends HttpFilter {
@Override
protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("test Filter doFilter");