LINUX.ORG.RU

Редирект с index.jsp на сервлет.

 ,


0

1

Хочу на загрузке главной страницы (index.jsp) сначала обращаться к сервлету, который будет брать данные из базы и передавать их обратно на главную страницу с редиректом. Вот web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Practicle 10. Servlets and JSP</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <display-name>ItemsContentHandler</display-name>
    <servlet-name>ItemsContentHandler</servlet-name>
    <servlet-class>com.test.servlets.ItemsContentHandler</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ItemsContentHandler</servlet-name>
    <url-pattern>/index.jsp</url-pattern>
  </servlet-mapping>
</web-app>
Вот кусок кода сервлета:
	protected void service(HttpServletRequest request, HttpServletResponse
	    response) throws ServletException, IOException {

		// ... Инициализация и наполнение данными internalItems ... //
		request.getSession().setAttribute("itemList", internalItems);
		RequestDispatcher dispatcher = getServletContext().
		        getRequestDispatcher("/index.jsp");

		dispatcher.forward(request, response);
	}
Когда открываю страницу index.jsp в первый раз - данные не подгружаются. Только после обновления страницы (на 2-й раз) данные корректно отображаются. При этом если поместить вместо
  <servlet-mapping>
    <servlet-name>ItemsContentHandler</servlet-name>
    <url-pattern>/index.jsp</url-pattern>
  </servlet-mapping>
другой паттерн для примера:
  <servlet-mapping>
    <servlet-name>ItemsContentHandler</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>
и обратиться к нему по ссылке напрямую, то данные нормально загружаются. Не могу понять что не так с редиректом в первом случае. Заранее спасибо за ответ.

Что-то я в последнее время решаю свои вопросы исключительно сам. Ничего плохого, впрочем. (: Правда, решение опять косвенное. Прикрутил сервлет на аутентификацию пользователя, теперь с него передается управление только напрямую нужному сервлету, на index.jsp и иже с написал фильтры. Напрямую мой вопрос скорее всего решался изменением главной страницы в web.xml на мэппинговый url для сервлета. SOLVED.

Insomnium ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.