Java對URL和URI的區分

來源:互聯網
上載者:User
Java代碼 {
dp.sh.Toolbar.CopyToClipboard(this);return false;
}" href="http://dingbuoyi.javaeye.com/blog/836621#">
  1. String urlString = "http://192.168.21.77:8080/swp/mainPage?aa=11&bb%3D22";   
  2.     URI uri = URI.create(urlString);   
  3.     System.out.println(uri.getPath());   
  4.     System.out.println(uri.getQuery());//解碼   
  5.     URL url2 = new URL(urlString);   
  6.     System.out.println(url2.getQuery());//不解碼  
String urlString = "http://192.168.21.77:8080/swp/mainPage?aa=11&bb%3D22";URI uri = URI.create(urlString);System.out.println(uri.getPath());System.out.println(uri.getQuery());//解碼URL url2 = new URL(urlString);System.out.println(url2.getQuery());//不解碼

URI可以解碼

引用注意,URI 類在某些特定情況下對其組成欄位執行轉義。建議使用 URI 管理 URL 的編碼和解碼,並使用 toURI() 和 URI.toURL() 實現這兩個類之間的轉換。

也可以使用 URLEncoder 和 URLDecoder 類,但是只適用於 HTML 形式的編碼,它與 RFC2396 中定義的編碼機制不同。

引用URI是個純粹的句法結構,用於指定標識Web資源的字串的各個不同部分。URL是URI的一個特例,它包含了定位Web資源的足夠資訊。其他URI,比如:
mailto:cay@horstman.com
則不屬於定位器,因為根據該標識符無法定位任何資源。像這樣的URI我們稱之為URN(統一資源名稱)。
在Java類庫中,URI類不包含任何訪問資源的方法,它唯一的作用就是解析。相反的是,URL類可以開啟一個到達資源的流。因此URL類只能作用於那些Java類庫知道該如何處理的模式,例如:http:,https:,ftp:,本地檔案系統(file:),和Jar檔案(jar:)。
URI類的作用之一是解析標識符並將它們分解成各個不同的組成部分。你可以用以下方法讀取它們:
getSchema
getHost
getPort
getPath
getQuery

URI類的另一個作用是處理絕對標識符和相對標識符。如果存在一個如下的絕對URI:
http://docs.mycompany.com/api/java/net/serversocket.html
和一個如下的相對URI:
../../java/net/socket.html#Socket()
那麼你可以將它們合并成一個絕對URI:
http://docs.mycompany.com/api/java/net/socket.html#Socket()
這個過程被稱為相對URL的轉換。
與此相反的過程成為相對化。例如:假設你有一個基本URI:
http://docs.mycompany/api
和另一個URI:
http://docs.mycompany/api/java/lang/String.html
那麼相對化後的URI就是:
java/lang/String.html

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.