编程学习JAVA学习java code

Java Web之Filter

2016-12-02  本文已影响1297人  廖少少

本文包括:

1、Filter简介

2、Filter是如何实现拦截的?

3、Filter开发入门

4、Filter的生命周期

5、FilterConfig接口

6、配置Filter总结

7、案例一:编码集统一处理

8、案例二:禁用缓存过滤器

9、案例三:高效的静态资源缓存过滤器

10、案例四:实现用户自动登陆的过滤器

11、案例五:使用Filter实现URL级别的权限认证

1、Filter简介

2、Filter是如何实现拦截的?

3、Filter开发入门

4、Filter的生命周期

5、FilterConfig接口

6、配置Filter总结

  1. 对一个web资源可以配置多个过滤器

  2. 一个过滤器可以用来过滤多个web 资源

  3. <filter-mapping>中若想过滤Servlet时,可以通过Servlet对应的URL 或 Servlet的名字 两种方式配置:

    • Servlet对应的URL:

          <filter-mapping>
              <filter-name>Filter1</filter-name>
              <servlet-name>HelloServlet</servlet-name>
          </filter-mapping>
      
    • Servlet的名字:

          <filter-mapping>
              <filter-name>Filter1</filter-name>
            <url-pattern>/hello</url-pattern>
          </filter-mapping>
      
    • 测试用的Servlet配置如下:

          <servlet>
            <servlet-name>HelloServlet</servlet-name>
            <servlet-class>cn.itcast.servlet.HelloServlet</servlet-class>
          </servlet>
        
          <servlet-mapping>
            <servlet-name>HelloServlet</servlet-name>
            <url-pattern>/hello</url-pattern>
          </servlet-mapping>
      
  4. 关于<url-pattern>的写法Filter和Servlet相同,有三种方式,完全匹配、目录匹配、扩展名匹配,详解见:Java Web 之 Servlet

  5. <filter-mapping>中提供了一个可选的标签<dispatcher>

    • <dispatcher>标签指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一。默认REQUEST会过滤,其他三种方式都不会过滤。

      • request ---在请求时过滤

      • forward ---在转发时过滤

      • include ---在包含时过滤

      • error --在错误页面跳转时过滤

    • 用户可以设置多个<dispatcher> 子元素用来指定 Filter 对资源的多种调用方式进行拦截。

    • demo:

          <filter-mapping>
              <filter-name>Filter1</filter-name>
              <servlet-name>HelloServlet</servlet-name>
              <!-- 在转发以及请求时进行过滤 -->
              <dispatcher>FORWARD</dispatcher>
              <dispatcher>REQUEST</dispatcher>
          </filter-mapping>
      

7、案例一:编码集统一处理

8、案例二:禁用缓存过滤器

9、案例三:高效的静态资源缓存过滤器

10、案例四:实现用户自动登陆的过滤器

11、案例五:使用Filter实现URL级别的权限认证

Java Web 之 Servlet:http://www.jianshu.com/p/60bad0a4a1af

上一篇下一篇

猜你喜欢

热点阅读