# 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.