看了一段登录过滤的代码,没登录的就自动跳转到login.jsp让用户登录
if (httpServletRequest.getServletPath().indexOf("login.jsp") > 0) {
chain.doFilter(request, response);
} else {
String user = (String) session.getAttribute("login");
if (user != null) {
chain.doFilter(request, response);
} else {
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/login.jsp");
}
}
我奇怪的是为什么sendRedirect后面就不加chain.doFilter(request, response);了呢?
加上的话如果有下一个Filter就开始执行下一个Filter,没有下一个Filter就开始访问资源了啊,为什么sendRedirect后面就不加chain.doFilter了呢?
Java:为什么这个Filter代码中跳转的后面不使用chain.doFilter()呢?
答案:2 悬赏:50 手机版
解决时间 2021-03-20 23:34
- 提问者网友:临风不自傲
- 2021-03-20 16:22
最佳答案
- 五星知识达人网友:青尢
- 2021-03-20 16:51
sendRedirect 直接返回登录页面啦
chain 是将执行权力交给下一个filter或者action的意思 意味着这个拦截器通过啦,入股都写chain.doFilter(request, response);这个的话那你的filter也就没啥用了,通过不通过都进入下一步了
chain 是将执行权力交给下一个filter或者action的意思 意味着这个拦截器通过啦,入股都写chain.doFilter(request, response);这个的话那你的filter也就没啥用了,通过不通过都进入下一步了
全部回答
- 1楼网友:千夜
- 2021-03-20 17:11
不明白啊 = =!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯