掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

JSP Session處理(lǐ)

2019/3/24 8:18:11

JSP Session處理(lǐ)


ASP程序員經常要在global.asa文(wén)件(jiàn)内處理(lǐ)Application_start,Session_Start等

事件(jiàn),如(rú):用(yòng)戶驗證、重定向不同編碼頁面等,十分(fēn)方便,然而一向頗受歡迎的(de)JSP并不很支持這種處理(lǐ),除了商業(yè)化服務器(qì)JRun支持global.jsa以外,竟連應用(yòng)率極高(gāo)的(de)開(kāi)放(fàng)源碼服務器(qì)Tomcat都(dōu)不支持,這給JSP的(de)開(kāi)發造成不小(xiǎo)障礙,雖然早期Tomcat(5.0以前版本)下可(kě)以通過以下方式實現Session-start事件(jiàn)處理(lǐ)

1.       添加Session

session.put(“bind.listener”,new MyListener(getServletContext())

2.       定義MyListener類

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 event)

        {

               System.out.println(“bound”);

        }

              

        public void valueUnBound(HttpSessionBindingEvent event)

        {

               System.out.println(“unbound”);

        }

}

 

但(dàn)處理(lǐ)前提是Session已經建立,并且不能(néng)在Session創建時處理(lǐ)驗證等事件(jiàn),通過研究Servlet 2.4(Tomcat5.0内建)終于找到(dào)一種可(kě)行(xíng)方法,實現方法如(rú)下:

//---------------------- SessionListener.java----------------------------------------------------

package listeners;

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爲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(HttpSessionEvent event) {

        String logMsg=event.getSession().getId()

            +"'  '"+request.getRemoteAddr()

            +":"+request.getRemotePort();

        log("sessionCreated('" + logMsg + "')");

    }

 

    public void sessionDestroyed(HttpSessionEvent event)


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号