Что атрибут crossContext делает в Tomcat? Это включает сессию, совместно использующую?

getday возвращает адрес buf. Таким образом, printf получает один и тот же параметр дважды (адрес buf). buf содержит строку «Воскресенье» , когда printf оценивает его параметры, потому что выполняется первый getday(1) (в вашем случае компилятор сначала выбирает самый правый параметр), заполняя buf выполняется строка «Понедельник» , затем getday(0), заполняющая buf строкой «Воскресенье» , а затем printf использует данные по данному адресу (который это "воскресенье").

Чтобы это исправить, вы должны либо скопировать возвращаемое значение getday() в отдельные локальные буферы и передать их в printf, либо каждый раз возвращать разные адреса, например, возвращая адрес в массиве msg вместо buf, например, итак:

char *getday(int idx) {
    return msg[idx];
}
11
задан skaffman 14 May 2012 в 19:59
поделиться

3 ответа

От javadoc ServletContext.getContext():

Этот метод позволяет сервлетам получать доступ к контексту для различных частей сервера и по мере необходимости получать объекты RequestDispatcher из контекста. Данный путь должен быть, начинаются "/", интерпретируется относительно корня документа сервера и подобран против корней контекста других веб-приложений, размещенных на этом контейнере.

Так, например, если Вы хотите включать страницу от другого веб-приложения, необходимо установить crossContext на истинный.

11
ответ дан 3 December 2019 в 02:53
поделиться

Можно совместно использовать сессии между веб-приложениями при помощи Клапана Единой точки входа.

Вы установили бы crossContext=true если Вы хотели поделиться некоторой информацией между различными веб-приложениями в том же Виртуальном Хосте.

Например, app1 звонил бы:

setAttribute("name", object);

и другое приложение могло звонить

getContext("/app1").getAttribute("name");

считать информацию. Если бы crossContext не был установлен на истинный, getContext ("/app1") возвратил бы пустой указатель.

Однако использование crossContext и редко и потенциально небезопасно.

19
ответ дан 3 December 2019 в 02:53
поделиться

Я попробовал его сам, и я не могу найти волшебный побочный эффект совместного использования сессии, таким образом, crossContext приписывают, только делает то, что говорят документы.

Я отправил другой вопрос видеть, существует ли способ совместно использовать состояние сеанса.

0
ответ дан 3 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: