今天在處理session變量的時候,被一個session問題搞得有點頭暈。
出錯情況是這樣的:我本機運行沒有錯誤,而局域網的其它機器訪問我的機器時,選擇第一個分類,設一個“SID”為"1"的session,轉到一個頁面,此時從session取出“SID”,得到"1"。接著我選擇第二個分類時,設置“SID”的值為"2",這時轉到另一個頁面,然後從session中取出"SID",得到的值竟然還是"1"。
我首先從後台打印來著手,但選擇第二個分類時,“SID”的值還是“1”。看來是頁面從servlet到jsp(SUN企業級應用的首選)時,session還是第一次的,沒有更新。於是我增加了一個防止IE讀緩存的代碼:
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
問題終於得到解決。