监听器:
它是一个接口,内容由我们来实现;
它需要注册,例如注册在按钮上!
监听器中的方法,会在特殊事件发生时被调用!
监听器可以分为三种类型:
1、监听对象的创建:
ServletContext:主要监听servletContext的创建,需要实现ServeltContextListener接口
ServletContext生命周期监听:
ServletContextListener,它有两个方法,一个在出生时调用,一个在死亡时调用;
void contextInitialized(ServletContextEvent sce):创建ServletContext时
void contextDestroyed(ServletContextEvent sce):销毁ServletContext时
ServletRequest:主要监听request的创建, 需要实现ServletRequestListener接口
ServletRequest生命周期监听:
ServletRequestListener,它有两个方法,一个在出生时调用,一个在死亡时调用;
void requestInitialized(ServletRequestEvent sre):创建request时
void requestDestroyed(ServletRequestEvent sre):销毁request时
HttpSession:主要监听session的创建,需要实现HttpSessionListener接口
HttpSession生命周期监听:
HttpSessionListener,它有两个方法,一个在出生时调用,一个在死亡时调用;
void sessionCreated(HttpSessionEvent se):创建session时
void sessionDestroyed(HttpSessionEvent se):销毁session时
2、监听属性的改变:
ServletContext:主要监听servletContext属性的更改、添加、删除,需要实现ServeltContextAttrbuteListener接口。
属性监听:ServletContextAttributeListener,
它有三个方法,一个在添加属性时调用,一个在替换属性时调用,最后一个是在移除属性时调用。
void attributeAdded(ServletContextAttributeEvent event):添加属性时;
void attributeReplaced(ServletContextAttributeEvent event):替换属性时;
void attributeRemoved(ServletContextAttributeEvent event):移除属性时;
ServletRequest:主要监听request属性的更改、添加、删除, 需要实现ServletRequestAttrbuteListener接口
属性监听:ServletRequestAttributeListener,
它有三个方法,一个在添加属性时调用,一个在替换属性时调用,最后一个是在移除属性时调用。
void attributeAdded(ServletRequestAttributeEvent srae):添加属性时
void attributeReplaced(ServletRequestAttributeEvent srae):替换属性时
void attributeRemoved(ServletRequestAttributeEvent srae):移除属性时
HttpSession:主要监听session属性的更改、添加、删除,需要实现HttpSessionAttrbuteListener接口
属性监听:HttpSessioniAttributeListener
它有三个方法,一个在添加属性时调用,一个在替换属性时调用,最后一个是在移除属性时调用。
void attributeAdded(HttpSessionBindingEvent event):添加属性时;
void attributeReplaced(HttpSessionBindingEvent event):替换属性时
void attributeRemoved(HttpSessionBindingEvent event):移除属性时
3、感知监听器:
监听session的活化与钝化:httpSessionActivationListener主要监听了session的活化与钝化
监听session与对象的绑定:httpSessionBindingListener监听了session与对象的绑定
感知监听(都与HttpSession相关) 它用来添加到JavaBean上,而不是添加到三大域上!
这两个监听器都不需要在web.xml中注册!