Listener介绍
来源:互联网 发布:wow3.3.5数据库 编辑:程序博客网 时间:2024/05/21 02:21
当web运用在web容器中运行时,会产生各种事件(如web启动,停止,用户的session创建,销毁,请求到达等)这些对于web事件开发者都可以监听到。
使用Listener只需要2个步骤
1)定义Lisenter实现类
package com.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.apache.log4j.*; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.quartz.QuartzServiceImpl; import com.util.DateUtil; public class WebStartListener implements ServletContextListener{ Logger logger = Logger.getLogger(WebStartListener.class); @Override public void contextInitialized(ServletContextEvent sce) { // TODO Auto-generated method stub logger.warn("启动"); // ApplicationContext springContext = new ClassPathXmlApplicationContext(new String[]{"classpath:com/springResource/*.xml"}); // QuartzServiceImpl quartzService = (QuartzServiceImpl)springContext.getBean("quartzService"); // quartzService.schedule("name=testQuartz2",DateUtil.parse("2012-12-12 23:42:00")); } @Override public void contextDestroyed(ServletContextEvent sce) { // TODO Auto-generated method stub logger.warn("关闭"); } }
2)配置web.xml
<!-- web服务器启动监听 --> <listener> <listener-class>com.listener.WebStartListener</listener-class> </listener>
servlet内置listener
ServletContextListener
[接口方法] contextInitialized()与 contextDestroyed()[接收事件] ServletContextEvent[触发场景] 在Container加载Web应用程序时(例如启动 Container之后),会呼叫contextInitialized(),而当容器移除Web应用程序时,会呼叫contextDestroyed ()方法。
ServletContextAttributeListener
[接口方法] attributeAdded()、 attributeReplaced()、attributeRemoved()[接收事件] ServletContextAttributeEvent[触发场景] 若有对象加入为application(ServletContext)对象的属性,则会呼叫attributeAdded(),同理在置换属性与移除属性时,会分别呼叫attributeReplaced()、attributeRemoved()。
HttpSessionListener
[接口方法] sessionCreated()与sessionDestroyed ()[接收事件] HttpSessionEvent[触发场景] 在session(HttpSession)对象建立或被消灭时,会分别呼叫这两个方法。
HttpSessionAttributeListener
[接口方法] attributeAdded()、 attributeReplaced()、attributeRemoved()[接收事件] HttpSessionBindingEvent[触发场景] 若有对象加入为session(HttpSession)对象的属性,则会呼叫attributeAdded(),同理在置换属性与移除属性时,会分别呼叫attributeReplaced()、 attributeRemoved()。
ServletRequestListener
[接口方法] requestInitialized()与 requestDestroyed()[接收事件] RequestEvent[触发场景] 在request(HttpServletRequest)对象建立或被消灭时,会分别呼叫这两个方法。
ServletRequestAttributeListener
[接口方法] attributeAdded()、 attributeReplaced()、attributeRemoved()[接收事件] HttpSessionBindingEvent[触发场景] 若有对象加入为request(HttpServletRequest)对象的属性,则会呼叫attributeAdded(),同理在置换属性与移除属性时,会分别呼叫attributeReplaced()、 attributeRemoved()。
HttpSessionBindingListener
[接口方法] valueBound()与valueUnbound()[接收事件] HttpSessionBindingEvent[触发场景] 实现HttpSessionBindingListener接口的类别,其实例如果被加入至session(HttpSession)对象的属性中,则会呼叫 valueBound(),如果被从session(HttpSession)对象的属性中移除,则会呼叫valueUnbound(),实现HttpSessionBindingListener接口的类别不需在web.xml中设定。
HttpSessionActivationListener
[接口方法] sessionDidActivate()与 sessionWillPassivate()[接收事件] HttpSessionEvent[触发场景] Activate与Passivate是用于置换对象的动作,当session对象为了资源利用或负载平衡等原因而必须暂时储存至硬盘或其它储存器时(透过对象序列化),所作的动作称之为Passivate,而硬盘或储存器上的session对象重新加载JVM时所采的动作称之为Activate,所以容易理解的,sessionDidActivate()与 sessionWillPassivate()分别于Activeate后与将Passivate前呼叫。
0 0
- Listener介绍
- Listener介绍
- Listener介绍
- Listener介绍
- Listener介绍
- Listener介绍
- Listener介绍
- Listener介绍
- Listener介绍
- Listener介绍
- Servlet介绍(6)-----listener
- Servlet介绍-listener
- Servlet介绍(6)-----listener
- listener监听器介绍
- Servlet介绍-listener
- 2.13 Listener介绍
- Web listener 介绍
- web Listener介绍
- 内存、栈、堆的一点小总结 《程序员的自我修养》·笔记
- 修改数据库语言设置
- ActiveMq-Queue开发
- svm算法入门
- UINavigatonController遮挡内容
- Listener介绍
- Unity3D中脚本的执行顺序和编译顺序
- 文本语言模型的参数估计方法--最大似然估计、MAP、贝叶斯估计
- MSSQL Server的连接问题分析和解决(2)
- ubuntu登录输入用户名密码之后重新跳回登录界面
- 9.12测试(二)——国际象棋
- Linux 4.0的驱动开发读书笔记之驱动的概述
- Android 画笔功能
- Weblogic加Apache的群集配置