页面未被重定向

时间:2013-04-29 01:44:18

标签: java jsp

我在JSP中有以下代码。

try {
   ...
   if (...)
      response.sendRedirect("secondPage.jsp");
   ...
} catch (Exception e) {
   response.sendRedirect("thirdPage.jsp");
}

根据代码不会重定向页面。 我在服务器中获得了IllegalStateException

3 个答案:

答案 0 :(得分:0)

据我所知...... 重定向呼叫后:

  1. 服务器创建响应,状态码为302。
  2. 响应转到浏览器,但不显示任何内容
  3. 此响应具有目标资源信息。
  4. 浏览器获取此目标资源信息并生成到目标的内置请求(但它从不显示此响应的任何内容)
  5. 请求转到目标,最终响应到浏览器,浏览器显示它。
  6. 这里有两件事要注意:

    1. 如果response.sendRedirect( - )控制进入最终目的地,通过浏览器进行1次网络往返。
    2. 在这种情况下,它不使用相同的请求和响应对象(如Http是无状态协议)
    3. 因此请记住,您应该将绝对网址(包括网络上下文或网络根文件夹)提供给您的最终目标资源,而不是相对网址。

答案 1 :(得分:0)

您的代码应该有效。但是,我建议使用<JSP:FORWARD>

示例: -

<jsp:forward page="index.jsp" />

它与你的目的更相关。试试,并希望它能帮到你。

答案 2 :(得分:0)

确保在sendRedirect命令之前没有在响应中写入任何内容

由于您收到 IllegalStateException ,看起来您的jsp已经在响应中写了一些内容然后尝试重定向。

此方案中更好的选择是在Servlet中编写逻辑。