我正在开发一个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日志中提供了根本原因的完整堆栈跟踪。
什么是可能的解决方案?
答案 0 :(得分:1)
我认为在提交响应标头后你无法发送重定向。重定向时,标头必须包含重定向操作。但是如果你已经发送了一些正文内容,则会提交标题。
所以也许你在重定向之前发送正文内容(或者手动提交标题)。
答案 1 :(得分:1)
确保您:
sendRedirect()
后,立即停止处理页面的其余部分。出于与#1相同的原因,如果你让页面的其余部分呈现它,它可以填满响应缓冲区。在return
之后立即调用sendRedirect()
来结束您的servlet,JSP等。