Session在jsp的生命周期注意事項

session什么時候被創(chuàng)建

*************************************************************************************

一個常見的錯誤是以為 session 在有客戶端訪問時就被創(chuàng)建圾结,然而事實是直到某 server 端程序(如 Servlet )調(diào)用HttpServletRequest.getSession(true)這樣的語句時才會被創(chuàng)建荞估。

*************************************************************************************

我一開始還不信玷过,做個試驗我信了。

一開始不信是因為茉继,用 FireFox 測試清空了Cookie ,只要一跑一個jsp 兰粉,馬上會看到生成了一個名字是 JSESSIONID 的Cookie 坟岔,注意這個是? Session Cookie (會話Cookie)豫缨,不是 Persistent Cookie (持久Cookie),這個《Cookie和Session專題 》一文中講的很明白端朵,會話 Cookie 是為實現(xiàn) session 機制而采用的在 Client 端與 Server 端之間保持狀態(tài)的解決方案之一好芭,在默認情況下是保存在 Client 端內(nèi)存中的。注意:會話 Cookie 的“會話”這里不是指 Server 端的 Session 冲呢,而是指的是瀏覽器栓撞,所以會話 Cookie 的生命周期不是與 Server 端的 Session 那個會話相同,而是與瀏覽器相同碗硬,就是說只要開著瀏覽器會話 Cookie 就存在,關(guān)閉瀏覽器它就過期了瓢颅。但是會話 Cookie 的值是與 Server 端的 SessionId 對應相同的恩尾。就是說會話Cookie隨著Server端Session的創(chuàng)建而創(chuàng)建,但并不隨著Session的過期而過期挽懦,而是隨著Client端的瀏覽器關(guān)閉而銷毀翰意。 這說明只要會話Cookie 出現(xiàn)了,Server 端的 Session 就已經(jīng)創(chuàng)建了信柿。

我一開始的錯誤想法是:我的 jsp 里沒有 HttpServletRequest.getSession(true) 的代碼阿冀偶,但是 JSESSIONID 的Cookie 出現(xiàn)了就說明 Server 端 Session 創(chuàng)建了,這與《Cookie和Session專題 》上面講的不符啊渔嚷,不過馬上想通了进鸠,jsp 屬于動態(tài)頁,本質(zhì)就是一個 Servlet 形病,編譯后的 jsp 是要到 Server 端進行交互的(即便 jsp 里沒寫一句交互的代碼)客年,因為 jsp 里有內(nèi)置對象,內(nèi)置對象就是和 Server 交互的產(chǎn)物漠吻,所以如果你的首頁是個 jsp 頁的話量瓜,即便沒有HttpServletRequest.getSession(true),Session 也會創(chuàng)建途乃。

如果首頁是*.html 就不同了绍傲,再將 FireFox 的 Cookie 都清除了,將首頁設置為 index.html, 回車耍共,查看烫饼,果然這次沒有JSESSIONID 的 Cookie 生成,這說明Server的Session也沒有創(chuàng)建划提,讓 index.html 提交到一個Servlet, 確實可以證明沒有 HttpServletRequest.getSession(true) 枫弟,Sesion是不會創(chuàng)建的, 即便Servlet又轉(zhuǎn)發(fā)(或者重定向)到第二個頁鹏往,只要第二個頁依然不是jsp頁淡诗,Session就依然不會創(chuàng)建骇塘,F(xiàn)ireFox 當然也沒有名字為 JSESSIONID 的 Cookie 生成。

那么我以前一直錯誤地認為當某個Client端請求開始時韩容,Session就創(chuàng)建了款违,此后Session就一直存在直到過期,而request在當前Client的一系列請求操作中有可能銷毀和新建群凶,所以Session的生命周期要比request長〔宓現(xiàn)在看來這么想大錯特錯了,Session和Request的生命周期根本就是火星和地球请梢,拿來相比是沒有任何意義的赠尾。好像是在問鯊魚和老虎PK誰會贏,沒有意義的問題. . .

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毅弧,一起剝皮案震驚了整個濱河市气嫁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌够坐,老刑警劉巖寸宵,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異元咙,居然都是意外死亡梯影,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門庶香,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甲棍,“玉大人,你說我怎么就攤上這事脉课【染” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵倘零,是天一觀的道長唱遭。 經(jīng)常有香客問我,道長呈驶,這世上最難降的妖魔是什么拷泽? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮袖瞻,結(jié)果婚禮上司致,老公的妹妹穿的比我還像新娘。我一直安慰自己聋迎,他們只是感情好脂矫,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著霉晕,像睡著了一般庭再。 火紅的嫁衣襯著肌膚如雪捞奕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天拄轻,我揣著相機與錄音颅围,去河邊找鬼。 笑死恨搓,一個胖子當著我的面吹牛院促,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斧抱,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼常拓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辉浦?” 一聲冷哼從身側(cè)響起墩邀,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盏浙,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荔茬,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡废膘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了慕蔚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丐黄。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孔飒,靈堂內(nèi)的尸體忽然破棺而出灌闺,到底是詐尸還是另有隱情,我是刑警寧澤坏瞄,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布桂对,位于F島的核電站,受9級特大地震影響鸠匀,放射性物質(zhì)發(fā)生泄漏蕉斜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一缀棍、第九天 我趴在偏房一處隱蔽的房頂上張望宅此。 院中可真熱鬧,春花似錦爬范、人聲如沸父腕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽璧亮。三九已至萧诫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間杜顺,已是汗流浹背财搁。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躬络,地道東北人尖奔。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像穷当,于是被迫代替她去往敵國和親提茁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容