session,作為我們離不開的後台的技術,它的出現主要是為了解決 http 協議的無狀態特點,用於解決使用者狀態的儲存問題,而往往對於儲存來說都會涉及到乙個時間問題,下面我們來看看它的銷毀方式到底有哪些。
當客戶端第一次請求 servlet 並且操作 session 時,session 物件生成,以 tomcat 為例,tomcat 中 session 預設的存活時間為 30min,即你不操作介面的時間,一旦有操作,session 會重新計時。那麼 session 的預設時間可以改麼?答案是肯定的。可以在 tomcat 中的 web.xml 檔案中進行修改。如下圖:
當然除了以上的修改方式外,我們也可以在程式中自己設定 session 的生命週期,通過 session.setmaxinactiveinterval(int); 來設定 session 的最大不活動時間,單位為秒。
);當然我們也可以通過 getmaxinactiveinterval(); 方法來檢視當前 session 物件的最大不活動時間。
或者我們也可以通過 session.invalidate(); 方法讓 session 立刻失效。
session.
invalidate()
;
session 的底層依賴 cookie 實現,因為不同使用者訪問伺服器要判別到底是使用哪個 session,所以當使用者第一次訪問伺服器的時候往往會把乙個 session id 通過 cookie 儲存到使用者端,並且該 cookie 的有效時間為關閉瀏覽器,從而 session 在瀏覽器關閉時也相當於失效了(因為沒有 session id 再與之對應)。如下圖,關閉後再開啟,重新給瀏覽器分配了個 session id。
需要注意的是這裡只是 cookie 失效了,你再訪問相當於伺服器把你當成了新使用者,又給你建立了乙個 session,並沒有把之前的 session 物件銷毀。
當非正常關閉伺服器時,session 銷毀;當正常關閉伺服器時,session 將被序列化到磁碟上,在工作空間 work 目錄下的 session.ser 檔案中,如果物件被儲存在了 session 中,伺服器在關閉時要把物件序列化到硬碟,這個物件就必須實現 serializable 介面,下次啟動服務時,自動載入到記憶體。如下圖,正常關閉後可以看到資料夾中多了乙個 sessions.ser 檔案,再次啟動伺服器則檔案消失。
從圖中除了看到 cookie 的名稱和內容外,我們還需要關心乙個資訊,到期時間,到期時間用來指定該 cookie 何時失效。預設為當前瀏覽器關閉即失效。我們可以手動設定 cookie 的有效時間(通過到期時間計算),通過 setmaxage(int expiry); 方法設定 cookie 的最大有效時間,以秒為單位。
小婉在樂位元組學習的第二天
今天是我在樂位元組學習的第二天,今天也是元氣滿滿的一天。今天主要學習的是 json 老師提出的問題是 json的格式型別到底有哪些呢?json是目前最流行的一種資料交換格式,對於它我們有必要非常熟悉它的各方面知識,這次我們來看看它的格式型別有哪些。以大括號開始,鍵的名稱加上冒號,然後跟上對應的的值,...
今天是我在樂位元組學習的第二天
今天是我在樂位元組教育學習的第一天,今天主要學習的內容是html的常用標籤和段落換行 html頁面是由標籤組成,不同的標籤瀏覽器對其進行不同樣式和內容的渲染 我們需要記憶常用的標籤即可。大致可分為如下幾類 標題 水平線 段落 換行 超連結 列表 表單 下拉列表 div 和 span等。段落和換行 段...
學習第二天
linux系統的檔案型別及許可權的相關知識 1.普通檔案 l 連線檔案 d 資料夾 表示不同的檔案型別 2.檔案許可權 r 可讀 w 可寫 x 可執行 3.chmod 修改檔案許可權,修符號或者使用八進位制 linux的基礎命令 cd 切換目錄 ls 檢視內容 表示當前目錄 上一級目錄等 touch...