我有一个在 websphere 服务器上运行的 java 企业应用程序。该应用程序只能通过不同的 webseal 服务器访问,这些服务器从 Intranet 的不同区域执行负载平衡和身份验证。
- 内网网址:
https://webseal.intra/junction-old/ApplicationROOT
- VPN-URL:
https://webseal.vpn/junction-old/ApplicationROOT
当然我也可以直接访问应用程序:https://server-old.intra/ApplicationROOT
.
该应用程序的即将发布的版本将托管在新服务器上。然后可以通过相同 webseal 服务器上的新联结访问该应用程序:
- 内网网址:
https://webseal.intra/junction-new/ApplicationROOT
- VPN-URL:
https://webseal.vpn/junction-new/ApplicationROOT
当然也会有一个新的直接网址:https://server-new.intra/ApplicationROOT
我现在想向旧应用程序添加一个信息页面,为用户提供新的 url。此页面应重定向到新版本。由于我们有不同的 webseal,我不会在重定向中对一个 url 进行硬编码。但是当我尝试读取请求 url 时,HttpServletRequest#getRequestURL()
我只获得了直接服务器地址。
是否可以获取 webseal 地址而不是服务器地址?
编辑:
我有某种解决方案,但我不太喜欢它。它更像是一种解决方法。目前我正在使用 javascript 来读取 webeal 的 url,然后执行重定向:
<script type="text/javascript" >
function redircetToNewUrl() {
var port = window.location.port;
if (port.length > 0) {
port = ':' + port;
} else {
port = '';
}
var url = 'https://' + window.location.hostname + port + '/junction-new/ApplicationROOT';
setTimeout(function f() {location.href = url;}, 30000);
}
</script>
<BODY onload="redircetToNewUrl()">
它工作正常,但是,正如我所说,我不太喜欢它。在 jsp 中使用 java 创建重定向 url 会更好。