分类：电脑/网络-互联网-上网帮助
问题：JSPSession处理的方法是什么？ 
回答：ASP程序员经常要在 a文件内处理Application_start,Session_Start等事件，如：用户验证、重定向不同编码页面等，十分方便，然而一向颇受欢迎的JSP并不很支持这种处理，除了化服务器JRun支持global.jsa以外，竟连应用率极高的开放源码服务器Tomcat都不支持，这给JSP的开发造成不小障碍,虽然早期Tomcat(5.0以前版本)下可以通过以下方式实现Session-start事件处理1.       添加Sessionsession.put(“ stener”,new MyListener(getServletContext())2.       定义MyListener类import  tp.*;import  rvlet.*;public class MyListener implements HttpSessionBindingListener{        ServletContext context;        public ODSessionListener(ServletContext context)        {                ntext=context;        }                public void valueBound(HttpSessionBindingEvent event)        {                intln(“bound”);        }                       public void valueUnBound(HttpSessionBindingEvent event)        {                intln(“unbound”);        }} 但处理前提是Session已经建立，并且不能在Session创建时处理验证等事件，通过研究Servlet 2.4（Tomcat5.0内建）终于找到一种可行方法，实现方法如下：//---------------------- SessionListener.java----------------------------------------------------package listeners;import  rvlet.ServletContext;import  rvlet.ServletContextEvent;import  rvlet.ServletContextListener;import  tp.HttpSessionAttributeListener;import  tp.HttpSessionBindingEvent;import  tp.HttpSessionEvent;import  tp.HttpSessionListener;// ServletRequestListener为Servlet2.4新增接口import  rvlet.ServletRequestListener;import  rvlet.ServletRequestEvent;import  tp.HttpServletRequest; public final class SessionListenerimplements HttpSessionListener,ServletRequestListener {private  HttpServletRequest  request;public void requestDestroyed(ServletRequestEvent sre) { } public  void requestInitialized(ServletRequestEvent sre) {          request=(HttpServletRequest) tServletRequest();    }    public void sessionCreated(HttpSessionEvent event) {        String logMsg= tSession().getId()            +"'  '"+ tRemoteAddr()            +":"+ tRemotePort();        log("sessionCreated('" + logMsg + "')");    }     public void sessionDestroyed(HttpSessionEvent event) {        log("sessionDestroyed('" +  tSession().getId() + "')");    }     private void log(String message) {           intln("SessionListener: " + message);    }} 在开始接到客户端请求（requestInitialized）时，获得当前的HttpRequest对象保存在私有成员 request 中,这样在Session创建时可以实现对Session用户进行验证，以及关闭Session,限制IP地址访问等，这里仅以记录Session来源为例（SessionListener.java）编译这个类后还要在web.xml的host元素内加入以下行：  <listener>    <listener-class>listeners.SessionListener</listener-class>  </listener>              本文适用环境：Tomcat 5.02,J2SE1.41