Как вызвать сервлет при загрузке страницы 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);
}
Откройте его
Обратите внимание, что вы, конечно, можете изменить шаблон URL в отображении сервлета на что-то вроде /hello
так что вы можете использовать более представительный URL:
Смотрите также:
Вместо этого вызовите сервлет, получите результат в атрибуте запроса и отправьте запрос в jsp.
или сделать ajax-вызов сервлету при загрузке и обработать ответ, используя javascript
В JSP paage вы можете переслать запрос в сервлет
response.sendRedirect(request.getContextPath()+"/SomeServlet");