java.lang.IllegalStateException: Cannot forward after response has been committed
这个异常在我 登入的时候就有 而且页面还没有报错 这个 我真不懂
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { boolean isError=false; String username=req.getParameter(WebAttribute.ParameterOfUsername); String password=req.getParameter(WebAttribute.ParameterOfPssword); UserService service=new SimpleUserService(); try{ User user=service.login(username, password); HttpSession session = req.getSession(false); if(session == null){ req.getSession(true).setAttribute(WebAttribute.CURRENT_USER_SESSION_ATTRIBUTE, user); }else{ session.setAttribute(WebAttribute.CURRENT_USER_SESSION_ATTRIBUTE, user); } req.getRequestDispatcher("/WEB-INF/views/user/home.jsp").forward(req, resp); return; }catch(UsernameOrPasswordIsNullException e) { req.setAttribute(WebAttribute.VIEW_EXCEPTION_ATTRIBUTE,"账号或者密码不能为空"); isError=true; }catch(UsernameNotFoundException e) { req.setAttribute(WebAttribute.VIEW_EXCEPTION_ATTRIBUTE,"密码错误"); isError=true; }catch(UsernameMismatchPasswordException e) { req.setAttribute(WebAttribute.VIEW_EXCEPTION_ATTRIBUTE, "密码错误"); isError=true; } catch(UserServiceException e) { req.setAttribute(WebAttribute.VIEW_EXCEPTION_ATTRIBUTE, "系统错误"); isError=true; }finally { if(isError==true) { req.getRequestDispatcher("/index.jsp").forward(req, resp); return; } }
后来debug 后才知道 转发 是页面上执行的 所以后面的代码 加上return 就好了 因为 转发页面还在这,所以后面代码也会执行,系统就会报错。