隨筆-22  評論-8  文章-0  trackbacks-0

          比如:在網上書店應用中,從一個客戶開始購物,到最后結賬,整個過程是一個Session.
          Servlet API中定義了javax.servlet.http.HttpSession接口,Servlet容器必須實現這一接口。當一個Session開始時,Servlet容器將創建一個HttpSession對象,在HttpSession對象中可以存放客戶狀態的信息。Servelt容器為HttpSession分配一個唯一標識符,稱為Session ID.Servlet容器把Session ID作為Cookie保存在客戶的瀏覽器中。每次客戶發出HTTP請求時,Servlet容器可以從HttpRequest對象中讀取Session ID,然后根據SessionID找到相應的HttpSession對象,從而獲取客戶的狀態信息。
          HttpSession接口中的方法:
          getId():返回Session的ID;
          invalidate():使當前的Session失效,Servlet容器會釋放HttpSession對象占用的資源。
          setAttribute(String name,Object value):將一對name/Value屬性保存在HttpSession對象中
          getAttribut(String name):根據name參數返回保存在HttpSession對象的屬性值。
          getAttributeNames():以數組的方式HttpSession對象中所有的屬性名。
          isNew():判斷是否是新創建的Session,如果是新創建的Session,返回true,否則返回false
          setMaxInactiveInterval():設定一個Session可以處于不活動狀態的最大時間間隔,以秒為單位。如果超過這個時間。Session自動失效,如果設置為負數,表示不限制Session付出與不活動狀態的時間。
          getMaxInactiveInterval()讀取當前Sessions可以處于不活動狀態的最大時間間隔。
          在Java Servlet API中提出了跟蹤Session的另一種機制,如果客戶瀏覽器不支持Cookie,Servlet容器可以重寫客戶請求的URL,吧Session ID添加到URL信息中。
          HttpServletResponse接口提供了重寫URL的方法:
          public java.lang.String encodeURL(java.lang.String url)
          該方法的實現機制為:
          先判斷當前的Web組件是否啟用Session,如果沒有啟用Session,例如在JSP中聲明
          <%@ page session="false"%>或者已經執行了session.invalidate()方法,那么直接返回參數URL
          再判斷客戶瀏覽器是否支持Cookie,如果支持Cookie,就直接返回參數URL;如果不支持,就在參數URL中加入Session ID信息,然后返回修改后的URL.

          String username1 = "";  (username1 為自定義的字段,從數據庫中取出值后放到里面)
          request.getSession().setAttribute("username",username1);            
           從request里得到session在把值傳進去,不過這種方法可以將從數據庫里取得的數據用session顯示于頁面,但當在頁面點擊按鈕產生別的action的時候,取出來顯示在頁面的數據就都沒了,原來是request的生命周期是一個請求,當另外一個請求發生時,原來action中的request的值沒重置了,也就是說原來的數據都沒了,所以在頁面也不會顯示.這時候要將原來action中的request.getSession().setAttribute("username",username1);  
          改為HttpSession session = request.getSession();   session.setAttribute("username",username1);這時候傳到頁面的生命周期就是一個會話,即使你在頁面有別的請求,但session中的值依然存在.

          posted on 2011-06-14 10:40 Hukin 閱讀(377) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 冀州市| 宝山区| 竹山县| 孟津县| 靖宇县| 临沧市| 鹤峰县| 芜湖市| 始兴县| 金川县| 徐汇区| 苍山县| 邢台市| 江都市| 曲阳县| 阿拉善左旗| 万荣县| 黄浦区| 克什克腾旗| 彰武县| 锡林浩特市| 蒙城县| 南丰县| 江阴市| 房山区| 余干县| 东至县| 巴马| 隆安县| 宁南县| 明溪县| 昭苏县| 仙游县| 涿州市| 南澳县| 邛崃市| 调兵山市| 拉萨市| 峨山| 涿州市| 阿拉善盟|