[JSP ] filter實作後沒辦法正常到其他網頁

看板java作者 (*〞︶〝*)時間8年前 (2017/07/01 13:27), 8年前編輯推噓3(307)
留言10則, 3人參與, 最新討論串1/1
剛學JSP,想請教大大們一個問題 本來我在做這個網站時,一切都很美好 後來改一改網路資料,把專案加上了Filter 結果發現網站就會一直導回去登入頁面 稍微看了一下 好像是Servlet跳出去的時候 (setAttribute) Filter沒有正確接到變數 (getAttribute變null) 苦思了一下,不知道怎麼改才好 下面是我的相關程式碼 Servlet https://pastebin.com/b3f7wnmT Filter https://pastebin.com/mySYCqcT JSP https://pastebin.com/AWsZK2fT 求大大指教,感謝QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.45.91 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1498886872.A.880.htmlzelkova:轉錄至看板 Web_Design 07/01 13:28 ※ 編輯: zelkova (218.161.45.91), 07/01/2017 13:42:36

07/01 14:24, , 1F
如果有用到web.xml作設定,要記得在xml加入filter相關設定
07/01 14:24, 1F

07/01 14:24, , 2F
也可能是filter有寫錯
07/01 14:24, 2F
目前的發現是 網頁從來沒有離開filter 也就是login.jsp送出後又跳回filter 連servlet都沒有執行 另外附上web.xml <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>org.hello.hw5.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/HW5/LoginServlet</url-pattern> </servlet-mapping> <filter> <filter-name>LoginFilter</filter-name> <filter-class>org.hello.hw5.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/HW5/*</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping> ※ 編輯: zelkova (218.161.45.91), 07/01/2017 15:21:32

07/01 15:28, , 3F
看起來像是jsp送出去之後就被filter攔截掉了,還沒跑到
07/01 15:28, 3F

07/01 15:29, , 4F
登入的Servlet,所以getAttribute拿到的永遠是null
07/01 15:29, 4F

07/01 15:31, , 5F
我印象中如果在annotation和web.xml都有定義同樣的
07/01 15:31, 5F

07/01 15:31, , 6F
Servlet/Filter的話,會以xml的設定為優先
07/01 15:31, 6F

07/01 15:36, , 7F
把login放在別的路徑,不會被filter的pattern抓到
07/01 15:36, 7F

07/01 15:36, , 8F
只有要檢查登入的網頁才放在filter的path下啊
07/01 15:36, 8F

07/01 15:49, , 9F
另外filter裡面的requestURI會吃到的是Servlet而非jsp
07/01 15:49, 9F

07/01 15:49, , 10F
可以在filter裡面把幾個關鍵的部分用console印出來看看
07/01 15:49, 10F
感謝各位大大 把login跟其他網頁分開放 然後再調整一些位置參數 已經正常運作! ※ 編輯: zelkova (218.161.45.91), 07/01/2017 16:41:53
文章代碼(AID): #1PLpBOY0 (java)
文章代碼(AID): #1PLpBOY0 (java)