解决Cannot forward after response has been committed

在是用request.getRequestDispatcher("目标地址URL").forward(request, response);时报错Cannot forward after response has been committed

字面意识是response已经提交过了不能再次提交,多次试了以后发现我的代码中有用了几次request.getRequestDispatcher("目标地址URL").forward(request, response);语句,执行到第一次的时候不会出错,后面会报错。另外应该注意该语句在使用的时候不是直接跳转页面,还会执行后面的代码。

解决方法方有两种:

1、在每个request.getRequestDispatcher("目标地址URL").forward(request, response);语句后面加一个return;

2、用一个对象装RequstDispatcher,在代码的最后使用forward方法。

时间: 2024-10-11 07:51:22

解决Cannot forward after response has been committed的相关文章

Cannot forward after response has been committed

项目:蒙文词语检索 日期:2016-05-01 提示:Cannot forward after response has been committed 出处:request.getRequestDispatcher("admin.jsp").forward(request, response); 解决方法: 原代码:request.getRequestDispatcher("admin.jsp").forward(request, response); 修改成:删除

java.lang.IllegalStateException: Cannot forward after response has been committed

jjava.lang.IllegalStateException: Cannot forward after response has been committed at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:312) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat

Cannot forward after response has been committed 问题

1.问题的出现:当用户进入主页的时候,我需要判断是来着移动端还是pc端,于是我用了拦截器,拦截所有请求: 2.操作:1)mvc配置文件<mvc:interceptor>                                  <mvc:mapping path="/**" />                                            <bean class="com.thinkgem.jeesite.mod

关于项目在网页中运行部分jsp出现乱码(由request.getRequestDispatcher(&quot;XXX.jsp&quot;).forward(request, response)造成)的解决方法

在写jsp的时候发现部分的jsp在浏览器预览时出现乱码,为一堆问号,如图: 当时问了同学,只有部分jsp会出现乱码,因为重新建一个jsp在运行就没有错误,可以显示出来,所以发现是jsp头部的错误,当新建一个jsp把内容复制过去可以正确显示,但当把名字改成需要跳转的jsp时就会出现乱码,所以我才发现是由于调用这个名字的jsp出现了错误即:request.getRequestDispatcher("XXX.jsp").forward(request, response)造成了乱码,解决只需

Cannot create a session after the response has been committed

有时候在操作Session时,系统会抛出如下异常 java.lang.IllegalStateException: Cannot create a session after the response has been committed 之所以会出现此类问题是因为我们在Response输出响应后才创建Session的. (因为那时候服务器已经将数据发送到客户端了,即:就无法发送Session ID 了) 解决办法: 1.创建访问Session的语句[request.getSession()]提

javaweb中重定向和请求转发(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的区别

先来两张图,方便理解: 可以看出,重定向时,是服务器向游览器重新发送了一个response命令,让游览器再次向url2发送请求,以获取url2的资源 而请求转发时,类似于是服务器自己向自己发了一个跳转,然后将结果直接给游览器,这也是问什么游览器会不改变url地址.下面是具体总结他们的区别 一.response.sendRedirect(url)-服务器将新url发送给游览器,游览器再根据新url请求 Request.getRequestDispatcher(url).forward(reques

有时候在操作Session时,系统会抛出如下异常:java.lang.IllegalStateException: Cannot create a session after the response has been committed

有时候在操作Session时,系统会抛出如下异常 java.lang.IllegalStateException: Cannot create a session after the response has been committed 原因1: Session 的创建语句: HttpSession seesion = request.getSession(); 之前有Response的输出语句. 应该把HttpSession seesion = request.getSession(); 放

response.sendRedirect()与request.getRequestDispatcher(&quot;/index.jsp&quot;).forward(request, response)两者辨析

知识点轮廓 一 辨析response.sendRedirect()与request.getRequestDispatcher("/index.jsp").forward(request, response) 二 辨析请求转发与重定向异同问题[知识点总结] 第一部分: JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是二者是有很大的区别的,

servlet dispatcher .forward(request, response); 进入其它servlet【原】

dispatcher .forward(request, response); 进入其它servlet 假如我们的web.xml配置如下 <servlet> <servlet-name>index</servlet-name> <servlet-class>king.server.IndexServlet</servlet-class> </servlet> <servlet-mapping> <servlet-na