<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-199  評論-203  文章-11  trackbacks-0
    以前用session時只知道session是和服務(wù)器連接的一個會話,有幾個常用的接口。
    這兩天仔細(xì)看了下這方面的資料,在這里和大家一起分享,如果有寫的不正確的地方,請指正,謝謝。
    下面我們在一個servlet中寫測試程序,class名為SeesinInfoServlet,我們一般在程序中取得session是用
    request的getSession()來取得容器中的session,該方法當(dāng)容器中已經(jīng)存在了該session的時候,返回已經(jīng)存
    在的session,否則創(chuàng)建一個新的session,然后返回創(chuàng)建的session。request還有另外一個getSession()的重
    載方法:HttpSession getSession(boolean create),一般不常用,大家可以查j2ee的api,每個session都對應(yīng)
    唯一的sessionId,sessionId可以通過getId()方法獲得,session是維持客服端和服務(wù)器端狀態(tài)的一個東西,是
    通過sessionId來一一對應(yīng)的,客服端的sessionId一般保存在cookie中,如果客服端的cookie沒有被禁掉的話
    。如果cookie被禁掉,我們可以通過URL重寫來實現(xiàn)把sessionId傳到服務(wù)器。請看下面程序。
    1. import java.io.IOException;   
    2. import java.io.PrintWriter;   
    3. import java.util.Date;   
    4.   
    5. import javax.servlet.ServletException;   
    6. import javax.servlet.http.HttpServlet;   
    7. import javax.servlet.http.HttpServletRequest;   
    8. import javax.servlet.http.HttpServletResponse;   
    9. import javax.servlet.http.HttpSession;   
    10.   
    11. public class SeesinInfoServlet extends HttpServlet {   
    12.   
    13.     @Override  
    14.     protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {   
    15.         PrintWriter pw = res.getWriter();   
    16.         HttpSession s = req.getSession();   
    17.         pw.write("New Session:" + s.isNew() + "<br>");   
    18.         pw.write("Session Id:" + s.getId() + "<br>");   
    19.         pw.write("Session Create Time:" + new Date(s.getCreationTime()) + "<br>");   
    20.            
    21.         pw.write("<br>");   
    22.         pw.println("<h3>Request Information</h3>");   
    23.         pw.println("Session Id from Request:" + req.getRequestedSessionId()+ "<br>");   
    24.         pw.println("Session Id via Cookie:" + req.isRequestedSessionIdFromCookie()+ "<br>");   
    25.         pw.println("Session Id rewritten Url:" + req.isRequestedSessionIdFromURL()+ "<br>");   
    26.         pw.println("valid session id:" + req.isRequestedSessionIdValid()+ "<br>");   
    27.         //pw.println("<a href="+ res.encodeURL("SessionInfoServlet")+">refresh</a>");   
    28.         pw.println("<a href='SessionInfoServlet'>refresh</a>");   
    29.         pw.close();   
    30.            
    31.     }   
    32.   
    33. }  

    PrintWriter pw = res.getWriter();這一句取得服務(wù)器端反映給客服端的輸出流。
    HttpSession s = req.getSession();取得session。
    req.getRequestedSessionId();這一句取得客服端cookie中的sessionId,如果cookie沒有被禁掉的話,第一次訪問為null,因為還沒創(chuàng)建session,以后每次都和
    s.getId() 取得的值一致。
    req.isRequestedSessionIdFromCookie();如果沒有禁掉cookie,返回true。
    req.isRequestedSessionIdFromURL();是否通過URL重寫取得sessionId,
    //pw.println("<a href="+ res.encodeURL("SessionInfoServlet")+">refresh</a>");其中的res.encodeURL(String),即為URL重寫,我們可以看到地址欄后會跟sessionId。
    如果不是URL重寫,則地址欄中沒有sessionId。

    posted on 2009-06-16 22:53 Werther 閱讀(359) 評論(0)  編輯  收藏 所屬分類: 10.Java
    主站蜘蛛池模板: 久久精品a一国产成人免费网站| 国产一精品一aⅴ一免费| 456亚洲人成在线播放网站| 国产gav成人免费播放视频| 中文字幕乱理片免费完整的| 亚洲国产精品成人综合色在线婷婷 | 四虎成人免费网址在线| h视频在线免费观看| 亚洲网站免费观看| 免费人成网站7777视频| 日韩在线不卡免费视频一区| 亚洲精品乱码久久久久久V | 国产亚洲精品美女久久久| 在线看片免费不卡人成视频| 成在线人直播免费视频| 亚洲国产午夜精品理论片| 亚洲一级黄色视频| 免费a级毛片高清视频不卡| 日韩av无码免费播放| 亚洲av最新在线观看网址| 亚洲欧洲精品国产区| 久久久久亚洲精品无码网址| 精品久久久久国产免费| 免费国产成人18在线观看| 国产午夜亚洲精品不卡| 亚洲日产2021三区| 亚洲精品无码专区久久久| 国产成人精品免费视频软件| 2019中文字幕在线电影免费| 日产久久强奸免费的看| 亚洲欧美成人一区二区三区| 91在线亚洲精品专区| 亚洲男同帅GAY片在线观看| 国产免费直播在线观看视频| aⅴ免费在线观看| a成人毛片免费观看| 特级毛片在线大全免费播放| 亚洲一区二区三区写真 | 亚洲中文字幕久久精品无码VA| 久久青草亚洲AV无码麻豆| 中文字幕日韩亚洲|