日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Android URI和URL和URN的區(qū)別

 流浪的星星318 2017-03-01
  問(wèn)題:

問(wèn)題1.定義的時(shí)候是該用imgUrl還是imgUri呢?

問(wèn)題2.String HttpServletRequest.getRequestURI();和StringBuffer HttpServletRequest.getRequestURL();返回的內(nèi)容有何不同呢?

分析:

Java類(lèi)庫(kù)里有兩個(gè)對(duì)應(yīng)的類(lèi)java.NET.URI和java.Net.URL

URI是uniform resource identifier,統(tǒng)一資源標(biāo)識(shí)符,用來(lái)唯一的標(biāo)識(shí)一個(gè)資源。

URL是uniform resource locator,統(tǒng)一資源定位器,它是一種具體的URI,即URL可以用來(lái)標(biāo)識(shí)一個(gè)資源,而且還指明了如何locate這個(gè)資源。

URN是uniform resource name,統(tǒng)一資源命名,是通過(guò)名字來(lái)標(biāo)識(shí)資源,比如mailto:java-net@java.sun.com。

總結(jié):也就是說(shuō),URI是以一種抽象的,高層次概念定義統(tǒng)一資源標(biāo)識(shí),而URL和URN則是具體的資源標(biāo)識(shí)的方式,URL和URN都是一種URI。

NOTE:在Java的URI中,一個(gè)URI實(shí)例可以代表絕對(duì)的,也可以是相對(duì)的,只要它符合URI的語(yǔ)法規(guī)則。而URL類(lèi)則不僅符合語(yǔ)義,還包含了定位該資源的信息,因此它不能是相對(duì)的,schema必須被指定。

回答:

回答問(wèn)題1:用imgUri是肯定沒(méi)問(wèn)題的,而用imgUrl則要視實(shí)際情況而定(如果是絕對(duì)路徑,能夠定位的,那么用imgUrl是沒(méi)問(wèn)題的,而如果是相對(duì)路徑,那還是不要用ImgUrl的好)。

回答問(wèn)題2:如果大家看懂了也就明白getRequestURI() 和 getRequestURL()獲取的內(nèi)容的區(qū)別呢。getRequestURI()獲取的是相對(duì)的路徑,getRequestURL()獲取的是完整的路徑。


java.net.URL類(lèi)不提供對(duì)標(biāo)準(zhǔn)RFC2396規(guī)定的特殊字符的轉(zhuǎn)義,因此需要調(diào)用者自己對(duì)URL各組成部分進(jìn)行encode。java.net.URI則會(huì)提供轉(zhuǎn)義功能可以使用URI.toURL()和URL.toURI()方法來(lái)對(duì)兩個(gè)類(lèi)型的對(duì)象互相轉(zhuǎn)換。Html的url可以使用java.net.URLEncoder和java.net.URLDecoder來(lái)完成

參考資料(文檔)
http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URI.html
http://en./wiki/Uniform_Resource_Identifier
http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequest.html


URLEncoder.encode和URLDecoder.decode深入分析:

URLEncoder和URLDecoder的關(guān)系,就像是加密和解密的關(guān)系。URLEncoder是轉(zhuǎn)碼,URLDecoder是解碼。中文在一些情況下是亂碼,需要轉(zhuǎn)碼。此時(shí)需要使用URLEncoder轉(zhuǎn)碼,一般是轉(zhuǎn)成%AB%FG%UF(這個(gè)只是例子)這樣的形式。而讀取的時(shí)候需要從%AB%FG%UF這種形式解碼成正常的中文,此時(shí)使用URLDecoder。


Uri.decode和Uri.encode深入分析:

參考資料:http://blog.csdn.net/caowenbin/article/details/8461598
encode:將string編碼,會(huì)將“:”“/”"?""#"等特殊符號(hào)按照特定規(guī)則編碼。這樣做的可能是系統(tǒng)需要,比如下面要說(shuō)的數(shù)據(jù)分段
decode:將數(shù)據(jù)解碼,和encode是對(duì)應(yīng)的


URL Decoder/Encoder轉(zhuǎn)換工具:http:///eric/tools/dencoder/



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多