Tomcat 8.x "Application", Listener (life cycle monitor, Event listener)

Source: Internet
Author: User
Tags event listener tomcat


The following listening can be configured in the Web-inf/web.xml file

	<listener>
	    <listener-class>cn.java.listener.event.myhttpsessionattributelistener</ Listener-class>
	</listener>


Listener Interface List

		Event listener
//		Javax.servlet.ServletContextAttributeListener;		Javax.servlet.ServletRequestAttributeListener;		Javax.servlet.HttpSessionAttributeListener;		Javax.servlet.ServletRequestListener;		Javax.servlet.HttpSessionIdListener;
		
		Life cycle listener
//		 Javax.servlet.ServletContextListener;		 Javax.servlet.http.HttpSessionListener;

Event listeners


Session Property modification, event listener

Package cn.java.listener.event;
Import Javax.servlet.http.HttpSessionAttributeListener;

Import javax.servlet.http.HttpSessionBindingEvent; The public class Myhttpsessionattributelistener implements Httpsessionattributelistener {/** * triggers when adding attributes * Trigger location: Request
	 . GetSession (). setattribute ("Key1", "value1");  * * @Override public void attributeadded (Httpsessionbindingevent event) {//Event.getsource () = = event.getsession () = = 
	 Org.apache.catalina.session.StandardSessionFacade//Event.getname () = "Key1"//event.getvalue () = = "Value1"}/** * Trigger location When deleting attributes: Request.getsession (). RemoveAttribute ("Key1")/@Override public void attributeremoved (httpses Sionbindingevent event) {//Event.getsource () = = event.getsession () = = = Org.apache.catalina.session.StandardSessionFacade//Event.getname () = "Key1"//event.getvalue () = "Old Value"}/** *
	 When the property is replaced or modified, the trigger location is triggered: Request.getsession (). setattribute ("Key1", "value1_new"); */@Override public void attributereplaced (HTTPsessionbindingevent event) {//Event.getsource () = = event.getsession () = = =
 Org.apache.catalina.session.StandardSessionFacade//event.getname () = = "Key1"//event.getvalue () = = "Old Value"}}

SessionID when modified, event listener

Package cn.java.listener.event;

Import javax.servlet.http.HttpSessionEvent;
Import Javax.servlet.http.HttpSessionIdListener;

The public class Myhttpsessionidlistener implements Httpsessionidlistener {

	/**
	 * Changes the SessionID when the trigger
	 * Org.apache.catalina.session.StandardSession.tellChangedSessionId (...);
	 * Trigger Location: Request.changesessionid ();
	 */
	@Override public
	void Sessionidchanged (Httpsessionevent event, String Oldsessionid) {
//		Event.getsession () = = = Event.getsource () = = =  org.apache.catalina.session.StandardSessionFacade
	}

}

ServletContext Context Property modification, event listener

Package cn.java.listener.event;
Import javax.servlet.ServletContextAttributeEvent;

Import Javax.servlet.ServletContextAttributeListener; The public class Myservletcontextattributelistener implements Servletcontextattributelistener {/** * triggers the trigger location when adding properties
	 : Request.getservletcontext (). setattribute ("Key1", "value1"); */@Override public void attributeadded (Servletcontextattributeevent event) {//event.getservletcontext () = = Event.get Source () = = Org.apache.catalina.core.ApplicationContextFacade//event.getname () = "Key1"//event.getvalue () = "Val" Ue1 "}/** * Trigger location: Request.getservletcontext () removeattribute (" Key1 ")/@Override public void at Tributeremoved (Servletcontextattributeevent event) {//event.getservletcontext () = = Event.getsource () = =
	 Org.apache.catalina.core.ApplicationContextFacade//event.getname () = = "Key1"//event.getvalue () = "Old Value"}/** * Trigger location when replacing and modifying attributes: Request.getservletcontext () setattribute ("Key1", "Value1_nEW "); */@Override public void attributereplaced (Servletcontextattributeevent event) {//event.getservletcontext () = = Event GetSource () = = Org.apache.catalina.core.ApplicationContextFacade//event.getname () = = "Key1"//event.getvalue () = =
 "Old Value"}}

Request property modification, Event listener

Package cn.java.listener.event;
Import javax.servlet.ServletRequestAttributeEvent;

Import Javax.servlet.ServletRequestAttributeListener; The public class Myservletrequestattributelistener implements Servletrequestattributelistener {/** * triggers the trigger location when adding properties: R
	 Equest.setattribute ("Key1", "value1"); */@Override public void attributeadded (Servletrequestattributeevent event) {//event.getservletcontext () = = Event.get Source () = = Org.apache.catalina.core.ApplicationContextFacade//event.getname () = "Key1"//event.getvalue () = "Value" 1 "//event.getservletrequest () = = Org.apache.catalina.connector.RequestFacade = = Request}/** * trigger when deleting attribute		Point: Request.removeattribute ("Key1") */@Override public void attributeremoved (Servletrequestattributeevent event) {// Event.getservletcontext () = = Event.getsource () = = Org.apache.catalina.core.ApplicationContextFacade//Event.getname () = = "Key1"//event.getvalue () = "Old value"//event.getservletrequest () = = Org.apache.catalina. Connector.
	 Requestfacade = = Request}/** * Trigger location: Request.setattribute ("Key1", "value1_new") when replacing and modifying attributes * * @Override public void attributereplaced (Servletrequestattributeevent event) {//event.getservletcontext () = = event. GetSource () = = Org.apache.catalina.core.ApplicationContextFacade//event.getname () = "Key1"//event.getvalue () = "Old value"
 "//event.getservletrequest () = = Org.apache.catalina.connector.RequestFacade = = Request}}

Request creation, destruction, event listeners

Package cn.java.listener.event;

Import javax.servlet.ServletRequestEvent;
Import Javax.servlet.ServletRequestListener;

public class Myservletrequestlistener implements Servletrequestlistener {

	/**
	 * Request Destruction
	 * Trigger Location: Org.apache.catalina.core.StandardHostValve.invoke (Request request, Response Response)
	 * * *
	@Override Public
	void Requestdestroyed (Servletrequestevent event) {
//		event.getservletcontext () = = Event.getsource () = = Org.apache.catalina.core.ApplicationContextFacade  
//		event.getservletrequest () = = Org.apache.catalina.connector.Request
		
	}

	/**
	 * Request Initialization
	 * Trigger Location: Org.apache.catalina.core.StandardHostValve.invoke (Request request, Response Response)
	 * * *
	@Override Public
	void Requestinitialized (Servletrequestevent event) {
//		event.getservletcontext () = = Event.getsource () = = Org.apache.catalina.core.ApplicationContextFacade  
//		event.getservletrequest () = = Org.apache.catalina.connector.Request
	}

}

Life cycle Listeners

Session creation, destruction, lifecycle listeners

Package cn.java.listener.lifecycle;

Import javax.servlet.http.HttpSessionEvent;
Import Javax.servlet.http.HttpSessionListener;

/** * Session Lifecycle
 * @author Administrator * * */Public
class Myhttpsessionlistener implements Httpsessionlistener {


	/**
	 * Trigger Location 1:
	 * 		Request.changesessionid ();
	 * 		org.apache.catalina.session.StandardSession.setId (String ID)
	 * 		Org.apache.catalina.session.StandardSession.tellNew ()
	 */
	@Override public
	void sessioncreated ( Httpsessionevent event) {
//		event.getsource () = = Event.getsource () = =  Org.apache.catalina.session.StandardSessionFacade
	}

	/**
	 * Trigger Location: Org.apache.catalina.session.StandardSession.expire (Boolean notify)
	 */
	@Override public
	Void Sessiondestroyed (Httpsessionevent event) {
//		event.getsource () = = Event.getsource () = =  Org.apache.catalina.session.StandardSessionFacade
	}

}

ServletContext context creation, destruction, declaring periodic listeners

Package cn.java.listener.lifecycle;

Import javax.servlet.ServletContextEvent;

/** *
 server startup, Shutdown
 * * 
 start context, or destroy context when triggering
 * @author Administrator */Public
class Myservletcontextlistener implements Javax.servlet.ServletContextListener {

	/**
	 * Trigger location: org.apache.catalina.core.StandardContext.startInternal ()
	 */
	@Override public
	Void Contextinitialized (Servletcontextevent event) {
//		event.getsource () = = Event.getservletcontext () = = Org.apache.catalina.core.ApplicationContextFacade  
	}
	
	/**
	 * Trigger location: org.apache.catalina.core.StandardContext.stopInternal ()
	 */
	@Override public
	Void Contextdestroyed (Servletcontextevent event) {
//		event.getsource () = = Event.getservletcontext () = = Org.apache.catalina.core.ApplicationContextFacade  

	}

}







Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.