JSP內置對象-Session

什麼是Session?

  • session表示客戶端與服務器的一次會話
  • Web中的session指的是用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所通過的這段時間,也就是用戶瀏覽這個網站所花費的時間
  • 從上述定義中能夠看到,session實際是一個特定的時間概念。
  • session保存在服務器的內存中,而且爲不一樣的用戶保存不一樣的session。

  以下購物流程爲一個session。web

    

session對象

  • session對象是一個JSP內置對象。
  • session對象在第一個JSP頁面被裝載時自動建立,完成會話期管理。
  • 從一個客戶打開瀏覽器並鏈接到服務器開始,到客戶端關閉瀏覽器離開這個服務器結束,被稱爲一個會話。
  • 當一個客戶訪問服務器時,可能會在服務器的幾個頁面之間切換,服務器應當經過某種辦法知道這是一個客戶,這就須要session對象。
  • session對象是HttpSession類的實例。

session對象的經常使用方法:

  • long getCreationTime():返回SESSION建立時間
  • public String getId():返回SESSION建立時JSP引擎爲它設的惟一ID號。
  • public Object setAttribute(String name, Object value):使用指定名稱將對象綁定到此會話。
  • public Object getAttribute(String name):返回與此會話中指定名稱綁定在一塊兒的對象,若是沒有對象綁定在該名稱下,則返回null
  • String[] getValueNames():返回一個包含此SESSION中全部可用屬性的數組。
  • int getMaxInactiveInterval():返回兩次請求間隔多長時間此SESSION被取消(單位秒)

 session的生命週期:

 建立:數組

  當客戶端第一次請求某個jsp或者Servlet的時候,服務器會爲當前會話建立一個SessionId,每次客戶端向服務器發送請求時,都會將此SessionId攜帶過去,服務器會對此SessionId進行校驗。瀏覽器

 活動:服務器

  • 某次會話當中經過超連接打開新頁面屬於同一個會話。
  • 只要當前頁面沒有所有關閉,從新打開新的瀏覽器訪問同一個項目資源時屬於同一會話。
  • 除非本次會話的全部頁面都所有關閉後再從新訪問某個Jsp或者Servlet將會建立新的會話。

    注意事項:注意原有會話還存在,只是這個舊的SessionId仍然存在於服務端,只不過再也沒有客戶端會攜帶它而後交予服務器校驗。這個session設置的超時時間過了服務器會銷燬此sessionId。session

 銷燬:jsp

  Session的銷燬只有三種方式:網站

  1. 調用了session.invalidate()方法。
  2. Session過時(超時)

   Tomcat默認的超時時間爲30分鐘。spa

   設置超時時間的兩種方式:xml

    1. session.setMaxInactiveInterval(時間)://單位是秒
    2. 在web.xml中配置

      <session-config>對象

      <session-timeout>10</session-timeout>

      </session-config>  單位是分鐘         

  3.服務器從新啓動。

相關文章
相關標籤/搜索