过滤器Filter
过滤器链
介绍:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链。
顺序:注解配置的Filter,优先级是按照过滤器类名(字符串)的自然排序。

登录校验流程
- 获取请求url。
- 判断请求url中是否包含login,如果包含,说明是登录操作,放行。
- 获取请求头中的令牌(token)。
- 判断令牌是否存在,如果不存在,返回错误结果(未登录)。
- 解析token,如果解析失败,返回错误结果(未登录)。
- 放行。

使用样例
定义Filter:定义一个类,实现Filter接口,并重写其所有方法。
配置Filter:Filter类上加@WebFilter注解。配置拦截资源的路径。引导类上加@ServletComponentScan开启Servlet组件支持。
WebFilter(urlPatterns ="/*")
public class DemoFilter implements Filter {
//初始化方法,Web服务器启动,创建Filter时调用,只调用一次
public void init(FilterConfig filterConfig) throws ServletException{
Filter.super.init (filterconfig);
}
//拦截到请求时,调用该方法,可调用多次
public void dorilter(ServletRequest request, ServletResponse response, FilterChain chain){
System,out.println("拦截方法执行,拦截到了请求...");
chain.doFilter (request, response);
}
//销毁方法,服务器关闭时调用,只调用一次
public void destroy(){
Filter.super.destroy();
}
}
Java Web过滤器详解
1457

被折叠的 条评论
为什么被折叠?



