Java URI和URL

1. URI统一资源标识符

URI(Uniform Resource Identify),统一资源标识符,是一个用于标识某一互联网资源名称的字符串。

URI的结构是 [scheme:]scheme-specific-part[#fragment][scheme:][//authority][path][?query][#fragment]

String[] address = new String[]{
        "http://user:pwd@www.abc.com:8080/a/b/c?q=java#fragment",
        "tel:+123-4567-8910#frag"
};

for (String addr : address) {
    URI uri = new URI(addr);

    System.out.println("URL:        " + uri);
    System.out.println("Scheme:     " + uri.getScheme());
    if (uri.isOpaque()) {
        System.out.println("Specific:   " + uri.getSchemeSpecificPart());
    } else {
        System.out.println("UserInfo:   " + uri.getUserInfo());
        System.out.println("Authority:  " + uri.getAuthority());
        System.out.println("Host:       " + uri.getHost());
        System.out.println("Port:       " + uri.getPort());
        System.out.println("Path:       " + uri.getPath());
        System.out.println("Query:      " + uri.getQuery());
    }
    System.out.println("Fragment:   " + uri.getFragment());
    System.out.println();
}

opaque表示URI是不是透明的,一个不透明的URI一般是不分层次的。输出 在这里插入图片描述

2. URL统一资源定位符

URL(Uniform Resource Location),统一资源定位符,可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。URL主要由Protocol://Authority/File#ref组成。

String[] address = new String[]{
        "http://user:pwd@www.abc.com:80/a/b/c?q=java#fragment",
        "ftp://www.abc.com:8080/"
};

for (String addr : address) {
    URL url = new URL(addr);

    System.out.println("URL:        " + url);
    System.out.println("Protocol:   " + url.getProtocol());
    System.out.println("UserInfo:   " + url.getUserInfo());
    System.out.println("Authority:  " + url.getAuthority());
    System.out.println("Host:       " + url.getHost());
    System.out.println("Port:       " + url.getPort());
    System.out.println("DefaultPort:" + url.getDefaultPort());
    System.out.println("Path:       " + url.getPath());
    System.out.println("File:       " + url.getFile());
    System.out.println("Query:      " + url.getQuery());
    System.out.println("Ref:        " + url.getRef());
    System.out.println();
}

其中Authority包含UserInfoHostPortFilePathQuery组成。输出
在这里插入图片描述

3. URLEncoder和URLDecoder

将非文本内容转换成"%xx"的形式。

URLEncoder.encode("value1=123&&valu2=pwd","UTF-8"); // value1%3D123%26valu2%3Dpwd
URLDecoder.decode("value1%3D123%26valu2%3Dpwd", "UTF-8"); // value1=123&valu2=pwd
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值