- CharEncodingFilter - 針對所有request作request.setCharacterEncodin("utf-8");動作,避免亂碼
- SessionCheckFilter - 檢查session是否timeout,並做些附加動作
然而亂碼所有設置照理講我都做了,卻還是看到亂碼??
這到底怎麼回事呢??
答案是針對同個request只要做過getParameter( )後,即使再作setCharacterEncoding( )動作, 後續再getParameter( ) 還是會使用舊的encoding取出parameter而得到亂碼 , 所以說若要避免亂碼則setCharacterEncoding要在所有getParameter動作前呼叫!
然而在我的情況下作debug發現我的sessionCheckFilter在charEncodingFilter之前執行,而我的sessionCheckFilter剛好有做getParameter動作 , 所以當然即使我的charEncodingFilter有執行,但怎樣取都是亂碼的啦!!
而Filter執行的順序是基於何呢??
經過嘗試答案是 在web.xml中
照理說setCharacterEncoding( )在getParameter( )後無效的話,應該丟個Exception出來, 這樣設計也才讓人知道說 問題出在哪, 然而實際上就是沒有, 這....
沒有留言:
張貼留言