应用程序事件 ,监听器

何为监视
在Web系统中,监听器就是应用监听事件来监听请求中的行为而创建的一组类。对于HttpSession,HttpServletRequest,ServletContext中遵循生成,运行,销毁的生命周期,进行相关的监听配置后,Web容器会调用相关的监听器上的方法,进行相应事件的处理。
ServletContext事件,监听器
1.ServletContextListener
“ServletContext声明周期监视器”主要用来监视Web程序初始化或结束时响应的动作事件。
default void contextInitialized(ServletContextEvent sce) 通知监听器已经加载Web应用和初始化参数
default void contextDestroyed(ServletContextEvent sce) 通知监听器,Web应用即将关闭。
对于Web应用程序启动时,会自动监听先调用contextInitialized方法并传入ServletContextEvent参数,它封装了ServletContext对象,可通过getServeltContext()方法获取ServeltContext对象,使用getInitParameter方法取得初始化参数。在Web应用关闭时,会自动调用contextDestroyed方法。
可以在contextInitialized中实现资源的准备事件,在contextDestroyed实现资源的释放。
2.ServeltContextAttributeListener
“ServletContext属性监听器”用来监听Application属性的添加,移除或者替换时响应的动作事件。
default void attributeAdded(ServletContextAttributeEvent scab)通知监听器有对象或者属性被添加到Application
default void attributeRemoved(ServletContextAttributeEvent scab) 用于通知监听器有对象或者属性被移除到Application
default void attributeReplace(ServletContextAttributeEvent scab)用于通知监听器,有对象或者属性被更改到Application中

HttpSession事件监听器
1.HttpSessionIdListener
用来监听sessionID的变化
public void sessionIdChanged(HttpSessionEvent,java.lang.String oldSessionId)该方法通知监听器session ID发生变化
在SessionID发生变化时,会触发sessionIDChanged()方法,可使用getSession().getId()获取新的session ID
2.HttpSessionListener
“HttpSession生命周期监听器”用来监听HttpSession对象初始化或者结束时响应的动作事件。
default void sessionCreated(HttpSessionEvent se) 用于通知监听器,产生了新的会话
default void sessionDestroyed(HttpSessionEvent se)用于通知监听器,已经消除一个会话
可使用getSession()方法获取HttpSession对象。
3.HttpSessionAttributeListener
"HttpSession属性改变监听器"用来监听HttpSession对象加入的属性,移除属性,或者替换属性时响应的动作事件
default void attributeAdded(HttpSessionBindingEvent se)通知监听器有对象或者属性被添加到Session
default void attributeRemoved(HttpSessionBindingEvent se) 用于通知监听器有对象或者属性被移除到Session
default void attributeReplace(HttpSessionBindingEvent se)用于通知监听器,有对象或者属性被更改到Session中
4.HttpSessionBindingListener
“HttpSession对象绑定监听器”
可用来监听HttpSession中设置成HttpSession属性或者从HttpSession中移除时得到session的通知
default void valueBound(HttpSessionBindingEvent event) 该方法用于通知监听器已经一个绑定一个Session范围内的一个对象或者变量
default void valueUnbound(HttpSessionBindingEvent event)通知监听器已经绑定一个session范围的对象或者变量
不需要进行注入或者在Web.xml中配置。
5.HttpSessionActivationListener
"HttpSession对象转移监听器"实现它对同一个会话在不同的JVM中转移。
default void sessionDidActivate(HttpSessionEvent se)通知监听器该会话已变为有效
default void sessionWillPassivate(HttpSessionEvent se)通知监听器,该会话以变为无效
HttpServletRequest事件,监听器
1.ServletRequestListener
"Request生命周期监听器"用来监听Request对象初始化或者结束时响应的动作事件。
default void requestInitialized(ServletRequestEvent sre) 用于通知监听器,产生了新的request对象
default void requestDestroyed(ServletRequestEvent sre) 用于通知监听器,已经消除了一个request对象
2.ServletRequestAttributeListener
“Request属性改变监视器”
default void attributeAdded(ServletRequestAttributeEvent srae)通知监听器有对象或者属性被添加到Request
default void attributeRemoved(ServletRequestAttributeEvent srae) 用于通知监听器有对象或者属性被移除到Request
default void attributeReplace(ServletRequestAttributeEvent srae)用于通知监听器,有对象或者属性被更改到Request中
利用getName()方法得到操作对象或者变量的名称,利用getValue得到操作对象的值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值