过滤器:在客客户端访问目标资源之前,进行拦截的一个中间组件
作用:对客户端的请求和服务器端相响应的类容进行修改、拦截
过滤器链
请求过滤1 2 3;响应过滤 3 2 1
1 2 3 (过滤器链)的顺序与(web.xml文件中映射的先后||使用注解的全类名(包括包名)的字母先后顺序)有关 / 推荐在.xml文件中书写注册映射,不推荐使用注解
过滤器的书写 / filter
//1.开发过滤器需要实现 javax.servlet.Filter接口 public class FontFilter implements Filter { //过滤器初始化方法 @Override public void init(FilterConfig filterConfig) throws ServletException {} //过滤处理的方法 @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { filterChain.doFilter(servletRequest,servletResponse); //对请求完成验证、处理后一定要放行,不然请求会直接返回 HttpSesion sesion = ((HttpServletRequest)servletRequest).getSession(); //在过滤器中需要把请求对象,响应对象转化为http下的响应与请求,才能获取对应sesion } //过滤器销毁的方法 @Override public void destroy() {} }
<!--2.注册和映射和servlet映射相似--> <!--注册--> <filter> <filter-name>过滤器类名</filter-name> <filter-class>过滤器类的全路径</filter-class> </filter> <!--映射--> <filter-mapping> <filter-name>过滤器类名</filter-name> <url-pattern>过滤路径(/* : 表示所有路径)</url-pattern> </filter-mapping> <!--注册一次,映射多次。与servlet相似--> <!--或者使用注解@webFilter(name="名字",value="路径")-->
路径映射:在请求的路径前加上一层,在后台的处理可以对一类路径进行处理
原文:https://www.cnblogs.com/-Archenemy-/p/12781585.html