ログインページでユーザーを承認したい。1 つのログイン ページ を作成しましlogin.jsp
た。ログイン フォームがあります。フォームを送信すると、その値がチェックサーブレットにリダイレクトされ、ユーザーが有効な場合、サーブレットはセッション 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();
}
}