# session會話跟蹤技術 ###### tags: `Java Web-Servlet`  客戶端進入後,服務器會判斷是否為首次進入,首次進入慧芬派一組新的ID,非首次則沿用舊ID  上圖的第二、第三次的ID,就是相同客戶端進入,所以顯示的ID也都相同  可以在瀏覽器的COOKIE查看  或是利用debug的斷點查看,都顯示相同ID  ### 1)Http是無狀態的 #### Http無狀態: 服務器無法判斷這兩次請求是同一個客戶端發過來的,還是不同的客戶端發過來的 #### 無狀態帶來的現實問題: 第一次請求是添加商品到購物車、第二次請求是結帳,如果這兩次請求服務器無法區分是同一個用戶,就會導致混亂 通過會話跟蹤技術來解決無狀態的問題 ### 2)會話跟蹤技術 客戶端第一次發請求給服務器,服務器獲取session,獲取不到,則創建新的,然後響應給客戶端 下次客戶端給服務器發請求時,會把sessionID帶給服務器,那麼服務器就能獲取到了,服務器就判斷這一次請求和上次某次請求是同一個客戶端,從而能區分開客戶端 #### 常用的API: request.getSession():獲取當前的會話,沒有則創建一個新的會話 request.getSession(true):效果和不帶參數相同 request.getSession(false):獲取當前會話,沒有則返回true,不會創建新的 session.getId():獲取sessionID session.isNew():判斷當前session是否是新的 session.getMaxInactiveInterval():session的非激活間隔時長,默認1800秒 session.setMaxInactiveInterval(): session.invalidate():強制性讓會話立即失效
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up