java的URI和URL到底是什么


在我們做開發時,經常有URI和URL弄混的問題,如果當時直接看URI和URL的源碼就不可能弄混。首先我總結一下URI和URL的關系:他們的關系是:URL是一種特殊的URI,是URI包括URL,

 

下面用公式的形式說明URI到底是什么?

 

URI=[scheme:]<scheme-specific-part>[#fragment]   這正好可以用URI類中的getScheme   getSchemeSpecificPart 以及getFragment得到.

在scheme為null時,這個URI被稱為相對的URI。 在scheme不為空時URI稱為絕對的URI

 

而<scheme-specfic-part>=[//authority]<path>[:query]

在path為空時稱為不透明的URI,在不為空時稱為透明的URI

 

authority 又可以分為:[userinfo@]<host>[:port]

 

從這個公式我們可以看到URI確實包括URL。

下面寫一個示例代碼

package com.timo;

import java.net.URI;

public class URITest {
    public static void main(String[] args) throws Exception{
        //創建一個uri,根據[scheme:]<scheme-specific-part>[#fragment]
        URI uri = new URI("http", "//qinlin@localhost:8080/oi/oi?user='aieg'", "iewio");
        System.out.println(uri);
        System.out.println(uri.getPath());
    }
}

調試代碼的圖片如下,從下圖可以看到上述公式的各個值是什么。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM