监听器Listener小记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011304490/article/details/84641340

一、监听器:监听某一个事件的发生,状态的改变

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

监听器的实现:

1、定义一个类,实现接口

2、注册或配置监听器

<listener>
    <listener-class>监听器接口实现类名</listener-class>
</listener>


二、web监听器(总共8个,划分为三种类型)

类型一:监听三个作用域创建和销毁

request  ---  httpServletRequest

session  ---  httpSession

application  ---  ServletContext

1、ServletContextListener

    servletContext创建:

    1.启动服务器的时候

    servletContext销毁:

    2.关闭服务器,从服务器移除项目

2、ServletRequestListener

    request创建:

    访问服务器上的任意资源都会有请求出现

    访问html:会

    访问jsp:会

    访问Servlet:会

    request销毁:

    服务器已经对此次请求做出了响应

3、HttpSessionListener

    session创建:

    只要调用getSession

    访问html:不会

    访问jsp:会

    访问Servlet:会

    session销毁:

    超时、非正常关闭

    正常关闭服务器


作用:

小例子:

ServletContextListener

    利用它来在ServletContext创建的时候:

    1、完成想要初始化的工作

    2、执行自定义任务调度,执行某些任务,如Timer

HttpSessionListener

    统计在线人数


类型二:监听三个作用域属性状态变更

request --- ServletRequestAttributeListener

session --- HttpSessionAttributeListener

servletContext --- ServletContextAttributeListener

可以监听在作用域中值添加、替换、删除


类型三:监听httpSession里面存储的值的状态变更

这一类监听器不用注册

1、HttpSessionBindingListener

2、HttpSessionActivationListener

    钝化(序列化)

    把内存中的数据,存储到硬盘上

    活化(反序列化)

    把硬盘中的数据读取到内存中

session的钝化、活化意义:session中的值可能有很多,可以把长时间不会用到的钝化到硬盘上,下次使用的时候再活化,即拿到内存中使用

如何让session在一定时间内钝化,该如何配置:<context></context>

1、在tomcat里面 conf/context.xml

对所有运行在这个服务器的项目生效

2、在conf/Catalina/localhost/context.xml

对localhost生效。如localhost:8080

3、在自己的web工程项目中的META-INF/context.xml

只在当前的工程生效

猜你喜欢

转载自blog.csdn.net/u011304490/article/details/84641340
今日推荐