1. 程式人生 > >Filter與Session配合的簡單過渡例子

Filter與Session配合的簡單過渡例子

4)Filter與Session配合的簡單過渡例子

馬克-to-win:因為下一個登入例子太難,我先給出一個過度的例子,便於大家理解下一個例子。這裡也有個軼事,當我在做下一個登 錄的例子時,發現一個非常隱晦的bug。那就是,我本應寫成:response.sendRedirect("http: //localhost:8080/ServletHello/home.jsp")。但我實際寫成了:response.sendRedirect ("http://localhost:8080//ServletHello/home.jsp");多寫了一個/,跳轉沒出現問題。嚴重的問題就是 filter當中怎麼也取不出session了。我當時還以為是tomcat出現問題了或是機器出現毛病。這個Bug的隱晦之處是,url寫錯後,不是跳 轉出現毛病,而是Filter當中session取不出來。我曾經一度懷疑,是sun公司整個filter機制設計有問題?後來經過仔細思考,我的結論 是,當url只是簡單錯誤時(比如home.jsp寫成home1.jsp),會跳轉失敗。馬克-to-win:但如果只是機器名後多加了一個/,sun 公司會認為你要跳轉去別的web應用,於是就把session清空了。但是filter不管是一個斜槓還是兩個斜槓,還是會照常過濾。跳轉去別的web應 用,所以取不到session。(請參考我的Session部分:跨應用取session)看來,sun公司的filter大的方面設計沒問題,只是還是 有一點點bug。應該在下一個版本把這個問題解決一下。(應該兩個斜槓就不過濾了)

課程詳情:http://www.mark-to-win.com/index.html?content=Jsp/jspUrl.html&chapter=Jsp/jsp6_web.html#FilterGetSession