java getservername_Tomcat:getHeader(“主机”)与getServerName()
我有一個從多個域提供服務的Tomcat應用程序。以前的開發人員構建了一種返回應用程序URL的方法(請參見下文)。在該方法中,他們請求服務器名稱(request.getServerName()),該
名稱 將從 httpd.conf 文件中適當地返回 ServerName 。
但是,我不想要那樣。我想要的是瀏覽器向其發送請求的主機名,即瀏覽器從哪個域訪問應用程序。
我嘗試了getHeader("Host"),但是仍然返回在 httpd.conf*文件中設置的 ServerName 。*
代替request.getServerName(),我應該使用什么來獲取瀏覽器向其發送請求的服務器名稱?
例如:
httpd.conf中的 ServerName : www.myserver.net
用戶訪問 www.yourserver.net上的 Tomcat應用程序 __
我需要返回 www.yourserver.net而 不是 www.myserver.net
。該request.getServerName()電話似乎只返回 www.myserver.net
/**
* Convenience method to get the application's URL based on request
* variables.
*
* @param request the current request
* @return URL to application
*/
public static String getAppURL(HttpServletRequest request) {
StringBuffer url = new StringBuffer();
int port = request.getServerPort();
if (port < 0) {
port = 80; // Work around java.net.URL bug
}
String scheme = request.getScheme();
url.append(scheme);
url.append("://");
url.append(request.getServerName());
if (("http".equals(scheme) && (port != 80)) || ("https".equals(scheme) && (port != 443))) {
url.append(':');
url.append(port);
}
url.append(request.getContextPath());
return url.toString();
}
提前致謝!
總結
以上是生活随笔為你收集整理的java getservername_Tomcat:getHeader(“主机”)与getServerName()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己开一家早教要多少钱?
- 下一篇: 现在普通鸡蛋算下来大概多少钱一个?