從JDK1.4開始,java.net包對統(tǒng)一資源定位符(uniform resource locator URL)和統(tǒng)一資源標識符(uniform resource identifier URI)作了非常有用的區(qū)分。 URI是個純粹的句法結(jié)構(gòu),用于指定標識Web資源的字符串的各個不同部分。URL是URI的一個特例,它包含了定位Web資源的足夠信息。其他URI,比如: mailto:cay@horstman.com 則不屬于定位符,因為根據(jù)該標識符無法定位任何資源。像這樣的URI我們稱之為URN(統(tǒng)一資源名稱)。 在Java類庫中,URI類不包含任何訪問資源的方法,它唯一的作用就是解析。相反的是,URL類可以打開一個到達資源的流。因此URL類只能作用于那些Java類庫知道該如何處理的模式,例如:http:,https:,ftp:,本地文件系統(tǒng)(file:),和Jar文件(jar:)。 URI類的作用之一是解析標識符并將它們分解成各個不同的組成部分。你可以用以下方法讀取它們: getSchema getHost getPort getPath getQuery URI類的另一個作用是處理絕對標識符和相對標識符。如果存在一個如下的絕對URI: http://docs./api/java/net/serversocket.html 和一個如下的相對URI: ../../java/net/socket.html#Socket() 那么你可以將它們合并成一個絕對URI: http://docs./api/java/net/socket.html#Socket() 這個過程被稱為相對URL的轉(zhuǎn)換。 與此相反的過程成為相對化。例如:假設(shè)你有一個基本URI: 和另一個URI: http://docs.mycompany/api/java/lang/String.html 那么相對化后的URI就是: java/lang/String.html |
|
來自: 碧海山城 > 《網(wǎng)絡》