流水只能带走落花 而经典爱情绽放千年 芬芳如初 依然烈士般活在历史深处的细节 真实而生动 并且以不锈钢的精神穿越时空 超过我们的生命 面对经典爱情,我看见太阳下闪光的一段叫今生 埋在土里的那一段就叫来世 爱情啊,金石俱焚后的等待 漫长复漫长 今天我们靠歌声救回一些玫瑰和蝴蝶 让充满爱情的情节起死回生 我们用唇齿呵护爱情 在经典爱情的晶莹剔透里 我们看见 痴心比人活得更久

8/29/2007

Java Servlet Life Cycle 之监听器(Listener Class)

说明:A 表1为Servlet Life-Cycle Events,内容摘抄自“ The JavaTrademarked EE 5 Tutorial”的“Chapter 3: Java Servlet Technology
B WebContextListener.java SessionListenter.java RequestListenter.java分别为实现例子
C web.xml 为配置文件片段

表1 Servlet Life-Cycle Events
Object
Event
Listener Interface and Event Class
Web context
(see Accessing the Web Context)
Initialization and destruction
Attribute added, removed, or replaced
Creation, invalidation, activation, passivation, and timeout
Attribute added, removed, or replaced
Request
A servlet request has started being processed by web components
Attribute added, removed, or replaced

-- WebContextListener.java

public class WebContextListener implements ServletContextListener, ServletContextAttributeListener {
/*
* ServletContextListener and servletContextEvent
* Web context Destruction
*/
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("[INFO]:Web context 销毁... ...");
}

/*
* ServletContextListener and servletContextEvent
* Web context Initialization
*/
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("[INFO]:Web context 初始化 ... ..." );
}

/*
* ServletContextAttributeListener and ServletContextAttributeEvent
* Web context Attribute Added
*
* ServletContext servletContext = this.getServletContext();
* - Added
* servletContext.setAttribute("name", "Kela");
* - Replaced
* servletContext.setAttribute("name", "KANGFENG");
* - Removed
* servletContext.removeAttribute("name");
*
*/
public void attributeAdded(ServletContextAttributeEvent arg0) {
System.out.println("[INFO]:Web context's attribute added");
System.out.println("[INFO]:name is " + arg0.getServletContext().getAttribute("name"));
}

public void attributeRemoved(ServletContextAttributeEvent arg0) {
System.out.println("[INFO]:Web context's attribute removed");
System.out.println("[INFO]:name is " + arg0.getServletContext().getAttribute("name"));
}

public void attributeReplaced(ServletContextAttributeEvent arg0) {
System.out.println("[INFO]:Web context's attribute replaced");
System.out.println("[INFO]:name is " + arg0.getServletContext().getAttribute("name"));
}
}

-- SessionListenter.java
public class SessionListenter implements HttpSessionListener, HttpSessionActivationListener, HttpSessionAttributeListener {

/*
* 创建Session
* HttpSession session = request.getSession();
* 新增Attribute
* session.setAttribute("userName", "kela");
* 修改Attribute
* session.setAttribute("userName", "KangFeng");
* 删除Attribute
* session.removeAttribute("userName");
* 销毁Session
* session.invalidate();
*/
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("[INFO]: HttpSession 对象被创建... ...");

}

public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("[INFO]: HttpSession 对象被摧毁... ...");
}

public void sessionDidActivate(HttpSessionEvent arg0) {
System.out.println("::::::::::::");
}

public void sessionWillPassivate(HttpSessionEvent arg0) {
System.out.println("::::::::::::");
}

public void attributeAdded(HttpSessionBindingEvent arg0) {
System.out.println("[INFO]: 新增 HttpSession's attribute");
System.out.println("[INFO]: userName = " + arg0.getSession().getAttribute("userName"));
}

public void attributeRemoved(HttpSessionBindingEvent arg0) {
System.out.println("[INFO]: 移除 HttpSession's attribute");
System.out.println("[INFO]: userName = " + arg0.getSession().getAttribute("userName"));

}

public void attributeReplaced(HttpSessionBindingEvent arg0) {
System.out.println("[INFO]: 修改 HttpSession's attribute");
System.out.println("[INFO]: userName = " + arg0.getSession().getAttribute("userName"));
}
}

-- RequestListenter.java
public class RequestListenter implements ServletRequestListener, ServletRequestAttributeListener {

public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("[INFO]: A servlet request 对象被销毁... ...");
}

public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("[INFO]: A servlet request 对象被创建... ...");
}

/*
* 新增
* request.setAttribute("requUserName", "Kela");
* 修改
* request.setAttribute("requUserName", "KangFeng");
* 移除
* request.removeAttribute("requUserName");
*/
public void attributeAdded(ServletRequestAttributeEvent arg0) {
System.out.println("[INFO]: A servlet request'attribute 新增... ...");
System.out.println("[INFO]: requUserName = " + arg0.getServletRequest().getAttribute("requUserName"));
}

public void attributeRemoved(ServletRequestAttributeEvent arg0) {
System.out.println("[INFO]: A servlet request'attribute 移除... ...");
System.out.println("[INFO]: requUserName = " + arg0.getServletRequest().getAttribute("requUserName"));
}

public void attributeReplaced(ServletRequestAttributeEvent arg0) {
System.out.println("[INFO]: A servlet request'attribute 修改... ...");
System.out.println("[INFO]: requUserName = " + arg0.getServletRequest().getAttribute("requUserName"));
}
}

-- web.xml

com.kela.web.listeners.WebContextListener


com.kela.web.listeners.SessionListenter


com.kela.web.listeners.RequestListenter

没有评论: