Filter可以认为是一种Servlet的加强版,主要有如下用途:
- 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest
- 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据
- 在HttpServletResponse到达Servlet之前,拦截客户的HttpServletReponse
- 根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据
- 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest
Filter分类
- 用户授权的Filter:Filter负责检查用户的请求,根据请求过滤非法的请求
- 日志Filter:详细记录某些特殊的用户请求
- 负责解码的Filter:包括对非标准编码的请求解码
- 能改变XML内容的SXLT Filter等
- Filter可负责拦截多个请求和响应;一个请求或响应也可以被多个Filter拦截
创建Filter步骤
- 创建Filter类
- 在web.xml文件之中配置Filter
具体可参考李刚《轻量级JavaEE企业应用开发》(第四版) P131页