Java web 登录过滤失效

w385454008 2015-08-18 10:00:07
在项目里新建了一个登录过滤器, 但是根本就没用,什么都过滤不了,求大神帮解决!!
这个是过滤器

HttpServletRequest servletRequest = (HttpServletRequest) request;
HttpServletResponse servletResponse = (HttpServletResponse) response;
HttpSession servletSession = servletRequest.getSession();
String path = servletRequest.getRequestURI();
if (path.indexOf("/login/login.jsp")>-1) {
chain.doFilter(request, response);
return;
}
AccountCenter accountCenter =(AccountCenter) servletSession.getAttribute("user");
if (accountCenter == null) {
servletResponse.sendRedirect("/login/login.jsp");
}else {
chain.doFilter(request, response);
}

这个是web.xml里的配置

<!-- 配置登陆过滤器 -->
<filter>
<filter-name>login</filter-name>
<filter-class>com.util.LoginFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>login</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


求大神啊!!!
...全文
201 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wander_fly 2015-08-19
  • 打赏
  • 举报
回复
引用 12 楼 w385454008的回复:
好了,谢谢各位大神
楼主说下解决方法吧
  • 打赏
  • 举报
回复
引用 10 楼 w385454008 的回复:
[quote=引用 6 楼 shijing266 的回复:] 看看这个的filter配置
我跟这个是一样的,但是只有登录页能过滤,其他的都过滤不了 [/quote] 其他页面提交,不进入这个过滤器?
w385454008 2015-08-18
  • 打赏
  • 举报
回复
好了,谢谢各位大神
w385454008 2015-08-18
  • 打赏
  • 举报
回复
引用 6 楼 shijing266 的回复:
看看这个的filter配置
我跟这个是一样的,但是只有登录页能过滤,其他的都过滤不了
w385454008 2015-08-18
  • 打赏
  • 举报
回复
引用 8 楼 gam2046 的回复:
不知道你的具体情况,首先Web容器启动时,是否存在异常日志的输出。 其次,可能你的应用中配置了多个过滤器,过滤器是呈链式连起来的,因此可能是由其之前的过滤器就把请求给过滤了,因此你的过滤器没有接收到。
启动时没有任何异常,而且在进登录页的时候可以过滤,但是其他路径就不好使了
forDream_ 2015-08-18
  • 打赏
  • 举报
回复
不知道你的具体情况,首先Web容器启动时,是否存在异常日志的输出。 其次,可能你的应用中配置了多个过滤器,过滤器是呈链式连起来的,因此可能是由其之前的过滤器就把请求给过滤了,因此你的过滤器没有接收到。
forDream_ 2015-08-18
  • 打赏
  • 举报
回复
不知道你的具体情况,首先Web容器启动时,是否存在异常日志的输出。 其次,可能你的应用中配置了多个过滤器,过滤器是呈链式连起来的,因此可能是由其之前的过滤器就把请求给过滤了,因此你的过滤器没有接收到。
  • 打赏
  • 举报
回复
w385454008 2015-08-18
  • 打赏
  • 举报
回复
引用 1 楼 gam2046 的回复:
过滤器是双向的,即过滤用户发送到服务器的请求(request),也过滤服务器返回的响应(response)。 至于你这里,检查看看这一句 AccountCenter accountCenter =(AccountCenter) servletSession.getAttribute("user"); 你在设置的时候是否正确(即setAttribute是否正确),而且这一句写个有bug,如果session中不存在你要得到的属性,会返回null,而你将null做类型转换,比如会抛异常的。应该先判断下servletSession.getAttribute("user")的值是否为null
现在根本就进不去这个过滤器
w385454008 2015-08-18
  • 打赏
  • 举报
回复
现在的情况是 在浏览器里输入url进入 ,根本就不走这个过滤器
w385454008 2015-08-18
  • 打赏
  • 举报
回复
引用 1 楼 gam2046 的回复:
过滤器是双向的,即过滤用户发送到服务器的请求(request),也过滤服务器返回的响应(response)。 至于你这里,检查看看这一句 AccountCenter accountCenter =(AccountCenter) servletSession.getAttribute("user"); 你在设置的时候是否正确(即setAttribute是否正确),而且这一句写个有bug,如果session中不存在你要得到的属性,会返回null,而你将null做类型转换,比如会抛异常的。应该先判断下servletSession.getAttribute("user")的值是否为null
现在根本就进不去这个过滤器
风梦月 2015-08-18
  • 打赏
  • 举报
回复
自己打断点调试一下不就知道了
forDream_ 2015-08-18
  • 打赏
  • 举报
回复
过滤器是双向的,即过滤用户发送到服务器的请求(request),也过滤服务器返回的响应(response)。 至于你这里,检查看看这一句 AccountCenter accountCenter =(AccountCenter) servletSession.getAttribute("user"); 你在设置的时候是否正确(即setAttribute是否正确),而且这一句写个有bug,如果session中不存在你要得到的属性,会返回null,而你将null做类型转换,比如会抛异常的。应该先判断下servletSession.getAttribute("user")的值是否为null

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧