Filter译为过滤器。
由于 Servlet 规范是开放的,借助于公众与开源社区的力量, Servlet 规范越来越科学,功能也越来越强大。
运行原理:
当客户端向服务器端发送一个请求时,如果有对应的过滤器进行拦截,过滤器可以改变请求的内容、或者重新设置请求协议的相关信息等,然后再将请求发送给服务器端的Servlet进行处理。当Servlet对客户端做出响应时,过滤器同样可以进行拦截,将响应内容进行修改或者重新设置后,再响应给客户端浏览器。在上述过程中,客户端与服务器端并不需要知道过滤器的存在。
在一个Web应用程序中,可以部署多个过滤器进行拦截,这些过滤器组成了一个过滤器链。过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求在这些过滤器之间传递,直到服务器端的Servlet。具体执行流程如下:
过滤器:顾名思义就是拦截的意思。
1.对不合法的登录进行拦截
2.对非法的访问进行拦截
3.对敏感字符进行拦截
拦截所有的资源:使用 /* 符号
@WebFilter("/*") // /*表示拦截所有资源
public class LoginFilter implements Filter {
//Filter的生命周期
@Override
public void init(FilterConfig filterConfig) throws ServletException {
//创建
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//执行
}
@Override
public void destroy() {
//销毁
}
}