|
|
|
Несколько теоретических вопросов о HttpSession?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, создаю небольшое приложение с авторизацией, и что-то мне перемешалось все... В большинстве примеров показано следующее Код: java 1. 2. 3. Как мне организовать следующее, теоретически: 1. Человек находится на стартовой странице сайта - ему соответственно никакая сессия не нужна. 2. Вводит логин и пароль, на сервере припустим фильтр какой-то проверяет и обратно шлет в http-header JSESSIONID которое генерирует HttpSession. 3. Пользователь успешно залогинился, теперь при каждом запросе он в своем http-header шлет JSESSIONID, я соответственно сверяю сессию (есть ли она в HttpSession). - Все верно? 4. Выхожу с аккаунта - просто ставлю сессию в setInvalidate. Теперь непонятные мне действия. - Как HttpSession распознает пользователей? При первом запросе говорит что сессия новая, при всех последующих JSESSIONID в сессии тот же, но значение isNew=false. - не понимаю как сравнивать сессии? Просто сравнивать строчки JSESSIONID? -зачем все вставляют дополнительный атрибут httpSession.setAttribute("username", username); ? Как оно связывается между собой? Вопросы возможно глупые, но буду благодарен за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 22:57 |
|
||
|
Несколько теоретических вопросов о HttpSession?
|
|||
|---|---|---|---|
|
#18+
_webdev_- Как HttpSession распознает пользователей? Этот класс никак не связан с пользователями и никак их не распознаёт. Браузер хранит jsessionid в куках или параметрах запроса. Сервер по jsessionid трекает сессию на сервере. _webdev_При первом запросе говорит что сессия новая, при всех последующих JSESSIONID в сессии тот же, но значение isNew=false. Набор слов какой-то. isNew это аргумент метода. Это, возможно, ключ к вашему первому вопросу. Если вызывать сессию с параметром false, то она не будет создана на сервере, если её ещё нет. В JavaDoc имеется более точная формулировка. _webdev_- не понимаю как сравнивать сессии? Просто сравнивать строчки JSESSIONID? Зачем их сравнивать? Они, обычно, никак не взаимодействуют. _webdev_-зачем все вставляют дополнительный атрибут httpSession.setAttribute("username", username); ? Как оно связывается между собой? Почему этот атриубут вдруг дополнительный? Просто когда влом использовать JEE для аутентификации и авторизации, пишут всё ручками в сессию. _webdev_Вопросы возможно глупые, но буду благодарен за ответы. Да. Над формулировкой надо поработать. Потому что по вашим словам HttpSession это прям магия какая-то. А это просто Key Value Map для того чтобы на сервере хранить значения связанные с клиентской сессией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2015, 10:06 |
|
||
|
Несколько теоретических вопросов о HttpSession?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz_webdev_-зачем все вставляют дополнительный атрибут httpSession.setAttribute("username", username); ? Как оно связывается между собой? Почему этот атриубут вдруг дополнительный? Просто когда влом использовать JEE для аутентификации и авторизации, пишут всё ручками в сессию. ну, он имел ввиду, что это дает... а дает это то, что из любой точки приложения можно получить username из объекта сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2015, 10:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38973641&tid=2125339]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 372ms |

| 0 / 0 |
