1 Filter
1.1 什么是过滤器
拦截用户请求,判断是否放行或对请求体或响应体做一些操作,要么直接返回 response,或交给下一个 Filter 或 Servlet 处理。
1.2 实现
1.2.1 FirstFilter
public class FirstFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("InitFilter");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("begin Filter");
// 调用下一个过滤器或 Servlet.
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("end Filter");
}
@Override
public void destroy() {
System.out.println("Destory Filter");
}
}
1.2.2 配置
<web-app>
<filter>
<filter-name>firstFilter</filter-name>
<filter-class>com.wangnan.filter.FirstFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>firstFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
1.3 先后顺序
- 与
web.xml
当中的配置的顺序有关,在前面配置的先执行。
1.4 使用场景
- 从session当中判断用户是否登录。
- 设置统一的编码方式。
- 加密和解密的操作。
- 非法文字筛选。
- 下载资源的限制。