詳解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異常*/
}
}