java如何获取url
获取URL的方法
在Java中获取URL可以通过多种方式实现,具体取决于应用场景和需求。以下是几种常见的方法:
使用java.net.URL类
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception {
URL url = new URL("https://www.example.com");
System.out.println("Protocol: " + url.getProtocol());
System.out.println("Host: " + url.getHost());
System.out.println("Path: " + url.getPath());
}
}
从HTTP请求中获取URL
在Servlet或Spring Boot等Web框架中,可以直接从请求对象中获取URL:
// Servlet方式
import javax.servlet.http.HttpServletRequest;
String url = request.getRequestURL().toString();
String queryString = request.getQueryString();
if (queryString != null) {
url += "?" + queryString;
}
// Spring Boot方式
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
public class UrlController {
@GetMapping("/getUrl")
public String getUrl(HttpServletRequest request) {
return request.getRequestURL().toString();
}
}
使用URI类处理URL
import java.net.URI;
import java.net.URISyntaxException;
public class Main {
public static void main(String[] args) throws URISyntaxException {
URI uri = new URI("https://www.example.com/path?query=param");
System.out.println("Scheme: " + uri.getScheme());
System.out.println("Host: " + uri.getHost());
System.out.println("Path: " + uri.getPath());
System.out.println("Query: " + uri.getQuery());
}
}
从环境变量或系统属性获取URL
String url = System.getProperty("app.url");
// 或者从环境变量
String envUrl = System.getenv("APP_URL");
使用第三方库处理URL
例如使用Apache HttpComponents或OkHttp等库:
// 使用OkHttp
import okhttp3.HttpUrl;
HttpUrl httpUrl = HttpUrl.parse("https://www.example.com")
.newBuilder()
.addQueryParameter("key", "value")
.build();
以上方法涵盖了从基础URL对象创建到Web请求中URL获取的多种场景,可以根据具体需求选择合适的方式。







