Управление сеансом Http/альтернативное управление сеансом (на Java)

Я постараюсь как можно лучше объяснить, что я делаю, чтобы получить наилучший совет/решение. Это все делается в java.

У моего клиента есть настольное приложение на основе SWING, которое будет загружаться с помощью WebStart. Мне было поручено создать диспетчер сеансов для информации об учетной записи пользователя.

Мой друг предложил использовать Http Session Management, поэтому я решил попробовать. Я написал сервлет (назовем его SessionServlet), который создает, удаляет и переназначает сеансы на основе профиля пользователя. В tomcat 7 сеансы не сохраняются. Я подозреваю, что когда сервлет инициализируется, сеанс отключается. Я получаю только org.apache.catalina.ASYNC_SUPPORTED в сеансе.

Мой вопрос (ы):

  • Как разрешить Tomcat 7 управлять сеансом?
  • Как я могу управлять сеансом в Spring 3? У меня есть большинство сервисов, работающих на Spring, и я думаю, что для меня будет достаточно разумно использовать Session Management на Spring.
  • Какие еще средства для управления сеансами в java, есть ли шаблон проектирования для управления сеансами? (просто любопытно).

Бесконечно благодарен!


person Buhake Sindi    schedule 24.08.2010    source источник


Ответы (2)


Я могу неправильно понять, что вы пытаетесь сделать с сеансом, но сеансы (с точки зрения сервлетов) существуют только тогда, когда пользователь обращается к сайту. Таким образом, пользователь получает первую страницу, и сеанс устанавливается и доступен для каждой страницы, к которой обращается пользователь. Когда пользователь покидает сайт, сессия исчезает. Это поведение, которое вы ищете, или вы ищете что-то, что будет сохраняться между посещениями сайта?

person Jaydee    schedule 24.08.2010
comment
Что-то, что останется навсегда. то есть сеанс может существовать вечно, пока когда-нибудь его не попросят уничтожить. - person Buhake Sindi; 24.08.2010
comment
Я думаю, вам лучше взглянуть на файлы cookie, которые могут сохраняться в течение длительного периода времени. NB Я очень мало знаю о Spring. - person Jaydee; 24.08.2010
comment
Я дал вам +1 за ваши усилия. - person Buhake Sindi; 29.08.2010

Я понял это, поэтому я поделюсь своим мнением.

При выполнении управления сеансом Http (особенно с сервлетами) необходимо убедиться, что управление сеансом на стороне клиента также существует.

Что происходит, так это то, что при создании сеанса сервлет возвращает файл cookie со значением JSESSIONID сеанса, созданного контейнером сервлета. Убедитесь, что клиентская сторона может сохранить сеанс и использовать его каждый раз, когда вам нужно получить доступ к данным сеанса с сервера.

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

Надеюсь, это поможет кому-то еще.

person Buhake Sindi    schedule 28.08.2010
comment
Это правильно. Жаль, что я пропустил вопрос. В конце концов, это связано с Servlet API, поэтому тег servlet также будет на месте. - person BalusC; 29.08.2010