Я новичок в Java, сервлетах и JSP и унаследовал приложение, в котором пытаюсь решить проблему.
У меня есть страница JSP, которая вызывает сервлет tomcat (Tomcat7) с некоторыми жестко закодированными параметрами через jsp: forward. Цель этой страницы JSP - создать простую и понятную ссылку на веб-ресурс, для которого требуется множество параметров.
Сервлет выполняет поиск данных и привязывает результаты к сеансу, который затем может быть перемещен с последующими веб-запросами, если имеется более 10 элементов. Все это прекрасно работает при использовании сервлета для запроса начальных результатов, а затем перехода на последующие страницы. Сайт использует куки для управления сессией.
Вот пример:
Это работает - вызовите запрос на полную страницу
http://cleanweb.co.nz/abode/getCategoryProducts.do?_siteId=7&_categoryId=1397&method=getCategoryProducts
Затем перейдите к следующей странице результатов (стр. 2)
Это не работает - вызовите страницу JSP
(сервер apache использует rewrite, чтобы превратить это в Full_Client_List.jsp)
http://cleanweb.co.nz/Full_Client_List
Затем перейдите к следующей странице результатов (стр. 2)
Если я вызываю первый запрос полностью (не через страницу JSP), то сервлет запоминает результаты, когда я хочу просмотреть последующие страницы
Эта установка работает на старом сервере с apache и tomcat (3.1). Это можно увидеть в действии, заменив cleanweb.co.nz в приведенных выше ссылках на 202.191.38.129.
Что-то изменилось в разработке tomcat или какие настройки мне не хватает?
EDIT
Я обнаружил, что tomcat сохранил cookie с контекстом или именем приложения в пути, поэтому сеанс был потерян при переходе на страницы, на которых это не было частью URL.
Решение (для меня) состояло в том, чтобы tomcat установил путь к cookie как /. В используемой версии это делается установкой sessionCookiePath = "/" в качестве свойства тега контекста проекта в файле конфигурации tomcat server.xml