监听器简介
什么是监听器?
能监听某个对象的状态变化的组件,监听域对象的变化。
监听器相关的概念
- 事件源:被监听的对象request,session,servletContext。
- 监听器:监听事件源的对象 ,8个监听器。
- 注册监听器:监听器与事件源相绑定
- 响应行为:监听到事件源变化时,去做什么事情。
监听器划分:
三个监听域对象的创建与销毁:
- ServletContextListener
- HttpSessionListener
- ServletRequestListener
三个监听域对象当中属性变化: - ServletContextAttributeListener
- HttpSessionAttributeListener
- ServletRequestAttributeListener
域监听器
- ServletContext域监听器
- HttpSessionListener
- ServletRequestListener
@WebListener()
public class Listener implements ServletContextListener,
HttpSessionListener, HttpSessionAttributeListener {
// Public constructor is required by servlet spec
public Listener() {
}
// -------------------------------------------------------
// ServletContextListener implementation
// -------------------------------------------------------
public void contextInitialized(ServletContextEvent sce) {
System.out.println("contextInitialized");
}
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("contextDestroyed");
}
// -------------------------------------------------------
// HttpSessionListener implementation
// -------------------------------------------------------
public void sessionCreated(HttpSessionEvent se) {
System.out.println("sessionCreated");
}
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("sessionDestroyed");
}
// -------------------------------------------------------
// HttpSessionAttributeListener implementation
// -------------------------------------------------------
public void attributeAdded(HttpSessionBindingEvent sbe) {
/* This method is called when an attribute
is added to a session.
*/
}
public void attributeRemoved(HttpSessionBindingEvent sbe) {
/* This method is called when an attribute
is removed from a session.
*/
}
public void attributeReplaced(HttpSessionBindingEvent sbe) {
/* This method is invoked when an attribute
is replaced in a session.
*/
}
}
web.xml中配置
<listener>
<listener-class>org.youyuan.servlet.Listener</listener-class>
</listener>