更新时间:2024-01-16 来源:黑马程序员 浏览量:
在程序开发中,不仅需要对域对象进行监听,有时候还需要对某个域对象属性的变更进行监听,为了完成这样的功能,Servlet API专门提供了ServletContextAttributeListener、HttpSessionAttributeListener接口,这三个接口都定义了相同名称的方法,分别用于处理被监听对象属性的增加、删除和替换,接下来针对这三个接口中的方法进行讲解。
当向被监听的域对象中增加一个属性时,Web容器就调用事件监听器的attributeAdded()方法进行响应,该方法接收一个事件类型的参数,监听器可以通过这个参数来获取正在增加属性的域对象和被保存到域中的属性对象。这个方法在各个域属性监听器中的完整语法定义如下。
public void attributeAdded(ServletContextAttributeEvent scab)
上述是ServletContextAttributeListener接口中定义的方法,当向ServletContext对象中增加一个属性时,Web容器就调用这个方法并传递一个ServletContextEvent类型的参数。
public void attributeAdded(HttpSessionBindindEvent se)
上述是HttpSessionAttributeListener接口中定义的方法,当向HttpSession对象中增加一个属性时,Web容器就调用这个方法并传递一个HttpSessionBindindEvent类型的参数。
public void attributeAdded(ServletRequestAttributeEvent srae)
当删除被监听对象中的一个属性时,Web容器调用事件监听器的attributeRemoved()方法进行响应。这个方法在各个域属性监听器中的完整语法定义如下。
public void attributeRemoved(ServletContextAttributeEvent scab) public void attributeRemoved(HttpSessionBindindEvent se) public void attributeRemoved(ServletRequestAttributeEvent srae)
这些方法接收的参数类型与上面讲解的attributeAdded()方法一样,监听器可以通过这个参数来获取正在删除属性的域对象。
当被监听器的域对象中的某个属性被替换时,Web容器会调用事件监听器的attributereplaced()方法进行响应。这个方法在各个域属性监听器中的完整语法定义如下。
public void attributeReplaced(ServletContextAttributeEvent scab) public void attributeReplaced(HttpSessionBindindEvent se) public void attributeReplaced(ServletRequestAttributeEvent srae)
这些方法接收的参数类型与上面讲解的attributeAdded()方法一样,监听器可以通过这个参数来获取正在替换属性的域对象。
本文版权归黑马程序员Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:黑马程序员Java培训学院
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19