这个异常是怎么回事呀???

angel_1688 2005-01-04 03:00:15
--- test.jsp ---

...................

try {
smartupload.upload(); // 上传文件
} catch (Exception e) {
System.err.println(e);
response.sendRedirect("err.jsp");
}

...................


--- 异常信息如下 ---
java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.


怎么回事???求教`````


...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
taolei 2005-01-07
  • 打赏
  • 举报
回复
这是HTTP协议的问题,重定向必需是单独的http response,不可能在已经有数据传送到客户端后,再重定向。
HTTP response在最开始有一个header,如果在http servlet里已经向客户端传送数据,则这个header是
HTTP/1.X 200 OK
这时就不能再改变header 了。

而重定向的header是
HTTP/1.X 302 REDIRECT

HTTP/1.X 303 REDIRECT_METHOD

angel_1688 2005-01-04
  • 打赏
  • 举报
回复
"已经有部分数据被发送到客户端了,这个时候不能使用重定向"

有谁知道这是为什么吗???
taolei 2005-01-04
  • 打赏
  • 举报
回复
已经有部分数据被发送到客户端了,这个时候不能使用重定向。
xitianjile 2005-01-04
  • 打赏
  • 举报
回复
把跳转的放到其他地方
redex 2005-01-04
  • 打赏
  • 举报
回复
可以用jsp的error标记标志一个错误页面,
出错时自动转向这个页面.
csdnyong 2005-01-04
  • 打赏
  • 举报
回复
response.sendRedirect("err.jsp"); 这个取消掉 或者写到try里面 看看
angel_1688 2005-01-04
  • 打赏
  • 举报
回复
楼上讲的直译我自然知道,不过......我想知道得更详细点~~~

还有就是,如果我想按上面的思路去做,有什么别的可行的办法吗???
hotenM 2005-01-04
  • 打赏
  • 举报
回复
直译:在客户端数据已经提交后,不能调用sendRedirect()

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧