拦截请求,给增加一些东西,然后放你去访问服务器资源.
过滤器功能:1.登录功能
2.这只编码之类功能也可以放在过滤器中,完成通用操作
步骤:
1.实现Filter接口
2.复写方法
3.配置拦截路径
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/*")//配置需要过滤的路径,访问什么资源会被拦截
public class FilterS2 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);//这行代码是放行
}
@Override
public void destroy() {
}
}
过滤进行两次,放行之后,再回来的时候,还是会再次被拦截
这次拦截之后会从
filterChain.doFilter(servletRequest,servletResponse);
这行
下面取执行
回来时候都是设置response对象
在WebFilter上进行配置
拦截目录;
/user/整个下面目录全部都会被拦截
后缀拦截 *.jsp所有jsp全部都会被拦截
/*所有资源都被拦截
还可以设置资源被拦截的方式
1.访问方式
(1)浏览器直请求方式
(2)内部访问转发
2.使用dispatchTypes
配置访问方式
1.REQUEST
2。forward
3.INCLUED
4.EROOR
过滤器链子:
1.多个过滤器
过滤器注解配置,跟根据比较过滤器名字字符串大小,进行比较,比较小的限制先执行