2010-12-02 1 views
6

Я прочитал документацию apache tomcat за день до этого, и я так смущен насчет emptySessionPath. Насколько мне известно, если он установлен в true, то emptySessionPath хранится в корневой папке веб-приложения. Пожалуйста, дайте правильное определение термина emptySessionPath, и что произойдет, если он установлен в true и false?Что такое пустой сеанс в tomcat?

Пожалуйста, помогите мне. Спасибо заранее.

ответ

7

В поле emptySessionPath указано, следует ли хранить все файлы cookie в корневом URL-адресе / (если emptySessionPath=true) или нет (в противном случае).

Это используется разъемом Apache. См. Подробности here (Это для коннектора AJP, который является частью объекта Connnector).

что это в основном означает:

Если emptySessionPath включен в коте, то JSESSIONID печенья является в корневой каталог «/» путь. Это означает, что любой webapp, который вы используете на , будет использовать тот же файл cookie. Каждый webapp перезапишет значение cookie , удерживая этот идентификатор сеанса webapp, и все они разные.

Когда включена и сервлеты в различном WebApps используются, запросы от того же пользователя к различным сервлет закончится перезаписью печенья так, что, когда сервлет снова взаимодействовали с ним создаст новые сеанс и потерять сеанс, он уже установил .

Если emptySessionPath не установлен, то есть несколько куки в браузере, один для каждого веб-приложение (ни в корень), поэтому различные WebApps не являются переписывание печенья друг друга, как выше.

JSESSIONID - это идентификационная сессия для вашего Webapp. См. Полное объяснение here.

Update: Информация о использования несколько устарел - см here для более последней актуальной информации о том, как установить путь Session также для недавнего кота.

+0

Привет Elite, Спасибо за ваш answer.I получило свою точку зрения. – 2010-12-02 10:06:14

4

Сессия, как вы знаете, часто поддерживается куки-файлом. Файл cookie имеет два значения, которые определяют, должны ли они быть возвращены браузером для определенного запроса, cookieDomain и cookiePath. Файл cookiePath должен соответствовать запросу.

запрос сделан для

/some/request/for/this.html 

Cookie будет возвращен с пути печенья:

/
/some 
/some/request 

Но не для печенья пути:

/other 

По спецификации, сессия является не разделяются между различными веб-приложениями, поэтому, если у вас есть веб-приложение foo.war, развернутое под /foo, путь к cookie сеанса, по умолчанию, должен быть установлен в /foo.

Кажется Connector.emptySessionPath является защищенной переменной на разъеме. Я не читал код - но я думаю, что он имеет какое-то отношение к единственному знаку или совместному сеансу Tomcat, где вы входите в один контекст и аутентифицированы во всех - в этом случае путь к файлу cookie должен быть / для файлов cookie сеанса ,

5

Если для параметра emptySessionPath установлено значение true, он устранит путь контекста из файла cookie JSESSIONID. Он установит путь к файлу cookie для /.Этот атрибут может использоваться для механизма проверки подлинности кросс-приложений.

0

Только в случае, для web_app версии 3.0, конфигурация печенья является стандартизировано, поэтому эквивалентно emptySessionPath в ОЮЛ в веб-приложение 3.0:

< сеанса конфигурации >
< печенья конфигурации >
< путь >/</путь >
< безопасный > истинный </безопасный >
</печенье конфигурация >
</сессия конфигурация >