Вход на сайт
Вопросик из области Web-Programmierung, Java
5645 просмотров
Перейти к просмотру всей ветки
в ответ Murr 10.09.15 14:53, Последний раз изменено 10.09.15 15:54 (MrSanders)
В ответ на:
Исчезает та копия с которой он работал. Остается - та, которая была загружена на аппсервер. В данном случае - ТомКат.
Исчезает та копия с которой он работал. Остается - та, которая была загружена на аппсервер. В данном случае - ТомКат.
Чушь. Это один и тот же явовский объект. Вебконтейнер теоретически может создавать новый объект (клон) HttpSession с теми же данными для нового запроса, но так как параллельные запросы для одной и той же сесстии достаточно редкая вещь то вряд ли хоть кто-то такое делает. Я не знаю ни одного сервлет-контейнера создающего копии сессии для каждого запроса.
В ответ на:
Инстанцируется (или клонируется) при получении запроса.
Инстанцируется (или клонируется) при получении запроса.
Нет. RTFM. Сервлет - синглтон (если ручками не поломать это поведение). Один и тот же объект используется разными потоками.
В ответ на:
Основание - <HTTP>-протокол есть <state less> протокол - каждый запрос обрабатывается независимо от предыдущих/других/следующих.
Основание - <HTTP>-протокол есть <state less> протокол - каждый запрос обрабатывается независимо от предыдущих/других/следующих.
Логика! Убил. А может тогда весь сервер перегружать для каждого запроса? Ведь "<HTTP>-протокол есть <state less> протокол".
А зачем вообще придумали сессии не подскажете?
В ответ на:
- а. у аппсервера не одна <HttpSession>, а набор/коллекция...
- б. коллекция - именно у аппсервера, а не у отдельная сессия у сервлета...
- а. у аппсервера не одна <HttpSession>, а набор/коллекция...
- б. коллекция - именно у аппсервера, а не у отдельная сессия у сервлета...
И? А небо голубое, а травка зеленая.
В ответ на:
- в. инстансе сервлета работает с копией/клоном сессии хранимой аппсервером.
- в. инстансе сервлета работает с копией/клоном сессии хранимой аппсервером.
Кто вам такое рассказал? Multiple servlets executing request threads may have active access to a single session object at the same time. The Developer has the responsibility for synchronizing access to session resources as appropriate.
Почитайте http://www.ibm.com/developerworks/library/j-jtp09238/index.html что ли.
В ответ на:
Тяжело.
Тяжело.
И не говорите. Ведь зарекался с вами общаться, потому как постоянно с гигантским апломбом несете чушь про то, в чем вообще не разбираетесь...
В ответ на:
Остается только спросить - что будет при многократных, до окончания выполнения, запросах (и запусках)
сервлета и хранении в сессиях каких-то промежуточных данных?
Остается только спросить - что будет при многократных, до окончания выполнения, запросах (и запусках)
сервлета и хранении в сессиях каких-то промежуточных данных?
В нескольких потоках (да-да каждый запрос контейнер обрабатывает в отдельный свободном потоке) будет выполнятся один и тот же код у одного и того же объекта (конечно, внутри потока создается своя "копия" объекта, которая синхронизируется или принудительно, или когда свободное время будет с "оригиналом". Как реализованы потоки на яве вам рассказывать не надо?)
Код сервлета должен быть thread-safe. "Промежуточные данные" следует хранить в сессии не забывая что одноверменно могут работать много потоков. Что опять же в обной и той же сессии происзодит не так часто. При AJAX-овский запросах бывает, да. Или синхронизируем доступ, или привязываем к потоку.
В ответ на:
Ну скажем запрет на повторный вход в контекстно-критическую секцию кода...
Ну скажем запрет на повторный вход в контекстно-критическую секцию кода...
Вы про синхронизацию слышали?
В ответ на:
Почему этой проблемы нет?
Почему этой проблемы нет?
Потому что у тех, кто умеет программировать многопоточные приложения, этой проблемы просто нет.