获取异常说明在提交响应后无法转发

时间:2014-03-11 13:39:51

标签: jsp java-ee servlets

您正在使用我收到以下异常的简单转发方法

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

我知道如果我尝试在sendRedirect()之后执行前进会发生此异常,但在我的情况下,它很简单,我仍然会收到此异常。 有趣的部分是这个代码工作时第二个如果是真的。也就是说,

if(strCoyoteRequest.contains("BuildNPlay"))

这很好用。

但它不适用于其他条件。

以下是我的代码

    String strForwardPage = new String();
    String strQueryString = request.getQueryString();

    String strCoyoteRequest = request.getRequestURI();

    if(strCoyoteRequest.contains("AdminConsole"))
        strForwardPage = "/AdminConsole/index.jsp";
    else if(strCoyoteRequest.contains("BuildNPlay"))
        strForwardPage = "/BuildNPlay/index.jsp";
    else if(strCoyoteRequest.contains("Portal"))
        strForwardPage = "/Portal/index.jsp";
    else if(strCoyoteRequest.contains("ServiceDashBoard"))
        strForwardPage = "/ServiceDashBoard/index.jsp";

    RequestDispatcher dispatcher = request.getRequestDispatcher(strForwardPage);
    response.setHeader("Cache-control", "no-cache");
    response.setHeader("Pragma", "no-cache");
    dispatcher.forward(request, response);

1 个答案:

答案 0 :(得分:0)

转发前请勿致电response.setHeader(...);。那是在做出回应。

转发到的页面是进行缓存控制的页面。