getday
возвращает адрес buf
. Таким образом, printf
получает один и тот же параметр дважды (адрес buf
). buf
содержит строку «Воскресенье» , когда printf
оценивает его параметры, потому что выполняется первый getday(1)
(в вашем случае компилятор сначала выбирает самый правый параметр), заполняя buf
выполняется строка «Понедельник» , затем getday(0)
, заполняющая buf
строкой «Воскресенье» , а затем printf
использует данные по данному адресу (который это "воскресенье").
Чтобы это исправить, вы должны либо скопировать возвращаемое значение getday()
в отдельные локальные буферы и передать их в printf
, либо каждый раз возвращать разные адреса, например, возвращая адрес в массиве msg
вместо buf
, например, итак:
char *getday(int idx) {
return msg[idx];
}
От javadoc ServletContext.getContext()
:
Этот метод позволяет сервлетам получать доступ к контексту для различных частей сервера и по мере необходимости получать объекты RequestDispatcher из контекста. Данный путь должен быть, начинаются "/", интерпретируется относительно корня документа сервера и подобран против корней контекста других веб-приложений, размещенных на этом контейнере.
Так, например, если Вы хотите включать страницу от другого веб-приложения, необходимо установить crossContext на истинный.
Можно совместно использовать сессии между веб-приложениями при помощи Клапана Единой точки входа.
Вы установили бы crossContext=true
если Вы хотели поделиться некоторой информацией между различными веб-приложениями в том же Виртуальном Хосте.
Например, app1 звонил бы:
setAttribute("name", object);
и другое приложение могло звонить
getContext("/app1").getAttribute("name");
считать информацию. Если бы crossContext не был установлен на истинный, getContext ("/app1") возвратил бы пустой указатель.
Однако использование crossContext и редко и потенциально небезопасно.
Я попробовал его сам, и я не могу найти волшебный побочный эффект совместного использования сессии, таким образом, crossContext приписывают, только делает то, что говорят документы.
Я отправил другой вопрос видеть, существует ли способ совместно использовать состояние сеанса.