Вы должны всегда создавать URL через переписывание URL, не только для того, чтобы информация о сеансе могла быть добавлена в URL, если требуется, но также и для того, чтобы можно было добавить путь к контексту.Вы должны создать все URL-адреса как абсолютные пути из верхней части приложения, а затем позволить перезаписи URL-адреса обрабатывать добавление контекстного пути в начало, в зависимости от ситуации.1005 * в файл jsp, если у них не включены файлы cookie.Вы также можете использовать тег c: url для рендеринга URL-адреса в переменную, а затем использовать эту переменную несколько раз по всему документу.Просто добавьте атрибут var="x"
к тегу, а затем ${x}
отобразит URL в вашем документе.Если вы не используете jsp для рендеринга вывода, вам нужно найти подходящий механизм для вашего слоя представления, но у всех будет один.Если вы отображаете URL в коде Java, просто посмотрите на исходный код тега c: url, и вы увидите, как это делается.
Одна неловкость заключается в том, что файлы CSS (и jsфайлы) не обрабатываются, поэтому URL в файлах css и js должны быть относительными путями, иначе они будут ломаться всякий раз, когда вы изменяете контекстный путь.Большинство js уже использует относительные пути, так как сопровождающие библиотеки не знают, по какому пути вы собираетесь устанавливать их библиотеку.С другой стороны, фоновые изображения CSS часто указываются как абсолютные URL, поскольку один и тот же файл CSS может быть включен в файлы html на разных уровнях файловой иерархии.Я не знаю простого решения этой проблемы, кроме создания соответствующих символических ссылок, чтобы относительный URL-адрес всегда работал или же обслуживал проблемные CSS-файлы через JSP, чтобы URL-адреса можно было переписать соответствующим образом.Я уверен, что, возможно, есть фильтры или модули apache, которые вы можете запустить, которые будут выполнять замену URL, но тогда вам все равно придется вручную обновлять свой фильтр / модуль всякий раз, когда вы развертываете по новому пути контекста.