软装设计网站大全,河田镇建设局网站,怎么查询技术支持公司做的网站,php网站开发有前景吗目录 执行流程
拦截路径
过滤器链
小结 执行流程
过滤器Filter拦截到请求之后#xff0c;首先执行方放行之前的逻辑#xff0c;然后执行放行操作#xff08;doFilter#xff09;#xff0c;然后会访问对应的Web资源#xff08;对应的Controller类#xff09;#…目录 执行流程
拦截路径
过滤器链
小结 执行流程
过滤器Filter拦截到请求之后首先执行方放行之前的逻辑然后执行放行操作doFilter然后会访问对应的Web资源对应的Controller类Controller类处理完请求后然后执行放行之后的逻辑最后将响应结果返回给前端。
拦截路径
Filter可以根据需求匹配不同的拦截资源路径 拦截路径urlPatterns值 含义 拦截具体路径/login只有访问/login路径时才会被拦截目录拦截/emps/*访问/emps下的所有资源都会被拦截拦截所有/*访问所有资源都会被拦截
过滤器链
介绍一个Web应用中可以配置多个过滤器这多个过滤器就形成了一个过滤器链 在所有过滤器放行之后才会访问Web资源Controller类而过滤器放行之后的逻辑的执行顺序是从后到前的。最后给前端响应数据具体举例如下 过滤器Filter顺序 具体代码如下 AFilter package com.example.tlias.Filter;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;import java.io.IOException;WebFilter(urlPatterns /*)
public class AFilter implements Filter {Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println(AFilter放行之前的逻辑);// todo 放行请求让其访问对应的资源filterChain.doFilter(servletRequest, servletResponse);System.out.println(AFilter放行之后的逻辑);}
}JWTFIlter package com.example.tlias.Filter;import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;import java.io.IOException;WebFilter(/*) // todo 设置当前过滤器要拦截的请求
public class JWTFilter implements Filter {Override// todo 初始化方法Web服务器启动时创建Filter时调用只调用一次public void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);System.out.println(init初始化方法执行了);}Override // todo 拦截到请求时就会调用该方法可调用多次public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println(JWTFilter放行之前的逻辑);// todo 放行请求让其访问对应的资源filterChain.doFilter(servletRequest, servletResponse);System.out.println(JWTFilter放行之后的逻辑);}Override // todo 销毁方法服务器关闭时调用只调用一次public void destroy() {Filter.super.destroy();System.out.println(destroy销毁方法执行了);}
}测试运行结果 在所有的过滤器放行前的逻辑执行完之后才会将请求交给Web资源进行处理
小结
执行流程 请求--放行前的流程--放行--资源--放行后的逻辑拦截路径 /login/depts/*/*过滤器链 一个Web应用中配置多个过滤器就形成一个过滤器链