`
y806839048
  • 浏览: 1123212 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Cannot forward after response has been committed问题解决及分析

阅读更多

通过TOMCAT把系统启动,可以正常登陆门户,登陆进去选择子系统的时候点击登陆的时候,可是去又回到了登陆界面,如此反复就是不能够进入子系统,查看后台报的错误:

Cannot forward after response has been committed

中文意思就是已经有提交了,不能够再次转向了,然后根据JSP标签中设置的错误页面又回到了登陆页面,在网上搜索了一下找到这样一篇文章,以下为转贴,地址为:http://heisetoufa.ggblog.com/299425.html

 

[xhtml] view plain copy
 
  1. <a href="http://lib.csdn.net/base/java" class='replace_word' title="Java 知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.lang.IllegalStateException:Cannot forward after response has been committed异常出现的原因是因为  
  2. servlet.getServletContext().getRequestDispatcher("/DateUpdatePage.do").forward(request, response);  
  3. 这个转发下面的必须要有一个return来返回,是不是必须用null,还没搞清楚  
  4.       return null ;  
  5.   
  6. 这样写就没的问题了:  
  7.   
  8. servlet.getServletContext().getRequestDispatcher("/DateUpdatePage.do").forward(request, response);  
  9.       return null ;  
  10.   
  11. -------------------------------------------------------  
  12. 下面为08.1.20修改  
  13.   
  14. 对于Cannot forward after response has been committedCannot forward after response has been committed这个错误,有了更加深刻的认识  
  15.   
  16. 这个是错误是由于response多次提交或者是由于有页面显示后仍然含请求转向产生的,就是说程序在return之前就已经执行了跳转或者执行过response,之后遇到return的话,程序想再次执行跳转,也就是重定向,这时功能也许会实现了,但是控制台会报错,所以控制好跳转是很重要的,我现在的解决办法还是加return null,还没找到更好的解决办法,return null就不能转到另外的页面,成功或失败,继续关注吧,我一定能找到可以跳转页面而又不报错的办法  

 

 

我也就报着试一下的心态将原来的代码:

 

[java] view plain copy
 
  1. RequestDispatcher rd = request.getRequestDispatcher("/error.jsp");  
  2. try {  
  3.     rd.forward(request, response);  
  4. }catch(Exception e){}  

 

改成了如下:

 

[java] view plain copy
 
  1. RequestDispatcher rd = request.getRequestDispatcher("/error.jsp");  
  2. try {  
  3.     rd.forward(request, response);  
  4.          return;  
  5. }catch(Exception e){}  

 

这段代码是在一个方法里,并且在调用这个方法的的方法里面,就在该方法的后也加了一个return;

就没有再次报如标题的错误了。

分享到:
评论

相关推荐

    Cannot forward after response has been committed

    通过仔细审查代码、优化逻辑和正确处理异常,可以有效地解决"Cannot forward after response has been committed"的问题。 关于提供的"filterTest"文件,可能是用于测试过滤器功能的示例代码。分析和理解这段代码...

    java.lang.IllegalStateException: Cannot call sendError() after the response has

    在Java的Web开发中,`java.lang.IllegalStateException: Cannot call sendError() after the response has been committed` 是一个常见的错误,通常发生在尝试在HTTP响应已经发送到客户端之后调用`sendError()`方法...

    Git-2.21.0-64-bit.zip

    prerequisite patches in an unstable way, which has been updated to compute in a way that is compatible with "git patch-id --stable". * The "git log" command by default behaves as if the --mailmap ...

    JSP三种跳转方式 超级好的范例

    java.lang.IllegalStateException: Can't sendRedirect() after data has been committed to the client. ``` 解决办法是在进行任何输出之前先检查是否需要重定向。 #### 二、`response.setHeader("Location", "")`...

    springboot基本使用的一个文档。

    使用@SessionAttributes 和@ResponseBody 或者@RestController 注解配合使用时,可能会报 Cannot create a session after the response has been committed 错误。解决方法是在 return 之前自己创建 session。 本...

    xfs_log_priv.rar_There There

    These dummy transactions get committed when everything is idle (after there has been some activity).

    response jsp 中的重要知识点

    - 而`RequestDispatcher.forward(ServletRequest request, ServletResponse response)`则是在服务器端将请求转发到另一个资源,不改变当前URL。 7. **写入响应体** 通过`getOutputStream()`或`getWriter()`方法,...

    HttpWebRequest出错.Section=ResponseHeader Detail=CR

     Section=ResponseHeader Detail=CR 后面必须是 LF The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF 主体意思是微软没有容忍不符合RFC 822...

    temboard-master_python_Committed_

    【标题】"temboard-master_python_Committed_" 指向的是一个与 PostgreSQL 数据库管理和监控相关的项目,其中可能包含了使用 Python 编写的工具或模块。"Committed" 在这里很可能是指 PostgreSQL 的事务隔离级别之一...

    55 Read Committed隔离级别是如何基于ReadView机制实现的?l.pdf

    在探讨数据库事务隔离级别时,Read Committed(简称RC)是一个重要的概念。RC隔离级别意味着,当事务运行期间,如果别的事务对数据进行修改并且提交了,当前事务是可以读取到这些修改后的数据的。然而,这也导致了不...

    解决Struts2中下载文件时点击取消按钮后台报错问题

    本文将详细解析这个问题,并提供解决方案。 首先,我们需要理解Struts2中的文件下载原理。当用户请求下载文件时,服务器会读取文件内容并将其通过HTTP响应流返回给客户端。一旦客户端开始接收数据,即使用户取消...

    svn关键词BASE, HEAD, COMMITTED, PREV的深入理解.rar

    例如,当你发现某个错误并想要回滚到某个已知的正常版本时,可以使用PREV和COMMITTED来确定问题出现的时间点。同时,BASE和HEAD用于保持你的工作副本与远程仓库同步,确保你始终在处理最新的代码。 在实际开发中,...

    Efficient Proofs that a Committed Number Lies in an Interval.pdf

    本文提出的新方法为证明承诺数字位于特定区间提供了一个高效且精确的解决方案。这一成果不仅在理论层面具有重要价值,而且在实践中也有着广阔的应用前景,特别是在信息安全、加密技术和隐私保护等领域。随着技术的...

    MySQL加锁处理分析@何登成1

    本节将对死锁原理和分析进行了详细的解释,死锁是 MySQL 加锁机制中的一种常见问题。 八、总结 本文对 MySQL 加锁处理进行了深入分析和讨论,对读者理解 MySQL 加锁机制的工作原理和实现方式有很大的帮助。

    阿里大牛何sir 深入MySQL加锁处理分析

    解决死锁问题往往需要分析事务执行的顺序、涉及的表和索引以及加锁的顺序。 总结来说,深入理解MySQL/InnoDB的加锁机制对于提高数据库性能、避免并发问题以及分析线上问题非常重要。通过掌握不同SQL语句在不同条件...

    Windows平台服务器常用指标分析.docx

    虚拟内存(Virtual Memory)是 Windows 平台服务器中的一种技术,用于解决内存不足的问题。虚拟内存是指硬盘空间的一部分,用于充当内存使用。虚拟内存也被称为“页面文件”,存在于硬盘上的 PAGEFILE.SYS 文件中。 ...

    a project model for the FreeBSD Project.7z

    Number of committers has been determined by going through CVS logs from January 1st, 2004 to December 31st, 2004 and contributors by going through the list of contributions and problem reports. ...

    Spring事务失效问题分析及解决方案

    Spring事务失效问题分析及解决方案 在本文中,我们将详细介绍 Spring 中的事务失效问题分析及解决方案。Spring 事务机制是基于 AOP 实现的,通过使用 @Transaction 注解来标注事务方法。然而,在实际开发中,可能会...

    WCDMA网络HSDPA速率低的案例问题分析

    本案例中,通过细致的分析和配置调整,成功找到了问题所在并提出了有效的解决方案,展示了在处理此类问题时应有的系统性思维和技术深度。在实际网络优化中,类似的方法可以应用于其他类似问题的排查,以提升WCDMA...

Global site tag (gtag.js) - Google Analytics