中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java URL知識點有哪些

發布時間:2021-12-27 16:39:19 來源:億速云 閱讀:155 作者:iii 欄目:大數據

本篇內容主要講解“java URL知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java URL知識點有哪些”吧!

01、什么是 URL

為了搞清楚什么是 URL,需要引入另外兩個概念 URI 和 URN。

什么鬼,URL 都沒搞清楚,又來兩個搞不清楚的?別擔心,我能像變了魔法一樣讓大家把三個都搞清楚。

  • URI = Universal Resource Identifier,中文釋義為統一資源標志符

  • URL = Universal Resource Locator,中文釋義為統一資源定位符

  • URN = Universal Resource Name,中文釋義為統一資源名稱

它們之間的關系如下圖所示:

java URL知識點有哪些  

這圖啥意思啊,怎么辦呢?張小敬有問題就去問葛佬,咱不會就去問“維基百科”啊。

URI 可以分為 URL 和 URN,或者是 URL 和 URN 的結合體(同時具備 Locator 和 Name)。URN 就好像一個人的名字,URL 就像一個人的地址。換句話說:URN 確定了身份,URL 提供了找到它的方式。

概念清晰了吧?URI 是一個純粹的句法結構,用于指定標識 Web 資源的字符串的各個不同部分。URL 是 URI 的一個特例,包含了定位 Web 資源的足夠多的信息。URI 是統一資源標識符,而 URL 是統一資源定位符。URL 是 URI 的一種,比如:http://www.itmind.net/。但不是所有的 URI 都是 URL,因為 URI 可能包括一個子集,即統一資源名稱 (URN,命名了資源但不指定如何定位資源),比如說:mailto:qing_gee@163.com。

吧啦吧啦說這么多挺累的,來一發實例吧,用于獲取 URL 的主機名和端口號。

URL url = new URL("http://www.itmind.net/category/payment-selection/zhishixingqiu-jingxuan/");

System.out.println("host: " + url.getHost());
System.out.println("port: " + url.getPort());
System.out.println("uri_path: " + url.getPath());

// 輸出
// host: www.itmind.net
// port: -1
// uri_path: /category/payment-selection/zhishixingqiu-jingxuan/
 

1)創建 java.net.URL 對象的方法非常簡單,只需要一行代碼。

URL url = new URL(URL地址);
 

URL 對象是不可變的,因為 URL 類是 final 類型的,這樣的好處就是保證它是"線程安全"的。

2)有了 java.net.URL 對象后,就可以獲取 URL 相關的主機名、端口、路徑等等。

url.getHost()
url.getPort()
url.getPath()
   

02、什么是 URLConnection

URLConnection 是一個抽象類,代表應用程序和 URL 之間的通信鏈接。它的實例可用于讀取和寫入此 URL 引用的資源。該類提供了比 Socket 類更易于使用、更高級的網絡連接抽象。

怎么獲取 URLConnection 對象呢?通過 URL 對象的 openConnection() 方法,示例如下。

URL url = new URL("http://www.itmind.net");
URLConnection connection = url.openConnection();
 

如果 URL 協議為  HTTP 的話,返回的連接為 URLConnection 的子類 HttpURLConnection。

有了 URLConnection 對象后,可以通過 getInputStream() 返回一個 InputStream,由此讀取 URL 所引用的資源數據(如果讀取 ASCII 文本則為 ASCII;如果讀取 HTML 文件則為原始 HTML,如果讀取圖像文件則為二進制圖片數據等)。

我們來嘗試讀取一下小白學堂首頁的內容,代碼示例如下。

URL url = new URL("http://www.itmind.net");
URLConnection connection = url.openConnection();

try (InputStream in = connection.getInputStream();) {

ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = in.read(buffer)) != -1) {
output.write(buffer, 0, len);
}

System.out.println(new String(output.toByteArray()));

} catch (IOException e) {
e.printStackTrace();
}
 

可以使用 try-with-resource 獲取 InputStream,該類實現了 AutoCloseable 接口,可以在內容讀取完畢后自動關閉輸入流。

打印的內容如下圖所示(部分):

java URL知識點有哪些  

如果你想讀取某個 URL 的內容,上述方法是一個不錯的方案,趕快去試試吧!

 

03、URL 和 URLConnection 的不同

URL 和 URLConnection 最大的不同在于:

  • URLConnection 提供了對 HTTP 頭部的訪問;

  • URLConnection 可以配置發送給某個 URL 的請求參數;

  • URLConnection 不僅可以讀取 URL 定位的資源,還可以向其寫入數據。

獲取 HTTP 頭部的方法有以下一些:

  • getContentType,返回 Content-type 頭字段的值,即數據的 MIME 內容類型。若類型不可用,則返回 null。如果內容類型是文本,則 Content-type 首部可能會包含一個標識內容編碼方式的字符集,例如:Content-type:text/html; charset=UTF-8

  • getContentLength(),返回 Content-length 頭字段的值,即內容的字節數。

  • getContentEncoding(),返回 Content-encoding 頭字段的值,即內容的編碼方式(不同于字符編碼方式),例如:x-gzip。

  • getDate(),返回 date 頭字段的值,即請求的發送時間。

  • getExpiration(),返回 expires(過期時間) 頭字段的值。如果返回 0,表示不過期,永遠緩存。

  • getLastModified(),返回 last-modified(上次修改日期) 頭字段的值。

代碼示例如下。

URL url = new URL("http://www.itmind.net");
URLConnection connection = url.openConnection();
System.out.println(connection.getContentType());
System.out.println(connection.getContentLength());
System.out.println(connection.getContentEncoding());
System.out.println(connection.getDate());
System.out.println(connection.getExpiration());
System.out.println(connection.getLastModified());

// 輸出
// text/html; charset=UTF-8
// -1
// null
// 1566886980000
// 0
// 0

到此,相信大家對“java URL知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双辽市| 平湖市| 长阳| 平原县| 明光市| 武宁县| 商河县| 图木舒克市| 安陆市| 苗栗市| 吴江市| 马关县| 固原市| 凤城市| 沂南县| 孝感市| 合江县| 万源市| 丹寨县| 阳山县| 黄冈市| 乐平市| 怀来县| 花莲县| 南郑县| 荣昌县| 九江县| 峨山| 玉溪市| 吉安市| 保定市| 若羌县| 五华县| 九江市| 白朗县| 安庆市| 昌江| 明光市| 隆德县| 栾城县| 秭归县|