Servlet监听器

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> hot3.png


Servlet监听器


0 1什么是监听器

能监听某个对象状态变化的组件,Servlet的监听器就是监听域对象的变化

监听器相关概念
事件源被监听的对象
监听器监听事件源的对象
注册监听器监听器与事件源相绑定
响应行为事件源行为触 发的监听器的行为


对于Servlet监听器事件源就是三个域对象request、session、servletContext

servletServletRequestListener
ServletRequestAttributeListener
sessionHttpSessionListener
HttpSessionAttributeListener
servletContextServlet ContextListener
ServletContextAttributeListener
02使用

域监听器,监听域的创建和销毁

以servletContextListener为例

public class Listener implements ServletContextListener {        public void contextInitialized(ServletContextEvent sce) {      System.out.println("服务器启动");    }
public void contextDestroyed(ServletContextEvent sce) {      System.out.println("服务器关闭"); }


属性监听器,监听属性的添加,移除,修改

public class Listener1 implements ServletContextAttributeListener {     public void attributeAdded(ServletContextAttributeEvent scae) {            }     public void attributeRemoved(ServletContextAttributeEvent scae) {    }
public void attributeReplaced(ServletContextAttributeEvent scae) { }}

5c9f65884c9a6b1bd9340c1c69067085a83.png

传入的参数scae就是当前的属性信息,当域对象添加移除或修改属性时就会传入这个当前属性作为参数,可以获得名还有值,也可以获得当前域对象。通过getSource获得域对象时需要强制转化类型


在写好了监听器要到web.xml中注册,在一个事件触发后会到web.xml中去找有没有对应的触发

68ee40f2b9851b359744742fc53e98f3bfc.png

或者使用注解

@WebListener()






e7d4acac521d0cc71991b81e33d2adccaee.png bb7b481159bff4b694f7b620d8479b6b175.jpg

它,

不仅仅是一个码


本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2019-08-28 20:29  木瓜煲鸡脚  阅读(26)  评论(0)    收藏  举报