У меня есть веб-приложение, которое содержит два сервлета: один для рендеринга моих страниц JSP, а другой для создания PDF-файлов.Я использую состояние сеанса между страницами JSP и хочу передать объект сеанса в сервлет PDF.
Вот пример того, как я устанавливаю значения сеанса в JSP:
MyObject o = (MyObject)session.getAttribute("my.object");
if (o == null)
{
o = new MyObject();
session.setAttribute("my.object", o);
}
Iзатем отправьте сообщение в мой новый сервлет для генерации PDF по ссылке в моем JSP
<a href="../pdfgen?f=d&t=c" target="_blank">Generate a draft report for review</a>
. Я подумал, что мог бы использовать объект HTTPRequest для возврата сеанса в моем сервлете следующим образом:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
HttpSession session = request.getSession(false);
MyObject o = (MyObject) session.getAttribute("my.object");
}
Используя приведенный выше код, я получаю нулевой объект сеанса из запроса.
Если я использую request.getSession(true)
, я получаю объект сеанса, но, конечно, он ничего не содержит в атрибуте my.object
.
Как это должно работать?Каковы правила совместного использования состояния сеанса между сервлетами.
Tomcat 6
TIA