关闭

response.sendRedirect java.lang.IllegalStateException

标签: htmlservlet浏览器servercachejsp
3151人阅读 评论(0) 收藏 举报
分类:

类文件中调用 response.sendRedirect(cururl);

发生了如下错误:

[07-9-11 16:09:47:106 CST] 3c5a6abb WebGroup      E SRVE0026E: [Servlet 错误]-[]:java.lang.IllegalStateException
 at com.ibm.ws.webcontainer.srt.SRTServletResponseContext.sendRedirectWithStatusCode(SRTServletResponseContext.java:118)
 at com.ibm.ws.webcontainer.srt.SRTServletResponseContext.sendRedirect(SRTServletResponseContext.java:76)
 at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendRedirect(SRTServletResponse.java:758) 

 

解决方法:

response.sendRedirect的注意事项    
  1,在使用response.sendRedirect时,前面不能有HTML输出。  
  这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。  
  如果报错说,“一些信息已经被submitted”(原文忘了),那么,你就要注意看了,前面是不是有过多的HTML输出了。  
   
  2,在response.sendRedirect之后,应该紧跟一句return;  
  我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。

 

结论:在response.sendRedirect之后,应该紧跟一句return

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3268992次
    • 积分:27875
    • 等级:
    • 排名:第198名
    • 原创:334篇
    • 转载:552篇
    • 译文:7篇
    • 评论:331条
    最新评论
    艺术设计类