我要授權使用登錄頁面的用戶。我創建了一個登錄頁面,login.jsp
,它有登錄表單。當我提交表單時,它的值被重定向到一個檢查servlet,如果用戶有效,servlet會設置會話UserName。「的反應已經犯了」錯誤 - chain.doFilter()
我攔截通過過濾器這一請求,並希望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();
}
}
請格式化你的代碼...關於你的問題:響應已經由功能'doChain'方法轉發給COMMITED。例如。該過濾器轉發給發出重定向命令的servlet。 – home
修正你的代碼爲你(有待審查),但你缺少的密切'}'關於你的第2'if's。那裏是否有任何代碼,或只是'}? – Windle