tomcat 的session 生命週期

2021-08-21 07:19:04 字數 1319 閱讀 1447

1.session的建立

建立:request.getsession(), request.getsession(true);第一次呼叫時建立session物件,並在response返回頭中新增

request.getsession,等同於request.getsession(true);

獲取其jsp或severlet建立的並儲存在tomcat管理器中的session

當請求頭中包括

cookie

jsessionid=188f48755786c56412147356a5167832

從session管理器中獲取id對應的session物件

request.getsession(false): 只根據jsessionid獲取其他人建立的session物件,如果不存在返回空.當request.getsession(false),是第乙個請求時也不會自己建立session物件,只會返回空

jsp 禁止自動建立session對

設定page指令 session="false"

(1)自己不會自動建立session物件

(2)禁用jsp 中隱藏的session物件

(3)如果session物件不存在或session物件失效, request.getsesson()或reqeust.getsession(true) 會建立新的session物件.

(4)request.getsession(false),獲取其他人建立的session物件,自己不會建立,不存在返回null

2.銷毀session物件

(1)手動銷毀.呼叫session.invalid()方法手動直接銷毀session物件

(2)伺服器解除安裝了當前web應用.

(3)超出httpsession的過期時間getmaxinactiveinterval() 單位為秒(session過期時間設定1.setmaxinactiveinterval() 2.在web.xml 配置檔案中設定);

***並不是關閉了瀏覽器就銷毀了session物件,session物件的銷毀由tomcat根據session的過期時間進行銷毀.

利用url重寫跟蹤session

使用response.encodeurl("hello.jsp")編碼url會將 hello.jsp:jsessionid=188f48755786c56412147356a5167832

加到每個編碼的url後面

Session的使用與Session的生命週期

1 httpsession的方法 object getattribute string enumerationgetattributenames long getcreationtime string getid string getlastaccessedtime int getmaxinacti...

Tomcat集群的session共享

第一種是以負載均衡伺服器本身提供的session共享策略,每種服務 器的配置是不一樣的並且nginx本身是沒有的。第二種是利用web容器本身的 session 共享策略來配置共享。針對於 weblogic 這種方式還是靠普的。但是針對於 tomcat 這種方式存在很大的缺陷,主要因為是依靠廣播方式來...

tomcat集群session共享

才疏學淺且語無倫次,如有誤人子弟,深表歉意 一台tomcat不夠用時,要麼換更好的機器,要麼加機器做集群。做集群就會涉及到負載均衡,比如nginx,會把到來的每個請求按一定的規則 給後端tomcat,這就有乙個逃避不了的問題需要解決,使用者的session需要在不同的tomcat之間共享。比較偷懶的...