詳解Java編程中同一資本定位符URL的相干應用。本站提示廣大學習愛好者:(詳解Java編程中同一資本定位符URL的相干應用)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解Java編程中同一資本定位符URL的相干應用正文
同一資本定位符URL(Uniform Resource Locator)是www客戶機拜訪Internet時用來標識資本的名字和地址。超文本鏈路由同一資本定位符URL保持。URL的格局是:
<METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE>
個中:Method是傳輸協定:HOSTNAME是文檔和辦事器地點的Internet主機名(域名體系中DNS中的點地址);PORT是辦事端標語(可省略);PATH是途徑名,FILE是文件名。例如:
http://www.weixueyuan.net/(http是協定名,www.weixueyuan.net是主機名)
http://www.weixueyuan.net/view/6079.html (www.weixueyuan.net是主機名,view/6079.html是文件途徑和文件名)
URL類
Java.net包有URL類,一個URL對象可以表現一個收集資本。法式應用URL對象能完成Internet尋址、收集資本的定位銜接、在客戶機與辦事器之間直接拜訪等。URL類的結構辦法是
URL(String s)
個中,s指出收集中的一個資本。
應用URL對象拜訪網上資本的辦法是:先創立URL對象,如以下代碼所示:
URL myURL; try { myURL = new URL(“http://www.weixueyuan.net:80/”); }catch(MalformedURLException e){ System.out.println(“有錯的URL:”+url+e); }
因創立URL對象能夠會發生MalformedURLException異常。所以,創立URL對象的代碼應湧現在try…catch語句塊中,以便能捕獲網址毛病異常。
URLConnection類
要吸收和發關信息還要用URLConnection類,法式取得一個URLConnection對象,相當於完成對指定URL的一個HTTP銜接。以下是表示取得URLConnection對象的代碼。
URL mu = new URL(“http://www.sun.com/”);//先要創立一個URL對象 URLConnection muC = mu.openConnection();//取得URLConnection對象
上述代碼解釋,先要創立一個URL對象,然後應用URL對象的openConnection()辦法,從體系取得一個URLConnection對象。法式有了URLConnection對象後,便可應用URLConnection類供給的以下辦法取得流對象和完成收集銜接:
getOutputStream():取得向長途主機發送信息的OutputStream流對象;
getInputStream():取得從長途主機獲得信息的InputStream流對象。有了收集銜接的輸出和輸入流,法式便可完成長途通訊;
connect():設置收集銜接。
信息的發送和吸收
發送和吸收信息要取得流對象,並由流對象創立輸出或輸入數據流對象。然後,便可以用流的辦法拜訪網上資本。
拜見上面例子法式中的辦法readByURL(),該辦法解釋已知網址讀取網頁內容的進程。辦法應用網址參數創立一個URL對象url,接著應用對象url的openConnect()辦法,取得URLConnection對象tc,用對象tc的connect()辦法樹立收集銜接,接著取得收集銜接的InputStreamReader類對象in,將對象in,轉化成為BufferedRead對象dis,改成緩沖式輸出。最初,用對象dis的readLine()辦法完成讀取收集文本數據。
好像當地數據流一樣,網上資本應用停止後,數據流也應實時封閉。例如,代碼
dis.close();
封閉先前代碼樹立的流dis。
【例】以數據流辦法讀取網頁內容的運用法式。法式運轉時,網址從文本框中讀取。
import java.net.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.javax.swing.*; public class Example10_2{ public static void main(String args[]){ new downNetFile(); } } class DownNetFile extends JFrame implements ActionListener{ JTextFileld infield = new JTextField(30); JTextarea showArea = new JTextArea(); JButton b = new JButton(“download”);JPanel p = new JPanel(); DownNetFile(){ super(“read network text file application”); Container con = this.getContentPane(); p.add(infield);p.add(b); JScrollPane jsp = new JScrollPane(showArea); b.addActionListener(this); con.add(p,”North”);con.add(jsp,”Center”); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,400);setVisible(true); } public void actionPerformed(ActionEvent e){ readByURL(infield.getText()); } public void readByURL(String urlName){ try{ URL url = new URL(urlName);//由網址創立URL對象 URLConnection tc = url.openConnectin();//取得URLConnection對象 tc.connect();//設置收集銜接 InptStreamReader in = new InputStreamReader(tc.getInputStream()); BufferedReader dis = new BufferedReader(in);//采取緩沖式輸出 String inline; while((inline = dis.readLine())!=null){ showArea.append(inline +”\n”); } dis.close();//網上資本應用停止後,數據流實時封閉 }catch(MalformedURLException e){ e.printStackTrace(); } catch(IOException e){e.printStacktrace();} /*拜訪網上資本能夠發生MalformedURLException和IOException異常*/ } }