對session的理解


      java Servlet API引入session 機制來跟蹤客戶的狀態,session指的是在一段時間內,單個客戶和web服務器之間一連串的交互過程,在一個session中,一個客戶可能會多次請求同一個網頁,也可能請求多個不同服務器資源,例如:在一個郵件系統應用中,從一個客戶登錄到郵件系統,到寫信,收信和發信等,到最后退出郵件系統,整個過程為一個session;再例如:大家在網上購物的時候,從購物到最后的付款,整個過程也是一個session 。

        session對像是jsp中的內置對象,可以直接使用;在Servlet中使用session時,必須先創建出該對象,Servlet中創建session的方法:

HttpSession session=request.getSession();或   HttpSession session=request.getSession(boolean value);

        在服務器上,通過session ID來區分每一個請求服務器的用戶,用戶只要一連接到服務器,服務器就會為之分配一個唯一的不會重復的session ID,session ID由服務器統一管理,人為不能控制

      session中的主要方法:

  1. session.getId();//獲取session ID,長度為32位
  2. session.isNew();//判斷是否是新建立的session 

  3.  session.getCreationTime();//獲取session創建的時間   

  4. session.getLastAccessedTime();//獲取用戶最后操作時間
  5. sesson.setAttribute(String key,Object value);//將對象存到session中    

  6.  session.getAttribute(String key);//獲取session中存的Object對象   

  7. session.removeAttribute(String key);//將鍵值為key的對象從session中刪除

        session的銷毀

  1. web容器關閉或重啟,session會死亡
  2. 調用session.invalidate();方法,強制session死亡
  3. 前后兩次請求超過了session指定的生命周期時間,默認為30分鍾,我們可以通過在web.xml文件中進行如下配置:
<session-config> <session-timeout>5</session-timeout> </session-config>

 也可以調用session.setMaxInactiveInterval(int intelval);方法來設置,單位為秒。 

補充:session與cookie的區別

  1. session將信息保存在服務器上,cookie保存在客戶端上
  2. session比cookie更安全,session比cookie更占資源
  3. session使用cookie的機制,如果cookie被禁用,那么session也無法使用,因為session ID是以cookie的形式保存在客戶端的內存當中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM