公司的项目是s1sh 的,现在在action执行完相应代码之后findForward到一个jsp页面A。
页面A引用了页面B,页面B引用(jsp:include)了页面C。页面C中 link 了一个css<link href="<%=request.getContextPath()%>/webapps/scripts/lighttree/jquery.lightTreeview.css" rel="stylesheet" type="text/css" />
<link href="<%=request.getContextPath()%>/webapps/styles/left.css" rel="stylesheet" type="text/css" />现在报错:java.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 org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:296)
at org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:161)
//主要报错地方
at org.apache.jsp.webapps.pages.netTransport.clientBaseInfo_jsp._jspx_meth_c_005fimport_005f0(clientBaseInfo_jsp.java:811)
at org.apache.jsp.webapps.pages.netTransport.clientBaseInfo_jsp._jspService(clientBaseInfo_jsp.java:518)clientBaseInfo_jsp.java:811 行是 out.write("\t\t\t\t\t\t");只要删除了哪个css的引用项目就可以正常运行。ABC三个页面从前用都是好好的,也没有做什么大的改动。但是只要include B也面的jsp都会报错。请大家帮忙分析下具体的原因。

解决方案 »

  1.   

    Cannot forward after response has been committed这个问题在学校做项目的时候就遇到过,很恶心的一个问题,当初我们认为是“无法在响应已经提交后跳转”,一直在找那个地方出错,但是恶心的是,项目用着用着又没问题了,但用着用着又突然出问题了。当初一直都纠结没办法解决,临时的策略是把项目重新发布,但过一段时间又不行了至今无法理解。。等待大神给出答案
      

  2.   

    一个 jsp有800 多行    代码 贴出来看看  
    这个是错误是由于response多次提交或者是由于有页面显示后仍然含请求转向产生的,就是说程序在return之前就已经执行了跳转或者执行过response,之后遇到return的话,程序想再次执行跳转,也就是重定向,这时功能也许会实现了,但是控制台会报错
      

  3.   

    request.contextPath/webapps/scripts/lighttree/jquery.lightTreeview.css

    pageContext.request.contextPath/webapps/scripts/lighttree/jquery.lightTreeview.css
      

  4.   

    ....
    简单的说 假设你请求的某个页面已经开始跳转到另外一个页面 可是在跳转操作的后面还在向跳转前的页面输出内容 就会出现这个异常确认方式:
    检查JSP生成的java文件看看生成的代码是否的确有这样的行为
    解决方式:
    取消这样的行为