如何获取 servlet 所在的主机名(带端口)

2022-09-01 00:27:52

我认为ServletContext可能会提供一种方法。ServletContext的getAttribute()方法是否提供了任何帮助,即是否有一个属性名称(可能是“host”,“port”)会有所帮助。

这样做的原因是我希望我的应用程序在部署的任何位置运行,并且有一次我必须允许用户单击指向文件服务器上某个位置的链接。因此,我需要通过主机和端口引用,并且不能使用内部引用。


答案 1
ServletRequest.getServerName(...)
ServletRequest.getServerPort(...)

答案 2

已传递给 doGet 或 doPost 方法的 ServletRequest 对象具有和提供此信息的方法。getServerNamegetServerPort

例如

public void doGet(ServletRequest request, ServletResponse response) {
    System.out.println("Host = " + request.getServerName());
    System.out.println("Port = " + request.getServerPort());
}