Servlet监听器

 

/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*vx:it_daimeng
*/

  

1.首先什么是Listener(监听器)

    监听器就是监听某个对象的状态变化的组件,监听器中有几个重要概念:

    1)事件源:被监听的对象。主要有三个域对象:request、session、servletContext(application)。

    2)监听器:监听事件源对象的组件,事件源对象的状态变化就会触发监听器。

    3)注册监听器:将监听器与事件源进行绑定。

    4)响应行为:监听器听到事件源的转台变化是,所涉及的功能代码。(一般由程序员编写)

2.三大监听对象

编辑

 

 

3、ServletContext监听

1.Application对象

application是ServletContext的实例,由JSP容器默认创建。Servlet中调用getServletContext()方法得到ServletContext的实例。

全局对象即Application范围的对象,初始化阶段的变量值在web.xml中,经由<context-param>元素所设定的变量,它的范围也是Application的范围

2.ServletContextListener接口

用于监听Web应用启动和销毁的事件,监听器类需要实现ServletContextListener接口。

ServletContext域对象的生命周期:

 创建:服务器启动时;

销毁:服务器关闭;

该接口的主要方法;

void contextInitialized(ServletContextEvent se):通知正在接受的对象,应用程序已经被加载及初始化

void contextDestroyed(ServletContextEvent se):通知正在接受的对象,应用程序已经被销毁

ServletContextEvent的主要方法:ServletContext getServletContext():取得当前的ServletContext对象

3..ServletContextListener监听器的主要作用:

        1)初始化的工作:初始化对象、初始化数据(如:加载驱动、创建数据库连接、连接池的初始化等);

        2)加载初始化的配置文件:  如spring的配置文件;

        3)任务调度(定时器Timer/TaskTimer):监听某项行为定时执行相应功能;

 

4、HttpSession 会话监听

1.HttpSessionListener

主要方法:

sessionCreated(HttpSessionEvent se):session创建

sessionDestroyed(HttpSessionEvent se):session销毁

2.HttpSessionActivationListener:

监听器监听Http会话的情况

3.HttpSessionAttributeListener:

监听HttpSession中属性的操作

该接口的主要方法:

void attributeAdded(HttpSessionBindingEvent se):监听Http会话中的属性添加

void attributeRemoved(HttpSessionBindingEvent se):监听Http会话中的属性移除

void attributeReplaced(HttpSessionBindingEvent se):监听Http会话中的属性更改操作

4.HttpSessionBindingListener

监听Http会话中对象的绑定信息

getSession():获取session对象

getName():返回session增加、删除、或替换的属性名称

getValue():返回session增加、删除、或替换的属性值

5、ServletRequest监听

可以监听客户端的请求

1.ServletRequestListener接口

用于监听客户端的请求初始化和销毁事件,需要实现ServletRequestListener接口

接口中的方法:

requestInitialized(ServletRequestEvent):通知当前对象请求已经被加载及初始化

requestDestroyed(ServletRequestEvent):通知当前对象,请求已经被消除

ServletRequestEvent实例中的方法

getServletRequest():获取ServletRequest对象

getServletContext():获取ServletContext对象

2.ServletRequestAttributeListener

用于监听Web应用属性改变的事件,包括增加属性、删除属性、修改属性

接口方法:

void attributeAdded(ServletRequestAttributeEvent e):向Request对象添加新属性

void attributeRemoved(ServletRequestAttributeEvent e):从request对象中删除属性

void attributeReplaced(ServletRequestAttributeEvent e):替换对象中现有属性值

ServletRequestAttributeEvent中的主要方法:

getName():返回Request增加、删除、或替换的属性名称

getValue():返回Request增加、删除、或替换的属性的值

 

 

注册监听器:

 
<listener>

    <listener-class>com.test.listener.TestHttpSessionListener</listener-class>

  </listener>

  <listener>

    <listener-class>com.test.listener.BirthdayListener</listener-class>

  </listener>

  

 

 

 

 

 

 

posted @ 2022-08-22 22:28  呆萌老师  阅读(64)  评论(0编辑  收藏  举报