无法将 sendRedirect() 发送到 jsp 页面。非法状态异常

Unable to sendRedirect() to a jsp page. IllegalStateException

我正在做一个示例休眠 Web 应用程序。我的 table 条目已成功添加到数据库,但我无法将我的响应重定向到成功页面。

这是我的 servlet 中的代码

HttpSession session = request.getSession(true);
        try {
            UserDAO userDAO = new UserDAO();
            userDAO.addUserDetails(userName, password, email, phone, city);
            response.sendRedirect("Success");
            return;

我的DAO代码如下

Session session = factory.openSession();        
 Transaction tr = session.beginTransaction();       
 User user = new User();        
  user.setUserName(userName);
 user.setPassword1(password);
            user.setEmail(email);
            user.setCity(city);
            user.setPhone(phone);
            session.save(user);
            tr.commit();
        System.out.println("\n\n Details Added \n");

我正在控制台中获取系统 "Details added",但无法重定向到 Success.jsp。请帮忙,因为我看不到响应已经写入 HTTP

的位置

根据您提供的信息,当您调用 sendRedirect 方法时,响应已提交,如果您查看方法 HttpServletResponse#sendRedirect 的文档,它表明了您获得异常的原因:

llegalStateException - If the response was committed or if a partial URL is given and cannot be converted into a valid URL

它的基本意思是你在调用sendRedirect方法之前修改响应,最常见的修改响应的方法是通过PrintWriter response.getWriter().println,检查你的代码在调用 sendRedirect 方法之前不修改响应。