关于#无法调用sendRedirect#的问题,如何解决?

消息 提交响应后无法调用sendRedirect()。

<head>
    <meta charset="utf-8" />
    <title>用户登录title>
head>
<body>
<form action="/testcookie/LoginServlet" method="post">
    <div>
            <div>
                <h2>请登录h2>
            div>
            <div>
                <input type="text" name="username" placeholder="请输入账户名"/>
            div>
            <div>div>
            <div>
                <input type="password"  name="pwd" placeholder="请输入密码" />
            div>

            <div>
                <button type="submit" >登录button>
            div>
    div>
form>
body>
public class LoginServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //处理乱码
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        //接受数据   request.getParameter()方法来获取表单参数的值。
        String username = request.getParameter("username");
        String pwd = request.getParameter("pwd");
        Cookie cookie=new Cookie("username",username);
        cookie.setMaxAge(10);
        response.addCookie(cookie);
        if("yx".equals(username)&&"123".equals(pwd)){
            request.getRequestDispatcher("/Servletok").forward(request,response);
        }else{
            request.getRequestDispatcher("/Servletfail").forward(request,response);
        }

    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    this.doPost(request,response);
}

}
@WebServlet("/Servletok")
public class Servletok extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //处理乱码
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String username = null;
        //遍历
        Cookie[] cookies=request.getCookies();
        for (Cookie c : cookies) {
            if ("username".equals(c.getName())) {
                username=c.getValue();
                response.getWriter().println("欢迎登录!:" +username);
            }
            else{
//            else if(username==null) {
                response.sendRedirect("/login.html");
            }
        }
        response.getWriter().println("sss");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    this.doPost(request,response);
    }
}
运行结果及报错内容

类型 异常报告

消息 提交响应后无法调用sendRedirect()。

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

java.lang.IllegalStateException: 提交响应后无法调用sendRedirect()。
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:488)
servlet.SuccessServlet.doPost(SuccessServlet.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
servlet.JudgeServlet.doPost(JudgeServlet.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

想问一下各位码友这是什么原因安??好人一生平安