码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb之Listener&Filter

时间:2018-12-12 10:33:17      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:context   项目   bin   利用   统一   isp   stat   lock   ext   

1. 回顾一下三个作用域

启动tomcat时会创建ServletContext,关闭服务器,将项目从服务器中移除会销毁ServletContext

请求项目中的任何资源都会创建ServletRequest,请求结束,销毁ServletRequest

请求项目中的JSP资源会创建HttpSession,Session过期,服务器正常或非正常退出都会销毁HttpSession

2. Listener

监听器,监听某个事件的发生或状态改变

监听器的内部机制就是接口回调

  • WEB监听器

    总共有8个,划分为三种类型

  • 监听三个作用域的创建和销毁

    ServletContextListener 利用它,在创建ServletContext的时候,完成初始化操作,执行任务调度

    ServletRequestListener 利用它,监听ServletRequest的创建和销毁

    HttpSessionListener 利用它,统计在线人数

  • 监听三个作用域的属性状态变更

    可以监听作用域中值添加|替换|移除操作

    ServletContextAttributeListener

    ServletRequestAttributeListener

    HttpSessionAttributeListener

  • 监听HttpSession存储值的状态变更

    这类监听器不用注册

    HttpSessionBindingListener JavaBean实现该接口即可监听,监听对象在HttpSession中的绑定和移除

3. Filter

过滤器,就是对客户端发送的数据进行过滤,其实就是起到了拦截器的作用

可以对一些敏感词汇进行过滤

统一设置编码类型

自动登录

...

  • 如何使用过滤器?

    定义一个类,实现Filter接口
    注册过滤器
    <filter>
      <filter-name>FilterDemo</filter-name>
      <filter-class>com.kernel.filter.FilterDemo</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>FilterDemo</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
  • Filter生命周期

    在服务器启动时,创建Filter,当服务器停止,Filter销毁

  • Filter执行顺序

    客户端发出请求,经过过滤器,过滤器通过chain.doFilter()方法放行后,才能到达Servlet,如果有多个过滤器,按照注册的顺序,一次经过每个过滤器,只有所有过滤器放行后,才会到达Servlet

  • dispatcher

    REQUEST 拦截所有请求

    FOWORD 拦截所有转发

    ERROR 拦截页面出错

    INCLUDE 拦截包含页面

JavaWeb之Listener&Filter

标签:context   项目   bin   利用   统一   isp   stat   lock   ext   

原文地址:http://blog.51cto.com/13559120/2329158

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!