Как абстрагировать URL-адреса Tomcat для развертывания? - PullRequest
0 голосов
/ 09 августа 2011

У нас есть веб-приложение, работающее локально, поэтому во многих jsp есть ссылки на что-то вроде http://localhost:8080/MyApp/index.html. Теперь мы хотим создать развертывание, но кажется неудобным просматривать много файлов на разных языках (html, jsp, xml и т. д.) и вручную измените локальный URL-адрес на фактический URL-адрес развертывания - скажем, 192.168.0.4:8080/MyApp/index.html.

Что люди здесь делают? В идеале я бы хотел использовать оба URL-адреса, чтобы я мог поддерживать локальную версию веб-приложения для запуска на моем компьютере, а также иметь развернутый компьютер, работающий в моей сети. Одна идея заключалась в том, чтобы использовать ветку / тег в SVN в качестве развертывания и изменять URL-адреса только в этой ветке. Это может работать для серверов dev + deploy, но есть ли более общий способ абстрагирования URL, используемых в веб-приложении?

Любые мысли приветствуются!

Ответы [ 3 ]

1 голос
/ 09 августа 2011

Не указывайте имя домена и путь к контексту.

Разрешайте их динамически.Эта информация может быть получена от HttpServletRequest.Например,

String base = request.getRequestURL().toString().replace(request.getRequestURI().substring(1), request.getContextPath());
// ...

Используйте его следующим образом

<a href="${base}/index.html">

Или используйте тег HTML <base>.См. Также Браузер не может получить доступ / найти относительные ресурсы, такие как CSS, изображения и ссылки, при вызове сервлета, который для некоторых подсказок пересылает в JSP .

0 голосов
/ 02 ноября 2011

Я использовал это решение:

${pageContext.request.contextPath}/some/path/index.html

BalusC ссылался на другой пост, в котором это предлагалось, но в ответе его не было, поэтому я добавляю свой.

0 голосов
/ 09 августа 2011

Как правило, нет необходимости указывать полный URL-адрес (включая протокол, хост, порт и даже корневой контекст) в веб-приложении, когда вы ссылаетесь на другой ресурс в том же приложении.Скорее, вы должны иметь возможность использовать относительные URL-адреса.Например, вместо ссылки "http://localhost:8080/MyApp/index.html", вы должны ссылаться на" index.html. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...