java - 使用 JSTL 获取 url 中的域名?

标签 java jsp url jstl el

我正在尝试使用 JSTL 从 url 获取域名。我知道的 2 种方法返回了错误的信息。我需要 URL 中的确切内容。

当我这样做时:

${pageContext.request.remoteHost}

我得到我的服务器的 IP。

当我这样做时:

${pageContext.request.serverName}

我通常会得到正确的域名,但在亚马逊的服务器上,它返回的是“server1”而不是正确的域名,这可能是因为它处理多个域的方式。

有谁知道如何在 URL 中获取当前域名?

我可能需要获取 URL 然后解析它。我该怎么做?

最佳答案

你应该使用 ServletRequest#getLocalName()反而。它返回服务器的真实主机名。 ServletRequest#getServerName()确实返回在 Host header 中设置的值。

${pageContext.request.localName}

就是这样。其他答案中建议的解决方案很笨拙。


顺便说一句,ServletRequest#getRemoteHost()不返回服务器的主机名,而是客户端的主机名(或主机名无法立即解析时的 IP)。当您在同一台机器上运行网络服务器和网络浏览器时,它显然与服务器的相同。如果您对服务器的 IP 感兴趣,请使用 ServletRequest#getLocalAddr() .术语“本地”和“远程”必须从服务器的角度来解释,而不是从客户端的角度。毕竟是所有 Java 代码运行的服务器。

关于java - 使用 JSTL 获取 url 中的域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3806045/

相关文章:

java - 用户输入方式

java - 递归级别和循环计数

jsp - 单线程模型

url - 在 golang 中如何拆分 URL 并从解码组件编码回 URL。有什么包裹吗?

java - 如何访问 DrawerLayout 内的 TextView

Java递归;我怎样才能简化我所拥有的?

javascript - 你可以使用<c :otherwise> with <c:if> or only with <c:when>?

javascript - 如何限制每个页面中的HTML表格记录

php - 将字符串修改为 seo url 但保留斯堪的纳维亚字母

html - 如何重定向页面但不更改浏览器的网址?