Java:为什么这个Filter代码中跳转的后面不使用chain.doFilter()呢?
看了一段登录过滤的代码,没登录的就自动跳转到login.jsp让用户登录if(httpServletRequest.getServletPath().indexOf("l...
看了一段登录过滤的代码,没登录的就自动跳转到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了呢? 展开
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了呢? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询