1、概念
Servlet中的listener的作用是通过监听一些事件的发生,listener在事件发生前后可以做一些必要的处理。
2、原理
简单理解就是事件源生成事件并将其发送至一个或多个监听器,监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件并进行一些处理。listner监听的主要事件抽象的理解包括三种:ServletContextEvent、ServletRequestEvent、 HttpSessionEvent。
3、八种监听器
ServletContextEvent对Servlet上下文进行监听
监听器
|
监听事件
|
相关方法
|
ServletContextListener
|
ServletContextEvent
|
contextDestroyed(ServletContextEvent sce)
ServletContext对象销毁时触发
(容器销毁时销毁ServletContext对象)
contextInitialized(ServletContextEvent sce)
ServletContext对象创建时触发
(容器加载时创建ServletContext对象)
|
ServletContextAttributeListener
|
ServletContextAttributeEvent (继承
ServletContextEvent)
|
attributeAdded(ServletContextAttributeEvent event)
ServletContext对象添加属性时触发
(
request.getSession().getServletContext().setAttribute("person1","Jim");
)
attributeRemoved(ServletContextAttributeEvent event)
ServletContext对象移除属性时触发
(
request.getSession().getServletContext().removeAttribute("person1");
)
attributeReplaced(ServletContextAttributeEvent event)
ServletContext对象重新设定属性值时触发
(
request.getSession().getServletContext().setAttribute("person1","Green");
request.getSession().getServletContext().setAttribute("person1","Green1");
)
|
ServletRequestEvent对客户端请求进行监听
监听器
|
针对事件
|
相关方法
|
ServletRequest
|
ListenerServletRequestEvent
|
requestInitialized(ServletRequestEvent sre) 客户端请求发出时触发
requestDestroyed(ServletRequestEvent sre) 客户端请求结束时触发
|
ServletRequestAttributeListener
|
ServletRequestAttributeEvent (继承
ServletRequestEvent)
|
attributeAdded(ServletRequestAttributeEvent srae)
客户端请求对象添加属性时触发(
request.setAttribute("person1","Jim");
)
attributeRemoved(ServletRequestAttributeEvent srae)
客户端请求对象移除属性时触发(
request.removeAttribute("person1");
)
attributeReplaced(ServletRequestAttributeEvent srae)
客户端请求对象重新设定属性值时触发(
request.setAttribute("person1","Green");
request.setAttribute("person1","Green1");
)
|
ServletRequestEvent对Http会话监听
监听器
|
监听事件
|
相关方法
|
HttpSessionListener
|
HttpSessionEvent
|
sessionCreated(HttpSessionEvent se) session对象创建时发生,即浏览器页面打开时
sessionDestroyed(HttpSessionEvent se) session对象销毁时触发,即浏览器关闭或session过期
|
HttpSessionAttributeListener
|
HttpSessionBindingEvent (继承
HttpSessionEvent)
|
attributeAdded(HttpSessionBindingEvent event)
session对象添加属性时触发(
session.setAttribute("person1","Jim");
)
attributeRemoved(HttpSessionBindingEvent event)
客户端请求对象移除属性时触发(
session.removeAttribute("person1");
)
attributeReplaced(HttpSessionBindingEvent event)
session对象重新设定属性值时触发(
session.setAttribute("person1","Green");
session.setAttribute("person1","Green1");
)
|
HttpSessionBindingListener(
这个listener是一个比较特殊的listener,它不需要在web.xml中进行配置。
此listener需要存放于session中的对象实现此接口,才能被响应。
)
|
HttpSessionBindingEvent (继承
HttpSessionEvent)
|
valueBound(HttpSessionBindingEvent event) 此方法通过HttpSession的void setAttribute(String name, Object object)被调用。其中object需要实现HttpSessionBindingListener接口。
valueUnbound(HttpSessionBindingEvent event) 此方法通过HttpSession的void removeAttribute(String name)或者HttpSession失效时被调用。其中nam对应的object需要实现HttpSessionBindingListener接口。
|
HttpSessionActivationListener (
这个接口一般和Servlet容器的集群有关系,它监听的是同一个session转移至不同的JVM的事件。)
|
HttpSessionEvent
|
sessionDidActivate(HttpSessionEvent se) session对象已经变成有效的状态的时触发
sessionWillPassivate(HttpSessionEvent se) session对象将要变成无效状态的时触发
|
分享到:
相关推荐
java核心技术-过滤器和监听器的使用
主要给大家介绍了关于java监听器实现和原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
主要介绍了Java设计模式之监听器模式,结合实例形式较为详细的分析了java设计模式中监听器模式的概念、原理及相关实现与使用技巧,需要的朋友可以参考下
java一个监听器的例子
JAVA SESSION 监听器 有效监听服务器SESSION情况,当前登录用户等
Java的监听器种类,文档内详细描述了java各种监听器,能够让你在系统当中合理的去使用,从而提高系统的效率。
java监听器练习,java初学者!
简单的java监听器小练习,适合初学者!
JAVA事件监听器的四种实现方式,条理清晰,简明易懂,看过就学会
接下来的操作是:一个匹配的监听器必须被加入到该组件中 组件被创建之后,可以在组件上调用如下方法来将监听器与它联系起来 addActionListener( ) 可用于 Button,Check, TexyField 等组件 addAdjustmentListener...
当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。 例如:创建一个“人”类Class Person 人拥有吃的方法public void eat(){},我们的目的是,在这个人吃之前要提醒他洗手,所以我们要...
java监听器和过滤器详解,详细而且简单,保证能看懂
servelt 监听器 class MyRequest extends HttpServletRequestWrapper { public MyRequest(HttpServletRequest request) { super(request); } public String MyEncoding(String value) { String value...
监听器之定时器,写一个定时器的监听器,这个监听器每十秒向控制台输出一次时间信息 博客地址:https://blog.csdn.net/qq_36631076/article/details/80401609
自动监控USB设备,插上后自动复制指定类型文件到指定目录!后台运行,隐藏性能较好。
Java监听器添加 四种监听器 内部 外部 内部匿名 自身
java代码介绍按钮监听器的使用,使用简单的例子,详细生动的展示了监听器的使用。
Java中滑块组件的变更监听器,详细介绍请看我的博客http://blog.csdn.net/zhai56565/article/details/8684093
Java事件监听器即一组动作接口。如键盘事件KeyEvent对应的接口是: public interface KeyListener extends EventListener { public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public ...
一个java监听器的实现demo,即观察者设计模式实现