Объект сеанса, cookie в Java-сервлетах против ASP .NET - PullRequest
0 голосов
/ 18 февраля 2012

Я читал как об объекте сеанса, так и о cookie. Объекты сессий поддерживаются на стороне сервера. Cookies - это вещи, которые поддерживаются на стороне клиента и отправляются на сервер по запросу браузера. У меня есть некоторые сомнения, что я до сих пор не могу уточнить:

1.) В ASP .NET сессии можно отслеживать с помощью файлов cookie. Используя вещи, как показано ниже в файле конфигурации

<configuration>
  <sessionstate 
      mode="inproc"
      cookieless="false" 
      timeout="20" 
      sqlconnectionstring="data source=127.0.0.1;user id=<user id>;password=<password>"
      server="127.0.0.1" 
      port="42424" 
  />
</configuration>

Какая конфигурация Java-сервлета эквивалентна выше и где она настроена?

2.) В Java, если включено отслеживание состояния cookiefull, нужно ли нам писать код для извлечения куки-файла из запроса и использования его для получения деталей объекта сеанса, или это делается внутренне с помощью инфраструктуры J2EE, то есть инфраструктура J2EE видит файл cookie и автоматически назначает соответствующий объект сеанса запросу страницы?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

ASP.NET и J2EE различаются в том смысле, что J2EE - это просто спецификация для корпоративных java-приложений, и в ней отсутствует фактическая реализация.Есть много реализаций для J2EE, вот список: http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Certified_application_servers.

Если вы посмотрите на интерфейс HttpServletRequest , вы заметите метод getSession () , который возвращает HttpSession , там написано:

Сервер может поддерживать сеанс различными способами, такими как использование файлов cookie или перезапись URL

Различные серверы могут обрабатывать это по-разному.Вам нужно будет найти ответ для определенного сервера, а именно: Поддержка сеансов без файлов cookie в Tomcat .

1 голос
/ 18 февраля 2012

Контейнеры Java EE по умолчанию для управления сеансами используют файлы cookie (хотя и поддерживают другие методы, такие как перезапись URL).

Нет необходимости - и вы не должны - управлять файлами cookie сеанса самостоятельно, поскольку контейнервсе это для тебя.Он предоставляет экземпляр HttpSession, который представляет сеанс текущего пользователя: если вы хотите, чтобы определенные объекты сохранялись между запросами, вы можете сохранить их здесь как атрибуты и восстановить их при последующем обращении к этому объекту HttpSession.Там нет необходимости писать код, связанный с cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...