从Servlet到JSP的response.sendRedirect()似乎不起作用

时间:2011-05-30 11:31:46

标签: redirect servlets

我正在编写客户端服务器程序。我从Android手机发送一个arraylist,我也能收到列表。之后,我希望servlet使用demo.jsp重定向到response.sendRedirect(),但它不会重定向。也试过requestDispatcher.forward()

ObjectInputStream in = new ObjectInputStream((InputStream) request.getInputStream());
List<Double> al=(List<Double>)in.readObject();
in.close();
for(int x=0;x<al.size();x++)
{
    System.out.println("List");
    System.out.println(al.get(x));
}
System.out.println("going to demo.jsp");
response.sendRedirect("demo.jsp");

这是如何引起的?如何解决?

4 个答案:

答案 0 :(得分:45)

我发布这个答案是因为票数最多的人让我误入歧途。要从servlet重定向,只需执行以下操作:

response.sendRedirect("simpleList.do")

在这个特殊的问题中,我认为@MD正确地解释了为什么提问者遇到了他的问题,但由于这是谷歌搜索“从Servlet重定向”时的第一个结果,我认为有一个答案是很重要的帮助大多数人,而不仅仅是原始的提问者。

答案 1 :(得分:15)

而不是使用

response.sendRedirect("/demo.jsp");

永久重定向到绝对URL路径

而是使用RequestDispatcher。例如:

RequestDispatcher dispatcher = request.getRequestDispatcher("demo.jsp");
dispatcher.forward(request, response);

答案 2 :(得分:-2)

由于您已经发送了一些数据,

System.out.println("going to demo.jsp");

您将无法发送重定向。

答案 3 :(得分:-2)

您可以使用:

response.sendRedirect(String.format("%s%s", request.getContextPath(), "/views/equipment/createEquipment.jsp"));

最后一部分是您在网络应用中的路径