知识点汇总
一、ServletContextListener:监听ServletContext对象被创建或销毁的Servlet监听器
①创建实现Servlet Context Listener的类并且实现其中的两个方法。
②在web.xml文件中配置Listener
作用:在当前web应用被加载时对当前的web应用相关资源进行初始化操作。
二、域对象中属性变更的事件监听器这三个监听器的接口分别是:
ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener
三、感知Session绑定的时间监听器
HttpSessionBindingListener接口和HttpSessionActivationListener接口不需要配置web.xml
代码示例:
实现ServletContextListener,ServletRequestListener,HttpSessionListener接口
public class HelloServletContextListener implements ServletContextListener,
ServletRequestListener,HttpSessionListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext对象创建"+sce.getServletContext());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext对象被销毁"+sce.getServletContext());
}
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("ServletRequestListener被销毁");
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("ServletRequestListener被创建");
}
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("httpSession被创建");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("HttpSession被创建");
}
}
ServletContextAttributeListener,ServletRequestAttributeListener,HttpSessionAttributeListener接口实现
public class AttributeListener implements ServletContextAttributeListener,
ServletRequestAttributeListener,HttpSessionAttributeListener {
@Override
public void attributeAdded(ServletContextAttributeEvent scae) {
System.out.println("");
}
@Override
public void attributeRemoved(ServletContextAttributeEvent scae) {
}
@Override
public void attributeReplaced(ServletContextAttributeEvent scae) {
}
@Override
public void attributeAdded(ServletRequestAttributeEvent srae) {
System.out.println("向request中添加了一个属性"+srae.getName()+srae.getValue());
}
@Override
public void attributeRemoved(ServletRequestAttributeEvent srae) {
System.out.println("request中移除了一个属性"+srae.getName()+srae.getValue());
}
@Override
public void attributeReplaced(ServletRequestAttributeEvent srae) {
System.out.println("request中替换了一个属性"+srae.getName()+srae.getValue());
}
@Override
public void attributeAdded(HttpSessionBindingEvent se) {
}
@Override
public void attributeRemoved(HttpSessionBindingEvent se) {
}
@Override
public void attributeReplaced(HttpSessionBindingEvent se) {
}
}
在web.xml中配置如下
<!--配置Listener-->
<listener>
<listener-class>cn.javaweb7.com.HelloServletContextListener</listener-class>
</listener>
<listener>
<listener-class>cn.javaweb7.com.AttributeListener</listener-class>
</listener>
实现HttpSessionBindingListener, HttpSessionActivationListener接口
public class Customer implements HttpSessionBindingListener,
HttpSessionActivationListener{
@Override
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("绑定到Session");
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("从Session中解除绑定");
}
@Override
public void sessionWillPassivate(HttpSessionEvent se) {
System.out.println("从内存中写到磁盘上。。。");
}
@Override
public void sessionDidActivate(HttpSessionEvent se) {
System.out.println("从磁盘中读取出来。。。");
}
}