配置Filter

来源:互联网 发布:淘宝店铺负责人更改 编辑:程序博客网 时间:2024/06/16 18:43
       前面文章中已经提到,Filter可以认为是Servlet的 “增强版“,因此配置Filter与配置Servlet非常相似,都需要配置如下两个部分:
  • 配置Filter名。
  • 配置 Filter 拦截 URL 模式。
       区别在于 , Servlet 通常只配置一个 URL,而 Filter 可以同时拦截多个请求的 URL。因此,在配置 Filter 的 URL 模式时通常会使用模式字符卑,使得 Filter 可以拦截多个请求。与配置 Servlet 相似的是, 配置 Filter 同样有两种方式:
  • 在 Filter 类中通过 Annotation 进行配置。
  • web.xml 文件中通过配置文件进行配置。
       上文中Filter类的粗体字代码使用@WebFilter 配置该 Filter 的名字为 log,它会拦截向/*发送的所有的请求。
       @WebFilter修饰一个Filter类, 用于对Filter进行配置, 它支持如表1所示的常用属性:
                                                                        表1 @WebFilter支持的常用属性

     
        在 web.xml 文件中配置 Filter与配置 Servlet 非常相似, 需要为 Filter 指定它所过滤的 URL,并且也可以为 Filter 配置参数。
        在 web.xml 文件中为该 Filter 增加如下配置片段:
<!--定义Filter--〉
<filter>
〈!--Filter的名字, 相当于指定@WebFilter的filterName属性--〉
<filter-name>1og</filter-name>
<!-- Fflter的实现类--〉
<filter-class>xx.LogFilter</filter-class>
</filter>
<!--定义Filter拦截的URL地址--〉
<filter-mapping>
〈!--Filter的名字-->
<filter-name>log</filter-name>
〈!--Filter负责拦截的URL,相当于指定@WebFilter的urlPatterns的属性-->
<url-pattern>/*</url-pattern>
</filter-mapping>
       从这些代码中可以看出配置 Filter与配置 Servlet 非常相似, 只是配置 Filter 时指定 url-pattern 为户,即表示该 Filter 会拦截所有用户请求。 该 Filter 并未对客户端请 求进行额外的处理, 仅仅在日志中简要记录请求的信息。
0 0
原创粉丝点击