jsp学习代理背后的外部URL

时间:2012-09-02 21:21:24

标签: jsp

考虑一个JSP页面,其中包含以下内容,位于反向代理之后。

前者可以通过使用mod_proxy_html重写link来解决,但它不会在脚本元素中进行探索。有没有更好的解决方案,而不是通过-D传递正确的URL并覆盖pageContext.request.contextPath?

<link rel="stylesheet" 
    href="${pageContext.request.contextPath}/services/legendcss/legend.css?version=2"
    type="text/css"/>


 <script>
    var bt_wd40_appurl = "${pageContext.request.contextPath}/services";
</script>

澄清一下,或许:

考虑在http://internalhost.com可以访问的Tomcat副本,以及http://externalhost.com在公共互联网上可以访问的Apache2副本。

Apache实例的配置包括一个从http://externalhost.com/blue/green/映射到http://internalhost.com/yellow的反向代理。

现在,坐在'yellow'的东西是一个webapp,由带有javascript的网页组成,需要在黄色webapp内与Web服务对话。我们不想在这些事情中加入路径名。上面的代码将向浏览器提供“内部主机”URL,这些URL无法与他们通信。我需要它来提供'externalhost'URL。

我不希望JSP或HTML中的代码对其部署的URL做出假设,更不用说存在代理了。

1 个答案:

答案 0 :(得分:0)

经过考虑,Web服务的相对URL似乎是最不好的选择。因此,EL表达式完全消失,并且URL在代理的任一侧也能正常工作。这需要JSP页面和Web服务之间的持续路径关系,但这是一个很小的代价。