目录
filter简述:
filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且对目标资源访问后进行逻辑处理
实现步骤:
- 编写一个类实现Filter接口
- 实现接口中的方法(着重实现doFilter方法)
- 在web.xml中配置(主要配置对那些资源进行过滤)
别写一个类实心Filter接口
package cn.bufanli.Filter;
import javax.servlet.*;
import java.io.IOException;
/**
* @author BuShuangLi
* @date 2019/1/2
* 过滤器demeo
* 自定义类实现 Filter接口
*/
public class FilterDemo implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("过滤器初始化");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("过滤器执行了");
//放行请求
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
System.out.println("过滤器销毁了");
}
}
编写过滤器web.xml配置文件,在webxml中添加
<!--配置过滤器start-->
<filter>
<filter-name>FilterDemo</filter-name>
<!--自定义类位置-->
<filter-class>cn.bufanli.Filter.FilterDemo</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterDemo</filter-name>
<!--过滤所有-->
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--配置过滤器end-->
Filter的配置文件
<url-pattern>/*</url-pattern>的配置方式
配置文件的三种配置方式
<url-pattern>/xxxx</url-pattern> 只有访问xxxx的路径才走这个过滤器
<url-pattern>/xxxx/*</url-pattern> 只有访问xxxx的路径为xxxx开头的路径后面所有的都走这个过滤器
<url-pattern>*.jsp</url-pattern> 扩展名匹配,以.jsp开头的走过滤器
<dispatcher>REQUEST<dispatcher> 默认值代表直接访问波哥资源执行,转发不执行
<dispatcher>FORWARD<dispatcher>转发执行
<dispatcher>INCLUDE<dispatcher> 包含资源是执行
<dispatcher>ERROR<dispatcher> 发生错误执行