2010-05-29 2 views
2

Я пытаюсь создать сервер Spring для GWT (вы можете думать об этом как о клиенте Javascript AJAX). Но я не могу решить одну точку архитектуры. Как создать и использовать сеанс?Обработка идентификатора сеанса с помощью Spring

Очевидным наиболее простым способом является использование сеансов HTTP (куки и прочее). Выглядит хорошо, но я думаю, что отправка идентификатора сеанса отдельно от заголовков будет лучше (стиль SOAP).

Итак, что лучше: getMyPetsName(String sessionID, int petID) или getMyPetsName(int petID) + идентификатор сеанса через HTTP-заголовок (файлы cookie или что-то еще).

Другой вопрос: если я использую первый способ (который мне больше нравится) - как мне обрабатывать сеанс весной? Я действительно новичок весной, а googling не помог. Что я имею в виду:

String getMyPetsName(String sessionID, int petID) { 
    Session s = someWayToGetItById(sessionID); 
} 

Заранее благодарен.

ответ

2

Если вы можете выбрать его, я бы выбрал всегда отправку идентификатора сеанса.

Это упростит работу, когда пользователь откроет несколько вкладок в одном сеансе.

Если вы не используете Spring MVC, я не думаю, что Spring поставит много ограничений/предположений о том, как вы обрабатываете сеанс. Существует много кешей, таких как ehcache, которые можно настроить с помощью весны и хранить ваши сеансы. Лучшие кеши также позволяют сеансам распределяться по машинам и постоянно сохраняться, не влияя на базу кода.

+0

Да, поэтому я подумал, что это лучший способ сделать это. Однако второй вопрос по-прежнему открыт, я не имею ни малейшего понятия, как получить сессию по ID весной. – bezmax

+0

Да, я отредактировал свой ответ, чтобы включить это. Я бы просто использовал хорошую реализацию кеша, которую легко настроить Spring. Затем Spring добавит его в ваши компоненты. Как правило, они имеют singleton, который позволяет получать данные сеанса. –

+0

Хм, поэтому вы предлагаете сеансы обработки отдельно от сеансов контейнера. Разве нет возможности повторно использовать сеансы контейнера? Например, чтобы заставить его дать мне сеанс с указанным ID? – bezmax

Смежные вопросы