看板 java 關於我們 聯絡資訊
剛學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.html zelkova:轉錄至看板 Web_Design 07/01 13:28 ※ 編輯: zelkova (218.161.45.91), 07/01/2017 13:42:36
maxsho: 如果有用到web.xml作設定,要記得在xml加入filter相關設定 07/01 14:24
maxsho: 也可能是filter有寫錯 07/01 14:24
目前的發現是 網頁從來沒有離開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
kniver999: 看起來像是jsp送出去之後就被filter攔截掉了,還沒跑到 07/01 15:28
kniver999: 登入的Servlet,所以getAttribute拿到的永遠是null 07/01 15:29
kniver999: 我印象中如果在annotation和web.xml都有定義同樣的 07/01 15:31
kniver999: Servlet/Filter的話,會以xml的設定為優先 07/01 15:31
ssccg: 把login放在別的路徑,不會被filter的pattern抓到 07/01 15:36
ssccg: 只有要檢查登入的網頁才放在filter的path下啊 07/01 15:36
kniver999: 另外filter裡面的requestURI會吃到的是Servlet而非jsp 07/01 15:49
kniver999: 可以在filter裡面把幾個關鍵的部分用console印出來看看 07/01 15:49
感謝各位大大 把login跟其他網頁分開放 然後再調整一些位置參數 已經正常運作! ※ 編輯: zelkova (218.161.45.91), 07/01/2017 16:41:53