Как инициализировать сеанс во втором сервлете (чтобы получить данные, сохраненные первым сервлетом в переменной сеанса) - PullRequest
0 голосов
/ 27 июля 2011

Я храню переменную в данных сеанса из сервлета, где пользователь пытается войти в мое приложение.Теперь я хочу получить пользовательские данные из сеанса в другом сервлете в том же приложении.

Как инициализировать переменную сеанса во втором сервлете?Принимая «запрос» в качестве «HttpServletRequest», я кодирую переменную сеанса как «HttpSession session = null;»или как "HttpSession session = request.getSession (true);"?Или это какой-то другой путь?

Обратите внимание, что в потоке приложения пользователь переходит на внешнюю страницу с первого сервлета, а с внешней страницы он перенаправляется на второй сервлет.(Внешняя страница в основном регистрирует пользователя через oauth в Google / Yahoo / Hotmail и т. Д.).

Означает ли это, что в этом случае я не могу использовать переменные сеанса?Должен ли я использовать переменные области приложения?

Пожалуйста, извините, если мой вопрос звучит глупо, сегодня только 3-й день моего начала кодирования в сервлетах ...

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Arvind,

в JSP вы используете:

   <% Object something = request.getSession().getAttribute( "foo" ) %>

, что, что неудивительно, очень похоже на ответ Тило ...: -)

JSPкод оценивается на стороне сервера, поэтому все, что вам нужно, это убедиться, что JSP связан с сервлетом, например.сервлет делает что-то вроде

   response.sendRedirect( "your.jsp" )

/ Андерс /

1 голос
/ 27 июля 2011
request.getSession().setAttribute("foo", something);

должно работать.

Позже вы можете получить данные

Object something = request.getSession().getAttribute("foo");
...