Servlet入门_TWO之Filter的学习

来源:互联网 发布:sql注入实例代码 编辑:程序博客网 时间:2024/06/05 05:37
Filter可认为是Servlet的一种加强版,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是一个典型的处理链。

Filtert有如下几个用处:

①在HttpServletRequest到达servlet之前,拦截客户的HttpServletRequest。②根据需要检查HttpServletRequest,也可修改HttpServletRequest的头和数据。③在HttpServletResponse到达客户端之前,拦截HttpServletResponse④根据需要检查HttpServletResponse,也可修改HttpServletResponse的头和数据。

Filter有如下几个种类:

①用户授权的Filter:Filter负责检查用户的请求,根据请求过滤用户非法请求。②日志Filter:详细记录某些特殊的用户请求。③负责解码的Filter:包括对非标准编码的请求解码。④能改变XML内容的XSLT Filter 等⑤Filter可负责拦截多个请求或响应;一个请求或响应也可被多个Filter拦截。

创建Filter只需两个步骤:

①创建Filter处理类②web.xml 文件配置Filter。

补充

创建Filter必须实现javax.servlet.filter 接口。该接口定义了三个方法:void init(FilterConfig config)用于完成Filter的初始化void destroy()用于Filter的销毁,完成某些资源的回收。void doFilter(ServletRequest request , ServletResponse response , FilterChain chain)实现过滤功能,该方法就是对每个请求及响应增加的额外处理。doFilter()方法,实现该方法就可实现对用户请求进行预处理,也可实现对服务器响应进行后的处理——它们的分割线为是否调用了chain.doFilter(),执行该方法之前,即对用户请求进行处理;执行该方法之后,即对服务器响应进行后处理。

filter作用

这里写图片描述

0 0