1樓
大 中
小 發表於 2006-11-19 10:37
《分享》Java的網絡功能與編程
[文章導讀]
本文通過大量簡明易懂的實例對Java網絡功能及其編程方法作了初步的介紹......
摘 要:本文初步介紹了如何使用Java編程語言從網絡上獲取圖像、聲音、HTML文檔及文本文件等的方法,還介紹了如何動態獲取網絡資源,同時提供了大量簡明易懂的實例。
Java語言是Internet上新興的編程語言,對Java的特性以及基本的編程方法已有很多文章作過介紹。但是,廣大Java愛好者更希望瞭解Java更深一步的編程方法,本文就Java的網絡功能及其編程方法作一初步的介紹。
為了方便初次接觸Java的讀者,本文先就Java編程的一些常識作簡單介紹。
一、Java編程簡介
1. 編程環境:
對於大部分讀者,以下的配置是較為經濟的一種選擇:
操作系統 Win95
編譯軟件 JDK1.01
瀏覽軟件 Netscape2.0以上(32位)
2. 編程方法:
先用文本編輯器如Edit、NotePad等輸入Java程序,以.java為文件名後綴存盤。
再執行命令行:「Javac 文件名」來編譯Java程序。編譯後生成後綴為.class的字節碼文件。
最後,如果是Java Applitcation,則執行命令行:「Java 字節碼文件名」來運行Java程序。
如果是Java Applet,則用文本編輯器輸入調用該Java Applet的HTML 文檔, 以 .htm 為文件名後綴存盤。 再執行命令行:
「appletviewer HTML文件名」來運行Java Applet。或用Netscape 打開該HTML文檔。
3. 關於本文中程序的說明
為了使程序能夠最簡潔地體現其所代表的編程方法,本文中的程序一般採用最簡單的形式,省略了線程等內容。因此,本文的程序不是「好」的程序,但最容易為初學者理解。
本文的所有程序經編譯後,生成的字節碼文件及對應的HTML文檔已上載到訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。, 均可正確運行。連入Internet的讀者可用瀏覽器打開該地址,查看運行效果。
連入Internet的讀者也可以在本地硬盤輸入並編譯本文的程序,用Netscape的File/Open File菜單打開HTML文檔,體會編程方法並查看運行效果。如果讀者想將Java Applet 放到自己的主機上或其他ftp服務器上,在Netscape中用http協議或ftp協議調用,出於安全性限制,應作如下修改:
如果讀者在某個WWW主機上有帳號,可以做個人Homepage(一般在用戶根目錄創建WWW或public_html目錄即可,Homepage的地址為訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。個人帳號),可將本文程序中對應的 訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。部分修改為讀者自己的Web結點地址,然後將編譯後生成的字節碼文件及對應的HTML文檔上載到自己的結點上。
如果讀者的計算機連入了Internet,也可以找一個可以上載的ftp結點,如:ftp://ftp.shnet.edu.cn/incoming,將本文程序中對應的訪客無法瀏覽此圖片或連結,請先 註冊 或 登入會員 。部分修改為ftp結點的地址,將編譯後生成的字節碼文件及對應的HTML文檔上載到該結點上,以查看運行效果。
如果讀者的計算機沒有聯網,也可以在單機上運行Web 服務軟件如Webstar for Win95,將本文程序中對應的http: //www.shu.edu.cn/~xyx/部分修改為「http://本地IP地址」的形式,來模擬網絡編程。
二、Java網絡功能及獲取網絡上資源的一般步驟
Java程序可以獲取網絡上結點的圖像、聲音、HTML文檔及文本等資源,並可以對獲得的資源進行處理。例如Java程序可以每隔一定時間讀取某結點提供的最新數據,並以圖表的形式顯示出來。
在編程處理上,一般先生成一個URL類型的對象,然後用Java中相應的方法(method)獲取該對像所代表的資源。下面分別介紹Java網絡功能的幾個例子,並由此介紹幾種不同的編程方法。
三、從網絡上獲取圖像
Java Applet可以直接從網絡上結點獲取圖像並顯示出來。 為了瞭解其編程方法和從本地顯示圖像的編程有何不同,我們先不考慮網絡功能,來看一個簡單的圖像顯示的例子:
●程序1引用:import java.applet.*;
import java.awt.*;
public class imag0 extends Applet{
Image image;
public void init() {
image=getImage(getDocumentBase(),"test.gif");
}
public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
} 這是一個最簡單的獲取並顯示圖像的例子, 在該例中, 先用getImage(getDocumentBase(),圖像文件名)從HTML文檔所在位置調用圖像test.gif,並由此生成一個Image類型的對象image, 然後用
drawImage(image, 0, 0,this)在屏幕上將圖像顯示出來。
如果想從網絡上其他結點獲取圖像,關鍵是創建對應於網絡上其他結點的Image類型的對象,一旦獲得Image類型的對象獲得了,便可以對其進行任何可能的圖像操作。
Java提供了如下方法可以創建對應於其他結點的圖像:getImage(new URL(字符串))
其使用格式可有兩種:引用:String url = "結點URL";
Image image;
try {
image = getImage(new URL(url));
}
catch(Exception e){
System.out.println("Can′t open the URL ");
} 或引用:URL imgur=null;
Image image;
try {
imgur=new URL("結點URL ");
}
catch (MalformedURLException e) {
System.out.println("Can′t open the URL ");
}
image=getImage(imgur); 前一種格式用「new URL(url)」生成 URL 對象, 並直接作為getImage的參數,後一種格式先用「new URL(url)」生成一個 URL對象,再傳給getImage。兩種格式本質上是一樣的。兩種格式中,生成URL對象的部分都包含在
try{
獲取URL對像
}
catch (MalformedURLException e) {
出錯提示
}
中。
例如要調用 htt p://www.shu.edu.cn/~xyx/img/shnet.jpg 結點的圖像,第一種格式完整的程序如下:
●程序2引用:import java.applet.*;
import java.net.*;
import java.awt.*;
public class imag extends Applet{
Image image;
public void init() {
String url = "";
try {
image = getImage(new URL(url));
} catch(Exception e){}
}
public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
} 第二種格式完整的程序如下:
●程序3引用:import java.applet.*;
import java.net.*;
import java.awt.*;
public class imag2 extends Applet{
Image image;
URL imgur=null;
public void init() {
try {
imgur=new URL("");
}
catch (MalformedURLException e) {
System.out.println("Can′t open the URL ");
}
image=getImage(imgur);
}
public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
} 將上述兩個程序分別以imag.java和imag2. java 存盤, 執行javac imag.java和javac imag2.java,將得到編譯後生成的imag.class和imag2.class,最後創建調用這兩個Java Applet的HTML文檔,如imag.class對應的HTML文檔可如下:引用:< html >
< head >
< title >Example < /title >
< /head >
< center >
< applet code=imag.class width=550 height=250 >
< /applet >
< /html > 將該HTML文檔存入test.html文件,用Netscape打開, 如果你的計算機連入了Internet,便可以看到Java Applet 所顯示的從網絡上獲得的圖像了。(對於本文中其他不同的Java Applet, 對應的HTML文檔只要修改其中相應的「code=imag.class」即可。)
|