我們知道在正常情況下,發(fā)送http請(qǐng)求時(shí),消息頭中會(huì)自動(dòng)攜帶cookie信息,這其中就會(huì)包括SESSIONID信息,所以只要我們沒(méi)有關(guān)閉瀏覽器,消息頭中都會(huì)自動(dòng)攜帶這個(gè)信息,以供服務(wù)器訪問(wèn)相應(yīng)的session。 我們可以這樣做,來(lái)實(shí)現(xiàn)這個(gè)需求(結(jié)合cookie)
我們來(lái)分析為什么可以這樣做? 首先,session的聲明周期是可以自己來(lái)設(shè)置的,默認(rèn)的是30分鐘,那么當(dāng)我們關(guān)閉瀏覽器之后,這個(gè)瀏覽器對(duì)應(yīng)的session其實(shí)還沒(méi)有消亡,(如果我們需要它消亡的話,我們可以調(diào)用invalidate方法,這也是網(wǎng)站中的安全退出常見操作之一)。既然沒(méi)有消亡,為什么關(guān)閉瀏覽器之后,我們就訪問(wèn)不到了呢?那是因為cookie中的JSESSIONID信息沒(méi)有了,不會(huì)自動(dòng)攜帶這個(gè)session信息了,服務(wù)器找不到對(duì)應(yīng)的session,就會(huì)自動(dòng)添加新的session,這個(gè)新添加的session顯然不是我們需要的。所以,我們就可以利用cookie來(lái)實(shí)現(xiàn)這個(gè)需求。只要我們手動(dòng)為cookie中添加JSESSIONID信息,那么不管你的瀏覽器是否關(guān)閉,我的cookie中都會(huì)攜帶JSESSION信息,這樣的話,服務(wù)器就一定能夠找到對(duì)應(yīng)的session,而不會(huì)重新建立一個(gè)新的session,這樣只要session沒(méi)有消亡,就一定可以訪問(wèn)到對(duì)應(yīng)的session。 |
|
來(lái)自: 一本正經(jīng)地胡鬧 > 《待分類》