Пересылка JSP и вызов сервлетов (передача 2 переменных сеанса) - PullRequest
0 голосов
/ 15 октября 2010

Я пытаюсь перенаправить «HTTP-запрос» со страницы JSP на сервлет (расположенный в пакете);передача переменных, которые хранятся в объекте сеанса.У меня была идея использовать:

<jsp:forward page"/servletName">  
  <jsp:param name="var1" value="<%=beanID.getVar1()%>" />
  <jsp:param name="var2" value="<%=beanID.getVar2()%>" />
</jsp:forward>

В сервлете вы можете найти doPost с аннотацией @override.С помощью следующего кода:

public class servletName extends HttpServlet{

@Override
  public void doPost(HttpServletRequest request, HttpServletResponse response)
                               throws ServletException,IOException{
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();

  var1 = request.getParameter("var1").toString();
  var2 = request.getParameter("var2").toString();

// do more with the variables.

   }

При запуске проекта параметры отправляются в JSP, где вызывается перенаправление / пересылка.После того, как переменные были сохранены (и где сервлет должен называться [JSP: forward]), приложение возвращает страницу 404. Не существует.Если требуется уточнение, скажите, пожалуйста.

Заранее спасибо!B.

Ответы [ 2 ]

0 голосов
/ 15 октября 2010

404 будет происходить всякий раз, когда URL-адрес явно неверен, или на самом деле ничего не стоит за URL-адресом.В случае сервлетов последний может произойти, когда сервлет не объявлен в web.xml, или когда URL не соответствует сервлету url-pattern, или когда не удалось создать и инициализировать сервлет (этот должен быть виден на сервережурналы, однако).

Это может помочь взглянуть на [servlets] страницу информации тега .Есть пример Hello World, который может помочь дать новое представление об использовании JSP / сервлетов.


Обратите внимание, что вы не перенаправляете сюда.Вы пересылаете сервлету.Сервлет получит точно такой же запрос / ответ, что и JSP.Перенаправление в основном инструктирует клиента создать новый запрос.

0 голосов
/ 15 октября 2010

Прежде всего вам не нужно отправлять эти переменные в качестве параметра, вы можете получить доступ к объекту сеанса внутри сервлета (request.getSession ()).Вы уверены, что сервлет вызывается?Может быть, вы могли бы показать немного больше кода, что происходит в сервлете.

...