${pageContext.request.contextPath} отлично работает локально, но показывает пустую трансляцию

В настоящее время я использую

${pageContext.servletContext.contextPath}

или же

${pageContext.request.contextPath}

распечатать контекстный путь на странице JSP. Он работает нормально для локального сервера, но когда я начинаю работать, он печатает пустой, а не фактический путь.

Я могу напечатать номер порта запроса, а также метод запроса, но не путь к контексту.

Как это вызвано и как я могу решить это?

1 ответ

Это произойдет, когда он будет развернут в корне. Например, как ROOT.war в Tomcat, или с контекстным путем /, ${pageContext.request.contextPath} затем преобразуется в пустую строку.

Если вы действительно видите "контекстный путь" в URL адресной строки браузера, то это может произойти, когда веб-приложение публикуется на (плохом) стороннем хосте, который, в свою очередь, фактически развертывает веб-приложение от имени пользователя root и добавляет этот "контекстный путь" на некоторый прокси-сервер на этом хосте. Вы можете проверить / подтвердить это, проверив Server запись в заголовках ответа. Лучше всего обратиться к стороннему хосту за подсказками о том, как получить информацию об этом "пути контекста" от прокси-сервера (возможно, он присутствует в заголовке запроса), или искать другой сторонний хост, который является менее дешевым.

Другие вопросы по тегам