ServletContextAttributeListener接口
实现ServletContextAttributeListener接口的监听器可以监听到ServletContext对象中属性的变化,其提供的方法有:
void attributeAdded(ServletContextAttributeEvent scab)。
void attributeRemoved(ServletContextAttributeEvent scab)。
void attributeReplaced(ServletContextAttributeEvent scab)。
实现ServletContextAttributeListener接口可以监听对ServletContext属性的操作,当增加、删除、修改操作时,都会调用相应的方法。
当在ServletContext增加一个属性时,激发attributeAdded(ServletContextAttributeEvent scab)方法。
当在ServletContext删除一个属性时,激发attributeRemoved(ServletContextAttributeEvent scab)方法。
当在ServletContext属性被重新设置时,激发attributeReplaced(ServletContextAttributeEvent scab)方法。
public class MyServletContextAttributeListener implements
ServletContextAttributeListener {
public void attributeAdded(ServletContextAttributeEvent arg0) {
ServletContext context = arg0.getServletContext();
Object data = arg0.getValue();
System.out.println(context + "中加入了"+data);
}
public void attributeRemoved(ServletContextAttributeEvent arg0) {
ServletContext context = arg0.getServletContext();
Object data = arg0.getValue();
System.out.println(context + "中删除了"+data);
}
public void attributeReplaced(ServletContextAttributeEvent arg0) {
ServletContext context = arg0.getServletContext();
Object data = arg0.getValue();
System.out.println(context + "中更新了"+data);
}
}
Index.jsp
<%
application.setAttribute("param","xxx");
application.setAttribute("param","yyy");
application.removeAttribute("param");
%>
ServletContextListener接口
实现ServletContextListener接口的监听器可以监听ServletContext对象本身的变化,其提供的方法有:
void contextDestroyed(ServletContextEvent sce)。
void contextInitialized(ServletContextEvent sce)。
实现ServletContextListener接口可以监听ServletContext的操作。
当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法。
当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
public class MyServletContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println(arg0.getServletContext() + "被创建了");
}
public void contextInitialized(ServletContextEvent arg0) {
System.out.println(arg0.getServletContext() + "被销毁了");
}
}
Web.xml
<listener> <listener-class>cn.class3g.web.listener.MyServletContextListener
</listener-class>
</listener>
ServletRequestListener接口
实现ServletRequestListener接口的监听器可以监听ServletRequest对象本身的变化,其提供的方法有:
void requestDestroyed(ServletRequestEvent sce)。
void requestInitialized(ServletRequestEvent sce)。
实现ServletRequestListener接口可以监听ServletRequest的操作。
当创建ServletRequest时,激发requestInitialized(ServletRequestEvent sce)方法。
当销毁ServletRequest时,激发requestDestroyed(ServletRequestEvent sce)方法。
public class MyServletRequestListener implements ServletRequestListener {
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("请求对象"+arg0.getSource() + "被销毁了");
}
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("请求对象"+arg0.getSource() + "被创建了");
}
}
ServletRequestAttributeListener接口
实现ServletRequestAttributeListener接口的监听器可以监听到ServletRequest对象中属性的变化,其提供的方法有:
void attributeAdded(ServletRequestAttributeEvent scab)。
void attributeRemoved(ServletRequestAttributeEvent scab)。
void attributeReplaced(ServletRequestAttributeEvent scab)。
说明:实现ServletRequestAttributeListener接口可以监听对ServletRequest属性的操作,当增加、删除、修改操作时,都会调用相应的方法。
当在ServletRequest增加一个属性时,激发attributeAdded(ServletRequestAttributeEvent scab)方法。
当在ServletRequest删除一个属性时,激发attributeRemoved(ServletRequestAttributeEvent scab)方法。
当在ServletRequest属性被重新设置时,激发attributeReplaced(ServletRequestAttributeEvent scab)方法。
HttpSessionAttributeListener接口
实现HttpSessionAttributeListener接口的监听器可以监听到HttpSession对象中属性的变化,其提供的方法有:
void attributeAdded(HttpSessionBindingEvent se)。
void attributeRemoved(HttpSessionBindingEvent se)。
void attributeReplaced(HttpSessionBindingEvent se)。
实现HttpSessionAttributeListener接口可以监听HttpSession中属性的操作。
当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se)方法。
当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法。
当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se)方法。
public class MyHttpSessionAndRequestAttributeListener implements
HttpSessionAttributeListener, ServletRequestAttributeListener {
public void attributeAdded(HttpSessionBindingEvent se) {
System.out.println("session中增加了属性");
}
public void attributeRemoved(HttpSessionBindingEvent se) {
System.out.println("session中删除了属性");
}
public void attributeReplaced(HttpSessionBindingEvent se) {
System.out.println("session中属性被替换了");
}
public void attributeAdded(ServletRequestAttributeEvent srae) {
System.out.println("request中增加了属性");
}
public void attributeRemoved(ServletRequestAttributeEvent srae) {
System.out.println("request中删除了属性");
}
public void attributeReplaced(ServletRequestAttributeEvent srae) {
System.out.println("request中属性被替换了");
}
}
Index.jsp
<%
session.setAttribute("param","aaa");
session.setAttribute("param","bbb");
session.removeAttribute("param");
request.setAttribute("param","aaa");
request.setAttribute("param","bbb");
request.removeAttribute("param");
%>
HttpSessionListener接口
实现HttpSessionListener接口的监听器可以监听HttpSession对象本身的创建和销毁,其提供的方法有:
void sessionCreated(HttpSessionEvent se)。
void sessionDestroyed(HttpSessionEvent se)。
实现HttpSessionListener接口的监听器可以监听HttpSession的操作。
当创建一个Session时,激发sessionCreated(SessionEvent se)方法。
当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。
public class MyHttpSessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println(arg0.getSource()+ "被销毁了");
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println(arg0.getSource()+ "被创建了");
}
}
HttpSessionActivationListener接口
用于监听HttpSession对象的状态,其提供的方法有:
void sessionDidActivate(HttpSessionEvent se)。
void sessionWillPassivate(HttpSessionEvent se)。
public class Person implements HttpSessionActivationListener, Serializable {
public void sessionDidActivate(HttpSessionEvent arg0) {
System.out.println("session从硬盘读入内存了");
}
public void sessionWillPassivate(HttpSessionEvent arg0) {
System.out.println("session被存到硬盘中去了");
}
}
Index.jsp
<%
session.setAttribute("person",new Person());
%>
/META-INF/context.xml
<Context>
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="class3g"/>
</Manager>
</Context>
HttpSessionBindingListener接口
实现该接口,可以监听HttpSession对象是被激活还是钝化。
当激活一个HttpSession对象时,激发sessionDidActivate(HttpSessionEvent se)方法。
当钝化一个HttpSession对象时,激发sessionWillPassivate (HttpSessionEvent se)方法
实现了HttpSessionBindingListener接口的 JavaBean 对象可以感知自己被绑定到 Session 中和从 Session 中删除的事件
cn.class3g.domain.User
public class User implements HttpSessionBindingListener{
private String name;
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("到session中去");
}
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("从session中移除");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Index.jsp
<%
session.setAttribute("user",new User());
session.removeAttribute("param");
%>
实现ServletContextAttributeListener接口的监听器可以监听到ServletContext对象中属性的变化,其提供的方法有:
void attributeAdded(ServletContextAttributeEvent scab)。
void attributeRemoved(ServletContextAttributeEvent scab)。
void attributeReplaced(ServletContextAttributeEvent scab)。
实现ServletContextAttributeListener接口可以监听对ServletContext属性的操作,当增加、删除、修改操作时,都会调用相应的方法。
当在ServletContext增加一个属性时,激发attributeAdded(ServletContextAttributeEvent scab)方法。
当在ServletContext删除一个属性时,激发attributeRemoved(ServletContextAttributeEvent scab)方法。
当在ServletContext属性被重新设置时,激发attributeReplaced(ServletContextAttributeEvent scab)方法。
public class MyServletContextAttributeListener implements
ServletContextAttributeListener {
public void attributeAdded(ServletContextAttributeEvent arg0) {
ServletContext context = arg0.getServletContext();
Object data = arg0.getValue();
System.out.println(context + "中加入了"+data);
}
public void attributeRemoved(ServletContextAttributeEvent arg0) {
ServletContext context = arg0.getServletContext();
Object data = arg0.getValue();
System.out.println(context + "中删除了"+data);
}
public void attributeReplaced(ServletContextAttributeEvent arg0) {
ServletContext context = arg0.getServletContext();
Object data = arg0.getValue();
System.out.println(context + "中更新了"+data);
}
}
Index.jsp
<%
application.setAttribute("param","xxx");
application.setAttribute("param","yyy");
application.removeAttribute("param");
%>
ServletContextListener接口
实现ServletContextListener接口的监听器可以监听ServletContext对象本身的变化,其提供的方法有:
void contextDestroyed(ServletContextEvent sce)。
void contextInitialized(ServletContextEvent sce)。
实现ServletContextListener接口可以监听ServletContext的操作。
当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法。
当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
public class MyServletContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println(arg0.getServletContext() + "被创建了");
}
public void contextInitialized(ServletContextEvent arg0) {
System.out.println(arg0.getServletContext() + "被销毁了");
}
}
Web.xml
<listener> <listener-class>cn.class3g.web.listener.MyServletContextListener
</listener-class>
</listener>
ServletRequestListener接口
实现ServletRequestListener接口的监听器可以监听ServletRequest对象本身的变化,其提供的方法有:
void requestDestroyed(ServletRequestEvent sce)。
void requestInitialized(ServletRequestEvent sce)。
实现ServletRequestListener接口可以监听ServletRequest的操作。
当创建ServletRequest时,激发requestInitialized(ServletRequestEvent sce)方法。
当销毁ServletRequest时,激发requestDestroyed(ServletRequestEvent sce)方法。
public class MyServletRequestListener implements ServletRequestListener {
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("请求对象"+arg0.getSource() + "被销毁了");
}
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("请求对象"+arg0.getSource() + "被创建了");
}
}
ServletRequestAttributeListener接口
实现ServletRequestAttributeListener接口的监听器可以监听到ServletRequest对象中属性的变化,其提供的方法有:
void attributeAdded(ServletRequestAttributeEvent scab)。
void attributeRemoved(ServletRequestAttributeEvent scab)。
void attributeReplaced(ServletRequestAttributeEvent scab)。
说明:实现ServletRequestAttributeListener接口可以监听对ServletRequest属性的操作,当增加、删除、修改操作时,都会调用相应的方法。
当在ServletRequest增加一个属性时,激发attributeAdded(ServletRequestAttributeEvent scab)方法。
当在ServletRequest删除一个属性时,激发attributeRemoved(ServletRequestAttributeEvent scab)方法。
当在ServletRequest属性被重新设置时,激发attributeReplaced(ServletRequestAttributeEvent scab)方法。
HttpSessionAttributeListener接口
实现HttpSessionAttributeListener接口的监听器可以监听到HttpSession对象中属性的变化,其提供的方法有:
void attributeAdded(HttpSessionBindingEvent se)。
void attributeRemoved(HttpSessionBindingEvent se)。
void attributeReplaced(HttpSessionBindingEvent se)。
实现HttpSessionAttributeListener接口可以监听HttpSession中属性的操作。
当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se)方法。
当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法。
当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se)方法。
public class MyHttpSessionAndRequestAttributeListener implements
HttpSessionAttributeListener, ServletRequestAttributeListener {
public void attributeAdded(HttpSessionBindingEvent se) {
System.out.println("session中增加了属性");
}
public void attributeRemoved(HttpSessionBindingEvent se) {
System.out.println("session中删除了属性");
}
public void attributeReplaced(HttpSessionBindingEvent se) {
System.out.println("session中属性被替换了");
}
public void attributeAdded(ServletRequestAttributeEvent srae) {
System.out.println("request中增加了属性");
}
public void attributeRemoved(ServletRequestAttributeEvent srae) {
System.out.println("request中删除了属性");
}
public void attributeReplaced(ServletRequestAttributeEvent srae) {
System.out.println("request中属性被替换了");
}
}
Index.jsp
<%
session.setAttribute("param","aaa");
session.setAttribute("param","bbb");
session.removeAttribute("param");
request.setAttribute("param","aaa");
request.setAttribute("param","bbb");
request.removeAttribute("param");
%>
HttpSessionListener接口
实现HttpSessionListener接口的监听器可以监听HttpSession对象本身的创建和销毁,其提供的方法有:
void sessionCreated(HttpSessionEvent se)。
void sessionDestroyed(HttpSessionEvent se)。
实现HttpSessionListener接口的监听器可以监听HttpSession的操作。
当创建一个Session时,激发sessionCreated(SessionEvent se)方法。
当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。
public class MyHttpSessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println(arg0.getSource()+ "被销毁了");
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println(arg0.getSource()+ "被创建了");
}
}
HttpSessionActivationListener接口
用于监听HttpSession对象的状态,其提供的方法有:
void sessionDidActivate(HttpSessionEvent se)。
void sessionWillPassivate(HttpSessionEvent se)。
public class Person implements HttpSessionActivationListener, Serializable {
public void sessionDidActivate(HttpSessionEvent arg0) {
System.out.println("session从硬盘读入内存了");
}
public void sessionWillPassivate(HttpSessionEvent arg0) {
System.out.println("session被存到硬盘中去了");
}
}
Index.jsp
<%
session.setAttribute("person",new Person());
%>
/META-INF/context.xml
<Context>
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="class3g"/>
</Manager>
</Context>
HttpSessionBindingListener接口
实现该接口,可以监听HttpSession对象是被激活还是钝化。
当激活一个HttpSession对象时,激发sessionDidActivate(HttpSessionEvent se)方法。
当钝化一个HttpSession对象时,激发sessionWillPassivate (HttpSessionEvent se)方法
实现了HttpSessionBindingListener接口的 JavaBean 对象可以感知自己被绑定到 Session 中和从 Session 中删除的事件
cn.class3g.domain.User
public class User implements HttpSessionBindingListener{
private String name;
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("到session中去");
}
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("从session中移除");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Index.jsp
<%
session.setAttribute("user",new User());
session.removeAttribute("param");
%>