Filter可认为是Servlet的一种"加强版"
使用Filter完整流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理,最后Filter再对服务器响应进行后处理
Filter有如下用处:
在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest
根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据
在HttpServletResponse到达客户端之前,拦截HttpServletResponse
根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据
Filter有如下几个种类:
用户授权的Filter: Filter负责检查用户请求,根据请求过滤用户非法请求
日志Filter: 详细记录某些特殊用户请求
负责解码的Filter: 包括对非标准编码的解码
能改变XML内容的XSLT Filter等
Filter可负责拦截多个请求或响应,一个请求或响应也可被多个Filter拦截