作者zelkova (*〞︶〝*)
看板java
标题[JSP ] filter实作後没办法正常到其他网页
时间Sat Jul 1 13:27:46 2017
刚学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://webptt.com/cn.aspx?n=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
1F:推 maxsho: 如果有用到web.xml作设定,要记得在xml加入filter相关设定 07/01 14:24
2F:→ 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
3F:推 kniver999: 看起来像是jsp送出去之後就被filter拦截掉了,还没跑到 07/01 15:28
4F:→ kniver999: 登入的Servlet,所以getAttribute拿到的永远是null 07/01 15:29
5F:→ kniver999: 我印象中如果在annotation和web.xml都有定义同样的 07/01 15:31
6F:→ kniver999: Servlet/Filter的话,会以xml的设定为优先 07/01 15:31
7F:→ ssccg: 把login放在别的路径,不会被filter的pattern抓到 07/01 15:36
8F:→ ssccg: 只有要检查登入的网页才放在filter的path下啊 07/01 15:36
9F:推 kniver999: 另外filter里面的requestURI会吃到的是Servlet而非jsp 07/01 15:49
10F:→ kniver999: 可以在filter里面把几个关键的部分用console印出来看看 07/01 15:49
感谢各位大大
把login跟其他网页分开放
然後再调整一些位置参数
已经正常运作!
※ 编辑: zelkova (218.161.45.91), 07/01/2017 16:41:53