#java #servlets #jsessionid
#java #сервлеты #jsessionid
Вопрос:
Может кто-нибудь сказать мне, что должно произойти, если клиент инициирует запрос к контейнеру сервлета с составленным (действительным) идентификатором JSESSIONID? предположим, что у сервлета нет этого jsessionid в своих записях (мы не перехватываем сеанс, просто создаем его), примет ли сервлет этот сеанс и будет использовать его для всех последующих вызовов или он проигнорирует его, создаст свой собственный jsessionid и вернет его клиенту?
Ответ №1:
Если HttpSession
не удается найти на основе заданного JSESSIONID, он будет просто проигнорирован. Новый будет создан всякий раз, когда этого потребует код, и будет установлен новый файл cookie JSESSIONID с новым идентификатором.
Комментарии:
1. Хорошо .. tx .. в таком случае, есть идеи, как я могу распространить сеанс, созданный моим интерфейсом, на мой серверный сервер через http? я хочу, чтобы серверная часть была с отслеживанием состояния
2. Вам нужно будет реализовать свой собственный менеджер сеансов. Вы даже можете сделать это на уровне serletcontainer. Например, в Tomcat вам нужно реализовать
org.apache.catalina.Manager
и настроить вcontext.xml
. В противном случае вам придется самостоятельно поддерживать абстракции сеанса в области приложения. Будьте осторожны с этим, это очень подвержено атакам. Я бы предпочел поддерживать состояние, просто требуя входа в систему, а затем связывая данные только с конкретным пользователем.