手工殺會話。
會話失效有2種可能:超時和手工殺會話。手工殺方便省時間,程序員都愛用。
比如我做一個程序需要登錄,中間訪問的頁面有會話控制,如果沒有登錄則跳轉到登錄頁面,退出時清會話信息。
這是有兩個選擇:把session數據清空,或直接殺會話。建議直接殺會話,方便。
如果退出時不清會話,對方點瀏覽器后退,依然無需登錄可以正常訪問站點。
會話失效有2種可能:超時和手工殺會話。手工殺方便省時間,程序員都愛用。
比如我做一個程序需要登錄,中間訪問的頁面有會話控制,如果沒有登錄則跳轉到登錄頁面,退出時清會話信息。
這是有兩個選擇:把session數據清空,或直接殺會話。建議直接殺會話,方便。
如果退出時不清會話,對方點瀏覽器后退,依然無需登錄可以正常訪問站點。
追問
就是說這個東西的最大用處是作退出功能時直接用session.invalidate()將session清空就行了以免有遺漏,如果想手動清空某項session,也可以賦null,是這樣嗎?
追答
session.invalidate()是殺掉會話
賦值null,是清空會話,很可能是一個陷阱。
2者是不同的概念。session是一個容器,里面可以存數據。以在食堂吃飯為例:session是碗,賦值null想當於空碗,數據相當於碗里的飯,invalidate相當於把碗摔了()。
賦值null是個陷阱,開發不要用。