不傳參數,直接通過ServletRequestAttributes獲取當前項目所在服務器的端口號和ip地址
public static String getUrl(){
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = requestAttributes.getRequest();
String localAddr = request.getLocalAddr();
int serverPort = request.getServerPort();
return "http://"+localAddr +":"+ serverPort;
}
通過 HttpServletRequest 傳參數獲取當前項目所在服務器的端口號和ip地址
//獲取本地服務器的ip地址和端口號
public static String getHttpUrl(HttpServletRequest request){
String localAddr = request.getLocalAddr();
int serverPort = request.getServerPort();
return "http://"+localAddr +":"+ serverPort;
}
Java獲取當前系統的ip地址,端口號從配置文件讀取
@Value("${server.port}")
private int serverPort;
public String getUrl() {
InetAddress address = null;
try {
address = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return "http://"+address.getHostAddress() +":"+this.serverPort;
}
tomcat服務器啟動到時候獲取服務器的ip和端口號,本方法在windows系統沒問題,再Linux系統就不行了
//獲取本地服務器的ip地址和端口號
public static String getUrl() {
String serverIp = "";
String serverPort = "";
try {
MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
serverIp = InetAddress.getLocalHost().getHostAddress();
serverPort = objectNames.iterator().next().getKeyProperty("port");
} catch (Exception e) {
e.printStackTrace();
}
String ipAndPost = "http://" + serverIp + serverPort;
return ipAndPost;
}
獲取服務器的ip+端口號
public static String PathAddress() {
String strResult = "";
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
StringBuffer strBuf = new StringBuffer();
strBuf.append(request.getScheme() + "://");
strBuf.append(request.getServerName() + ":");
strBuf.append(request.getServerPort() + "");
strBuf.append(request.getContextPath() + "/");
strResult = strBuf.toString();// +"FHADMINM/";//加入項目的名稱
return strResult;
}