Java 重定向到页面时出现问题

Java 重定向到页面时出现问题,java,jakarta-ee,Java,Jakarta Ee,我正在开发一个web应用程序 我编写了一个jsp、servlet和一个bean。成功将记录插入数据库后,我想重新定向到新页面,但response.sendredirect()报告错误 错误 服务器遇到内部错误(),无法满足此请求 例外情况: java.lang.IllegalStateException org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435) javax.

我正在开发一个web应用程序

我编写了一个jsp、servlet和一个bean。成功将记录插入数据库后,我想重新定向到新页面,但
response.sendredirect()
报告错误

错误

服务器遇到内部错误(),无法满足此请求

例外情况:

java.lang.IllegalStateException
    org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
    javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:126)
    allotmant.seatAllot.processRequest(seatAllot.java:104)
    allotmant.seatAllot.doGet(seatAllot.java:134)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
注意:根本原因的完整堆栈跟踪可在Apache Tomcat/6.0.20日志中找到


什么是可能的解决方案?

我认为您在提交响应的标题后无法发送重定向。重定向时,标头必须包含重定向操作。但是,如果您已经发送了一些正文内容,则会提交标题

因此,在重定向之前,您可能正在发送正文内容(或手动提交标题)。

请确保:

  • 在页面中尽早执行重定向。如果在页面中太晚,那么响应头将已经提交到流中。在开始发送到客户端之前,它只缓冲这么多字节,通常为8k
  • 执行
    sendRedirect()
    后,立即停止处理页面的其余部分。出于与#1相同的原因,如果让页面的其余部分呈现,它可以填充响应缓冲区。在
    sendRedirect()之后立即调用
    return
    以结束servlet、JSP等