JavaWeb笔记(七)Filter&Listener

Filter

实现Filter接口

一般用于完成通用的操作,如:登陆验证、统一编码处理、敏感字符过滤等

执行流程

  1. 执行过滤器
  2. 执行放行后的资源
  3. 继续执行过滤器放行代码下的代码

配置

  1. 拦截路径配置
    1. 注解配置
      • 具体资源路径: /index.jsp
      • 拦截目录: /user/*
      • 后缀名拦截: *.jsp
      • 拦截所有资源: /*
    2. web.xml配置

       <filter>
           <filter-name>demo</filter-name>
           <filter-class>包名.类名</filter-class>
       </filter>
       <filter-mapping>
           <filter-name>demo</filter-name>
           <!-- 拦截路径 -->
           <url-pattern>/*</url-pattern>
       </filter-mapping>
  2. 拦截方式配置:资源被访问的方式
    1. 注解配置

      设置 dispatcherTypes 属性

      • REQUEST:默认值。浏览器直接请求资源
      • FORWARD:转发访问资源
      • INCLUDE:包含访问资源
      • ERROR:错误跳转资源
      • ASYNC:异步访问资源
    2. web.xml配置

      设置 <dispatcher></dispatcher> 标签

过滤器先后顺序

  1. 注解配置:按照类名的字符串比较规则比较,值小的先执行
  2. web.xml配置: <filter-mapping> 按照定义顺序执行

Listener

实现ServletContextListener接口

ServletContextListener:监听ServletContext对象的创建和销毁

  • 方法:
    • void contextInitialized(ServletContextEvent sce)ServletContext 对象创建后会调用该方法
    • void contextDestroyed(ServletContextEvent sce)ServletContext 对象被销毁之前会调用该方法
  • 配置

    1. web.xml

       <listener>
           <listener-class>包名.类名</listener-class>
       </listener>

      指定初始化参数 <context-param> 进行资源文件的加载

    2. 注解:

      @WebListener

猜你喜欢

转载自www.cnblogs.com/yxmhl/p/10661985.html
今日推荐