Svn 如何抽象Tomcat URL';部署需要什么?

Svn 如何抽象Tomcat URL';部署需要什么?,svn,url,web-applications,tomcat,deployment,Svn,Url,Web Applications,Tomcat,Deployment,我们有一个在本地运行的web应用程序,所以在许多jsp中我都引用了类似的内容。我们现在想要创建一个部署,但是查看许多不同语言(html、jsp、xml等)的文件并手动将localhost URL更改为实际的部署URL(例如192.168.0.4:8080/MyApp/index.html)似乎很不方便 人们在这里做什么?理想情况下,我希望可以同时使用两个URL,这样我就可以在我的机器上运行本地版本的webapp,并且在我的网络上运行一台已部署的机器。一个想法是使用SVN中的分支/标记作为部署,并

我们有一个在本地运行的web应用程序,所以在许多jsp中我都引用了类似的内容。我们现在想要创建一个部署,但是查看许多不同语言(html、jsp、xml等)的文件并手动将localhost URL更改为实际的部署URL(例如192.168.0.4:8080/MyApp/index.html)似乎很不方便

人们在这里做什么?理想情况下,我希望可以同时使用两个URL,这样我就可以在我的机器上运行本地版本的webapp,并且在我的网络上运行一台已部署的机器。一个想法是使用SVN中的分支/标记作为部署,并仅更改该分支中的URL。这可能适用于dev+deploy服务器,但有没有更通用的方法来抽象webapp中使用的URL


任何想法都将不胜感激

不要硬编码域名或上下文路径

动态地解决它们。此信息可从
HttpServletRequest
获得。例如

String base = request.getRequestURL().toString().replace(request.getRequestURI().substring(1), request.getContextPath());
// ...
像下面这样使用它


获取一些提示。

当您链接到同一应用程序中的其他资源时,通常不需要在web应用程序中引用完整的URL(包括协议、主机、端口,甚至上下文根)。相反,您应该能够使用相对URL。例如,而不是引用“http://localhost:8080/MyApp/index.html,您应该能够引用“index.html”。

我使用了以下解决方案:

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

BalusC链接到了另一篇建议这一点的帖子,但在他的回答中没有,所以我添加了我自己的帖子。

太好了,谢谢。对于需要相同URL的单独服务器应用程序(不是Tomcat)中的Java代码,您建议我做什么?环境变量?这不是你在具体问题中要问的。不是吗?对不起,我很高兴给你评分(I+1'd),但我想这正是我要问的?使用${pageContext.request.contextPath}抽象上下文。。。