Как вызвать сервлет при загрузке страницы jsp?

У меня ниже сервлет. Я хотел бы вызвать сервлет на jsp загрузка страницы. Как я могу это сделать?

сервлет: SomeServlet.java

<servlet>
  <servlet-name>Hello</servlet-name>
  <servlet-class>SomeServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>Hello</servlet-name>
 <url-pattern>/HelloWorld</url-pattern>
 </servlet-mapping>

Как я могу написать соответствующий JSP для вызова сервлета при загрузке страницы JSP. Также мне нужно получить результат от сервлета и отобразить в том же JSP. Могу ли я отправить результат обратно jsp?

Спасибо!

4 ответа

Вы должны сделать это наоборот. Вызовите сервлет по его URL и позвольте ему представить JSP. Это также нормальный подход MVC (сервлет - это контроллер, а JSP - это представление).

Сначала поместите файл JSP в /WEB-INF папку, чтобы конечный пользователь никогда не мог "случайно" открыть ее, напрямую введя ее URL в адресную строку браузера, не вызывая сервлет. Затем поменяйте сервлет doGet() соответственно, он направляет запрос в JSP.

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // ...

    request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
}

Откройте его

http://localhost:8080/contextname/HelloServlet

Обратите внимание, что вы, конечно, можете изменить шаблон URL в отображении сервлета на что-то вроде /hello так что вы можете использовать более представительный URL:

HTTP: // локальный: 8080 / contextname / привет

Смотрите также:

<jsp:include page="/HelloWorld"/>

Вместо этого вызовите сервлет, получите результат в атрибуте запроса и отправьте запрос в jsp.

или сделать ajax-вызов сервлету при загрузке и обработать ответ, используя javascript

В JSP paage вы можете переслать запрос в сервлет

response.sendRedirect(request.getContextPath()+"/SomeServlet");
Другие вопросы по тегам