目的
当用户通过想要向服务器传输某些数据,而我们相对这些数据进行筛选时这时就要使用过滤器(filter)
概念
Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,
Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等
实现步骤
- 编写java类实现Filter接口,并实现其doFilter方法。
public class CheckLoginFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
}
}
- 设置编码为utf-8
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
- 确认放行
filterChain.doFilter(servletRequest,servletResponse);
- 实现destroy()方法,设置不放行的操作
@Override
public void destroy() {
System.out.println("CharsetFilter.destroy");
}
应用场景
- 实现自动登录
- 处理中文乱码问题
- 设置访问权限控制
- 敏感字符过滤