0

我在 JSP 中有以下代码。

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

该页面未根据代码重定向。我正在进入IllegalStateException服务器。

4

3 回答 3

0

Your code should work. But , I recommended to use <JSP:FORWARD>.

Example :-

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

Its more relevant to your purpose.Try, and hope it will help you.

于 2013-04-29T05:04:53.780 回答
0

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

由于您收到IllegalStateException,因此您的 jsp 似乎已经将一些内容写入响应,然后尝试重定向。

在这种情况下,更好的选择是在 Servlet 中编写您的逻辑。

于 2013-04-29T05:16:04.097 回答
0

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

  1. 服务器创建响应,状态码为 302。
  2. 响应进入浏览器,但不显示任何内容
  3. 此响应具有目标资源信息。
  4. 浏览器获取此目标资源信息并生成对目标的内置请求(但它从不显示此响应的任何内容)
  5. 请求到达目的地,最终响应到达浏览器,浏览器显示它。

这里有 2 点需要注意:

  1. 如果 response.sendRedirect(-) 控制通过浏览器通过 1 次网络往返到达最终目的地。
  2. 在这种情况下,它不使用相同的请求和响应对象(因为 Http 是无状态协议)

因此,请记住这一点,您应该提供最终目标资源的绝对 url(包括 web 上下文或 web-root 文件夹),而不是相对 url。

于 2013-04-29T03:59:56.323 回答