我想通过登录页面授权用户。我创建了一个登录页面,login.jsp
它有登录表单。当我提交表单时,它的值被重定向到检查 servlet,如果用户有效,则 servlet 设置会话 UserName。
我通过过滤器拦截此请求并希望在之后重定向页面,chain.doFilter
但我收到一条错误消息,表明响应已提交。问题是什么 ?
HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse res=(HttpServletResponse) response;
if(req.getRequestURI().contains("/ShowHome")) {
chain.doFilter(req, res);
if(req instanceof HttpServletRequest) {
boolean authorized=false;
HttpSession session= req.getSession(false);
if(session!=null) {
if(session.getAttribute("UserName")!=null) {
authorized=true;
}
} else {
authorized=false;
}
if(authorized) {
System.out.println("You are authorized user ");
res.sendRedirect("/FilterAuth/welcome.jsp");
} else {
System.out.println("authentication failed ! ");
try {
//response.flushBuffer();
RequestDispatcher disp= request.getRequestDispatcher("/index.jsp");
disp.forward(request, response);
return;
} catch(Exception e) {
e.printStackTrace();
}
}