赞
踩
当用户请求接口时,请求会先到过滤器,在到处理逻辑的接口,在过滤器中可以可以判断用户权限,如:是否登录,或请求前的一些操作,完成一下比较通用的操作,如:前端的AXIOS 的请求拦截器响应拦截器。
浏览器-》过滤器-》-》拦截器-》接口
过滤器优先级比较高
启动类上添加@ServletComponentScan //开启组件支持
@ServletComponentScan
@WebFilter(urlPatterns =“”)加上该注解 表示该类为过滤器 ,urlPatterns 为拦截路径
继承于Filter 接口,并且实现他都三个方法
过滤器分为3个函数,也叫可以叫生命周期
doFilter:每次请求时执行的方法 每次请求都执行 必须重写
init: 服务器启动时执行的方法 一般用于加载资源或初始化 只执行一次 可以不重写
destroy: 服务器关闭时执行 (销毁) 只执行一次 可以不重写
@WebFilter “urlPatterns”参数:拦截哪类的请求
@WebFilter(urlPatterns="/*")//加上该注解 表示该类为过滤器 public class RequestFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //每次请求时执行的方法 } @Override public void init(FilterConfig filterConfig) throws ServletException { //服务器启动时执行的方法 一般用于加载资源或初始化 只执行一次 Filter.super.init(filterConfig); } @Override public void destroy() { //服务器关闭时执行 (销毁) 只执行一次 Filter.super.destroy(); } }
创建完成后,请求拦截主要在这个方法里,会传递3个对象参数进来
ServletRequest servletRequest, //请求
ServletResponse servletResponse,//响应
FilterChain filterChain// 放行
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//每次请求时执行的方法
//....放行前执行的逻辑.....
filterChain.doFilter(servletRequest,servletResponse);
//放行该请求
//....放行后执行的逻辑.....
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。