ASP programmers often handle Application_Start, Session_Start, etc. within the global.asa file
Events, such as user verification, redirect different coded pages, etc. Open source server Tomcat does not support, this causes non-small obstacles to JSP, although early Tomcat (5.0 previous version) can implement session-start event processing in the following ways
1. Add session
Session.Put ("Bind.Listener", New MyListener (GetServletContext ())
2. Define your Mylistener class
Import javax.servlet.http. *;
Import javax.servlet. *;
Public Class MyListener Implements HttpSessionBindingListener
{
ServletContext context;
Public OdsessionListener (servletContext Context)
{
THIS.CONTEXT = Context;
}
Public void valuebound (httpsessionBindingEvent evenet)
{
System.out.println ("Bound");
}
Public void valueunbound (httpsessionBindingEvent evenet)
{
System.out.println ("UNBOUND");
}
}
However, the premise of processing is that session has been established, and cannot process verification when session creation, and finally find a feasible method by studying servlet 2.4 (Tomcat5.0 built), the implementation method is as follows:
/ / ------------------------------------------- -----------------------------
Package listener;
Import javax.servlet.servletContext;
Import javax.servlet.servletContextevent;
Import Javax.Servlet.ServletContextListener;
Import javax.servlet.http.httpsessionattributeListener;
Import javax.servlet.http.httpsessionBindingEvent;
Import javax.servlet.http.httpsessionEvent;
Import javax.servlet.http.httpsessionListener;
// servletRequestListener new interface for servlet2.4
Import Javax.Servlet.ServletRequestListener;
Import javax.servlet.servletRequestevent;
Import javax.servlet.http.httpservletRequest;
Public Final Class SessionListener
Implements httpsessionListener, servletRequestListener {
Private httpservletRequest request;
Public void RequestDestroyed (ServletRequestevent SRE) {}
Public Void Requestinitialized (ServletRequestevent SRE) {
REQUEST = (httpservletRequest) Sre.getServletRequest ();
}
Public void sessioncreated (httpsessioneverive) {
String logmsg = event.getations (). GetId ()
"'" Request.getRemoteAddr ()
":" Request.getRemotEport ();
Log ("Sessioncreated ('" logmsg ")");
}
Public void sessionDestroyed (httpsessioneverive) {
Log ("SessionDestroyed ('" event.getations (). getId () "");
}
Private void log (string message) {
System.out.println ("SessionListener: Message);
}
}
When starting to receive the client request (RequestInitialized), get the current HttpRequest object in private member request, which can be verified to the session user when session creation, and shut down the session, limit IP address access, here only Record session source as an example (sessionlistener.java)
After compiling this class, you must add the following lines within the Host element of Web.xml:
listener>
Applicable environment: Tomcat 5.02, J2SE1.41 (does not support commercial server)