Подтвердить что ты не робот

Response.sendRedirect() из Servlet в JSP, похоже, не работает

Я пишу программу клиентского сервера. Я отправляю arraylist с телефона Android, и я также могу получить список. После этого я хочу, чтобы сервлет перенаправлялся на 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");

Как это вызвано и как я могу его решить?

4b9b3361

Ответ 1

Я отправляю этот ответ, потому что тот, у кого больше всего голосов, сбил меня с пути. Чтобы перенаправить с сервлета, вы просто делаете это:

response.sendRedirect("simpleList.do")

В этом конкретном вопросе я думаю, что @MD правильно объясняет, почему у его проблемы есть проблема, но поскольку это первый результат в google при поиске "Перенаправление с сервлета", я думаю, важно иметь ответ, помогает большинству людей, а не только первоклассным.

Ответ 2

Вместо использования

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

Что делает постоянное перенаправление на абсолютный путь URL,

Скорее используйте RequestDispatcher. Пример:

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

Ответ 3

Поскольку вы уже отправили некоторые данные,

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

вы не сможете отправить перенаправление.

Ответ 4

Вы можете использовать это:

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

Последняя часть - это ваш путь в вашем веб-приложении