參考文件
但我之前遇到一個問題, 就是原本應顯示為 /appbased/static-1.0.0/images/xxx 的 URL
在第一次執行時, URL 卻會變成 /appbased/static-1.0.0?jsessionid=481AFDE46F818357ED2096824F250AFF/images/xxx
需重新 reload 一次才回復正常.
當時我的作法是, 在首次登入頁面的 jsp 前面加一行
<% request.getSession(true).invalidate(); %>
即可.但最近又遇到另一個問題, 就是首頁有可能是登入狀態, 也有可能是未登入狀態, 總不能老是把 session 抓出來幹掉裝作沒事, 故查了一下解法.
原來這是 tomcat 的問題 (我錯怪 spring 了)
若是 tomcat 7, 可以在設定檔內處理
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
tomcat 6 的話, 此 bug 於 6.0.33 後解決 (請參考這裡)
JSESSIONID considered harmful文章, 對 jsessionid 有詳細的說明, 也有 filter 的作法.
推薦一讀.
Purging jsessionids 則提出了 url rewrite 的解法.
最後, Spring security 有個 create-session的設定, 似乎也可以用來處理此問題.
沒有留言:
張貼留言