欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简单学习Filter和Listener

程序员文章站 2022-05-22 20:22:24
...

Filter和Listener

1. Filter

  1. 作用:访问服务器资源时,将请求拦截,完成特殊功能

    一般用来通用操作,例如:登录验证、编码处理、敏感字处理

  2. 入门:

    1. 定义类实现接口Filter
    2. 复写方法
      1. filterChain.doFilter(servletRequest, servletResponse)
    3. 配置拦截路径
      1. web.xml
      2. 注解@WebFilter("/*")过滤所有请求
  3. 细节:

    1. web.xml

      <filter>
          <filter-name>name</filter-name>
          <filter-class>classpath</filter-class>
      </filter>
      <filter-mapping>
              <filter-name>name</filter-name>
              <url-pattern>/*</url-pattern>
      </filter-mapping>
      
    2. 注解:@WebFilter("/*")

    3. 生命周期:

      1. init:启动后创建Filter对象,调用init方法
      2. doFilter:每次拦截请求执行一次
      3. destroy:服务器正常关闭后调用destroy方法
    4. 过滤器配置:

      1. 拦截路径:
        1. 具体资源路径:/index.jsp
        2. 具体资源目录:/user/*
        3. 具体后缀名:*.jsp
        4. 拦截所有:/*
      2. 拦截方式:资源访问的方式
        1. 注解方式
          1. dispatcherTypes属性
            1. REQUEST:直接请求
            2. FORWARD:转发资源
            3. INCLUDE:包含访问资源
            4. ERROR:错误跳转
            5. ASYNC:异步访问
        2. web.xml:设置
      3. 过滤器链:多个过滤器,按照类名的命名来排序执行
        1. fliter1
        2. fliter2
        3. getResources
        4. fliter2 back
        5. fliter1 back

2. Listener

  1. 概念:三大组件之一(Servlet,Filter,Listener)

  2. 事件监听机制:

    1. 事件
    2. 事件源:事件发生的地方
    3. 监听器:对象
    4. 注册监听:事件源上发生某个事件后执行监听器代码
  3. ServletContextListener

    1. void contextInitialized(ServletContextEvent sce) ServletContext创建后调用
    2. void contextDestroyed(ServletContextEvent sce) ServletContext销毁后调用
  4. 步骤:

    1. 定义类实现ServletContextListener接口

    2. 复写方法

    3. 配置

      1. web.xml

        <listener>
        	<listener-class>classpath</listener-class>
        </listener>
        
      2. 注解

相关标签: Java Web java web