zoukankan      html  css  js  c++  java
  • 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(ApplicationDispatcher.java:302)
    at com.sxt.hotel.meeting.web.servlet.admin.AddCMeetServlet.doPost(AddCMeetServlet.java:80)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:876)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:612)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1777)
    at java.lang.Thread.run(Thread.java:722)

    导致异常的代码:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		try {
                
    			........一个大字(略)
    			/**
    			 * 6. 成功之后,将成功信息保存在request中
    			 */
    			request.setAttribute("msg", "添加成功");
    			request.getRequestDispatcher(
    					"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    					.forward(request, response);
    		} catch (Exception e) {
    			if (e instanceof FileSizeLimitExceededException) {
    				request.setAttribute("msg", "上传文件的大小超出了50kb");
    				request.getRequestDispatcher(
    						"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    						.forward(request, response);
    			}
    			if(e instanceof HotelException){
    				request.setAttribute("msg", e.getMessage());
    				request.getRequestDispatcher(
    						"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    						.forward(request, response);
    			}
    			request.setAttribute("msg", "系统繁忙,请稍后再试...");
    			request.getRequestDispatcher(
    					"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    					.forward(request, response);
    		}
    	}            
    

      异常原因:  

      这个异常的意思是已有提交了,不能够再次转向。这个异常是由于多次提交或者页面中存在多个请求转发造成的,就是说在后台程序在return之前就执行了跳转或者执行了转发操作。

      异常解决办法:

      在转发语句之后,添加return语句,return ;

      如下代码解决问题:

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		try {
    			一个大字(略)
    			/**
    			 * 6. 成功之后,将成功信息保存在request中
    			 */
    			request.setAttribute("msg", "添加成功");
    			request.getRequestDispatcher(
    					"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    					.forward(request, response);
    		} catch (Exception e) {
    			if (e instanceof FileSizeLimitExceededException) {
    				request.setAttribute("msg", "上传文件的大小超出了50kb");
    				request.getRequestDispatcher(
    						"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    						.forward(request, response);
    				return ;
    			}
    			if(e instanceof HotelException){
    				request.setAttribute("msg", e.getMessage());
    				request.getRequestDispatcher(
    						"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    						.forward(request, response);
    				return ;
    			}
    			request.setAttribute("msg", "系统繁忙,请稍后再试...");
    			request.getRequestDispatcher(
    					"/adminjsps/admin/dailyfix/meetting/addcategories.jsp")
    					.forward(request, response);
    		}
    	}
    

      

  • 相关阅读:
    DB2 for Z/os Statement prepare
    Foreign key (referential) constraints on DB2 LUW v105
    复制Informational constraints on LUW DB2 v105
    DB2 SQL Mixed data in character strings
    DB2 create partitioned table
    MVC中使用EF的技巧集(一)
    Asp.Net MVC 开发技巧(二)
    Linq使用技巧及查询示例(一)
    Asp.Net MVC 开发技巧(一)
    Asp.Net MVC Identity 2.2.1 使用技巧(八)
  • 原文地址:https://www.cnblogs.com/geore/p/7466336.html
Copyright © 2011-2022 走看看