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>


求大神啊!!!
...全文
102 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-08-18 10:00
社区公告
暂无公告