📜  获取 URL 组件的Java程序(1)

📅  最后修改于: 2023-12-03 15:27:48.454000             🧑  作者: Mango

获取 URL 组件的 Java 程序

在我们编写 Java Web 应用程序时,有时候需要获取指定 URL 的某些组件,比如获取参数、主机名等。下面是一些获取 URL 组件的 Java 程序示例。

获取 URL 参数

获取 URL 参数通常是我们最常用的场景之一,例如从 HTTP GET 请求中获取参数。

// 取得指定 URL 中的参数
public static Map<String, String> getQueryParams(String url) {
    try { 
        URL u = new URL(url); 
        Map<String, String> queryPairs = new LinkedHashMap<String, String>(); 
        String[] pairs = u.getQuery().split("&"); 
        for (String pair : pairs) { 
            int idx = pair.indexOf("="); 
            queryPairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); 
        } 
        return queryPairs;
    } catch (MalformedURLException e) { 
        return null;
    } 
}

示例调用:

String url = "https://example.com/search?q=java+example&oq=java+example&aqs=chrome.0.69i59j0l2j46j0l2j69i60l2.1370j0j7&sourceid=chrome&ie=UTF-8";
Map<String, String> params = getQueryParams(url);
System.out.println(params.get("q")); // 输出:java example
获取 URL 主机名

获取 URL 主机名通常也是我们比较常用的场景之一,用于确定请求是向哪个主机发出的。

// 获取指定 URL 的主机名
public static String getHostName(String url) {
    try {
        URI uri = new URI(url);
        return uri.getHost();
    } catch (URISyntaxException e) {
        return null;
    }
}

示例调用:

String url = "https://example.com/search?q=java+example&oq=java+example&aqs=chrome.0.69i59j0l2j46j0l2j69i60l2.1370j0j7&sourceid=chrome&ie=UTF-8";
String hostName = getHostName(url);
System.out.println(hostName); // 输出:example.com
获取 URL 文件路径

获取 URL 文件路径通常也是我们比较常用的场景之一,用于确定请求获取的是哪个文件。

// 获取指定 URL 的文件路径
public static String getFilePath(String url) {
    try {
        URI uri = new URI(url);
        return uri.getPath();
    } catch (URISyntaxException e) {
        return null;
    }
}

示例调用:

String url = "https://example.com/path/to/file.html";
String filePath = getFilePath(url);
System.out.println(filePath); // 输出:/path/to/file.html
获取完整的 URL

获取完整的 URL 可能比较简单,但也比较常用。示例代码如下:

// 获取指定 URL 的完整 URL
public static String getFullUrl(String url) {
    try {
        URI uri = new URI(url);
        return uri.toString();
    } catch (URISyntaxException e) {
        return null;
    }
}

示例调用:

String url = "https://example.com";
String fullUrl = getFullUrl(url);
System.out.println(fullUrl); // 输出:https://example.com
参考