Java論文網(wǎng)絡(luò)編程論文:基于Java的系統(tǒng)網(wǎng)絡(luò)編程研究_第1頁
Java論文網(wǎng)絡(luò)編程論文:基于Java的系統(tǒng)網(wǎng)絡(luò)編程研究_第2頁
Java論文網(wǎng)絡(luò)編程論文:基于Java的系統(tǒng)網(wǎng)絡(luò)編程研究_第3頁
Java論文網(wǎng)絡(luò)編程論文:基于Java的系統(tǒng)網(wǎng)絡(luò)編程研究_第4頁
Java論文網(wǎng)絡(luò)編程論文:基于Java的系統(tǒng)網(wǎng)絡(luò)編程研究_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、java論文網(wǎng)絡(luò)編程論文:基于java的系統(tǒng)網(wǎng)絡(luò)編程研究摘要:java語言在網(wǎng)絡(luò)編程應(yīng)用上,優(yōu)勢是顯而易見的。網(wǎng)絡(luò)編程不僅需要有一個(gè)高效、穩(wěn)定通信機(jī)制為基礎(chǔ),更需要一個(gè)安全的運(yùn)行環(huán)境,同時(shí)完備的程序還應(yīng)考慮資源的有效管理,該文從這幾個(gè)方面,基于java語言,對網(wǎng)絡(luò)編程展開了探討。關(guān)鍵詞:java;網(wǎng)絡(luò)編程;研究java-based research network programmingdeng bo-tao(huizhou business school, huizhou 516003, china)abstract: java programming language applicatio

2、ns on the network, the advantage is obvious. network programming not only need to have an efficient and stable communication mechanism, the more need for a secure operating environment, and comprehensive procedures should also be considered effective management of resources, several aspects of this

3、paper, based on java language programming on the network launched discussion.key word: java; network programming; research目前較為流行的網(wǎng)絡(luò)編程模型,是client/server(客戶機(jī)/服務(wù)器)結(jié)構(gòu),即通信雙方是客戶機(jī)和服務(wù)器的關(guān)系。客戶需要服務(wù)時(shí),向服務(wù)器發(fā)送請求。服務(wù)器上的網(wǎng)絡(luò)監(jiān)聽端口接到客戶請求后,就會(huì)啟動(dòng)一個(gè)專為該客戶服務(wù)的進(jìn)程來響應(yīng)請求,同時(shí)繼續(xù)監(jiān)聽服務(wù)端口,以保證后來的客戶也能及時(shí)得到服務(wù)。它們利用網(wǎng)絡(luò)協(xié)議來通信。tcp/ip(傳輸控制協(xié)議/網(wǎng)際協(xié)議)是當(dāng)今應(yīng)

4、用最為廣泛的網(wǎng)絡(luò)協(xié)議,它實(shí)現(xiàn)了異構(gòu)網(wǎng)絡(luò)或異種機(jī)之間互聯(lián)通信。狹義上講,網(wǎng)絡(luò)編程的目的就是通過tcp/ip協(xié)議,實(shí)現(xiàn)和服務(wù)器或客戶端的通信。而java以其語法簡單、性能優(yōu)越,并且支持多平臺(tái)的特性,成為了網(wǎng)絡(luò)編程的首選工具。1 java網(wǎng)絡(luò)編程的優(yōu)勢1)強(qiáng)大的類庫java語言支持internet應(yīng)用的開發(fā),在基本的java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口。同時(shí),它還提供了用于網(wǎng)絡(luò)應(yīng)用編程的強(qiáng)大類庫,包括url、urlconnection、socket、serversocket等。在編輯程序時(shí)候,要實(shí)現(xiàn)通信,程序員只創(chuàng)建相應(yīng)類的對象即可,或者編輯新類繼承該類,省去了其他語言對co

5、m控件調(diào)用的麻煩。2)有效的安全機(jī)制在網(wǎng)絡(luò)環(huán)境中,java還提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了java語言具有的許多安全特性以外,java對通過網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制。classloader類會(huì)分配給新下載的類不同的名字空間,以防其替代本地的同名類,并進(jìn)行字節(jié)代碼檢查。而securitymanager類給java提供了安全管理機(jī)制,在應(yīng)用時(shí)設(shè)置安全哨兵。3)高效的多線程處理在java語言中,線程是一種特殊的對象,它必須由thread類或其子類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為thread的構(gòu)造子將一個(gè)runnable接口對象,包裝成一個(gè)線程;其二,由threa

6、d類派生出的子類重寫run方法,由該子類創(chuàng)建的對象就是一個(gè)線程。由于thread類已經(jīng)實(shí)現(xiàn)了runnable接口,所以任何一個(gè)線程均有自己的run方法,而該方法中包含了線程所要運(yùn)行的代碼,線程的活動(dòng)由此來控制。java語言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制,更好的適應(yīng)互聯(lián)網(wǎng)的需要。2 對url的網(wǎng)絡(luò)編程url(uniform resource locator)是一致資源定位器的簡稱,它表示internet上某一資源的地址。通過url我們可以訪問internet上的各種網(wǎng)絡(luò)資源,比如www、ftp以及手機(jī)網(wǎng)絡(luò)的wap站點(diǎn)。瀏覽器通過解析給定的url可以在網(wǎng)絡(luò)上查找相應(yīng)的文件或其他

7、資源。tcp/ip中對于url中主機(jī)名的解析也是協(xié)議的一個(gè)標(biāo)準(zhǔn),即域名解析服務(wù)。使用url進(jìn)行網(wǎng)絡(luò)編程,不需要對協(xié)議本身有太多的了解。2.1 創(chuàng)建url對象利用url類,可以創(chuàng)一個(gè)url對象。具體的構(gòu)造方法如下:1)public url (string spec);spec表示一個(gè)url地址的字符串。通過這個(gè)地址,來構(gòu)造一個(gè)url類。例如:urlurlbase= new url(“”);2)public url(url context, string spec);通過基url和相對url的頁面地址構(gòu)造一個(gè)url對象。這里content是一個(gè)url對象,作為要構(gòu)

8、造的對象的基;spec表示相對content的,一個(gè)頁面文件的地址。例如:urlnet126=new url (/);urlindex126=new url(net126, index.jsp);3)public url(string protocol, string host, string file);protocol表示傳輸協(xié)議,host表示網(wǎng)址,file表示文件地址。需要注意的是這里的host表示的網(wǎng)址是要去掉前面的協(xié)議頭的,如:http:/等。具體應(yīng)用如下:urlgame126=new url(http, , /pages/ga

9、me. jsp);4)public url(string protocol, string host, int port, string file);這里,port是相對于host的服務(wù)器的端口號,創(chuàng)建的url對象指定用該端口通信,具體應(yīng)用如下:url gamelan=newurl(http,,80,pages/game. jsp);另外,利用類url的構(gòu)造方法創(chuàng)建對象,拋棄了非運(yùn)行時(shí)例外,即:malformedurlexception。因此,當(dāng)生成url對象時(shí),需要對這一例外進(jìn)行處理。通常是用try-catch語句進(jìn)行捕獲。格式如下:tryurl myurl=

10、new url()catch (malformedurlexception e)2.2 對url對象的解析url對象生成后,其屬性是無法改變的,但是可以通過url類所提供的方法來獲取這些屬性:public string getprotocol() 獲取該url的協(xié)議名;public string gethost() 獲取該url的主機(jī)名;public int getport() 獲取該url的端口號,如果沒有設(shè)置端口,返回-1;public string getfile() 獲取該url的文件名;public string getref() 獲取該url在文件中的相對位置;public str

11、ing getquery() 獲取該url的查詢信息;public string getpath() 獲取該url的路徑;public string getauthority() 獲取該url的權(quán)限信息;public string getuserinfo() 獲得使用者的信息;public string getref() 獲得該url的錨。2.3 讀取網(wǎng)絡(luò)資源當(dāng)我們得到一個(gè)url對象后,就可以通過它讀取指定的網(wǎng)絡(luò)資源。這時(shí)我們將使用url的方法openstream(),其定義為:inputstream openstream();方法open steam()與指定的url建立連接并返回input

12、stream類的對象以從這一連接中讀取數(shù)據(jù)。public class urlreader public static void main(string args) throws exception /聲明拋出所有例外url tirc = new url(/);/構(gòu)建一個(gè)url對象bufferedreader in=new bufferedreader (new inputstreamreader ( tirc.openstream ( ) ) );/使用openstream得到一輸入流并由此構(gòu)造一個(gè)bufferedreader

13、對象string inputline;while (inputline = in.readline() != null) /從輸入流不斷的讀數(shù)據(jù),直到讀完為止system.out.println(inputline); /把讀入的數(shù)據(jù)打印到屏幕上in.close(); /關(guān)閉輸入流3 jsp的應(yīng)用jsp技術(shù)是使用java編程語言編寫類xml的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。同時(shí),網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源。jsp將網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于web的應(yīng)用程序的開發(fā)變得迅速和容易。1)內(nèi)容的生成和顯示分

14、離網(wǎng)站程序員在html或xml頁面已設(shè)計(jì)和格式化后,可以使用jsp標(biāo)識或者腳本來生成頁面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識和javabeans組件中,并且捆綁在腳本中,運(yùn)行于服務(wù)器端。由于核心邏輯被封裝在標(biāo)識和javabeans中,所以網(wǎng)頁設(shè)計(jì)人員能夠隨意編輯和使用jsp頁面,而不影響內(nèi)容的生成。在服務(wù)器端,jsp引擎解釋jsp標(biāo)識和腳本,生成所請求的內(nèi)容,并且將結(jié)果以html或者xml頁面的形式發(fā)送回瀏覽器。2)重用組件大多數(shù)的jsp頁面都依賴于可重用的、跨平臺(tái)的組件(javabeans或者enterprise javabeans組件)來執(zhí)行應(yīng)用程序,實(shí)現(xiàn)各種復(fù)雜的處理。由于開發(fā)人員之

15、間在共享和交換執(zhí)行普通操作的組件,使得這些組件能為更多的使用者和客戶團(tuán)體所使用。3)采用標(biāo)識網(wǎng)頁設(shè)計(jì)人員不會(huì)都熟悉腳本語言的編程。jsp技術(shù)封裝了許多功能,使這些功能在xml標(biāo)識中進(jìn)行動(dòng)態(tài)內(nèi)容生成中,被直接應(yīng)用。標(biāo)準(zhǔn)的jsp標(biāo)識能夠訪問和實(shí)例化javabeans組件,設(shè)置或者檢索組件屬性,下載applet。4 數(shù)據(jù)庫鏈接一個(gè)完備的應(yīng)用程序,沒有數(shù)據(jù)庫支持是不可想象的。在java中,連接數(shù)據(jù)庫的技術(shù)是jdbc。jdbc是一種用于執(zhí)行sql語句的java api,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用java語言編寫的類和接口組成。java程序通過jdbc驅(qū)動(dòng)程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取

16、數(shù)據(jù)等操作。利用此技術(shù)java程序可以訪問帶有odbc驅(qū)動(dòng)程序的數(shù)據(jù)庫,例如:oracle、sybase、ms sql server和ms access等數(shù)據(jù)庫。jdbc的操作主要有三步:與數(shù)據(jù)庫建立連接、發(fā)送操作數(shù)據(jù)庫的語句、進(jìn)行相關(guān)處理。以此來完成,對基于jdbc的數(shù)據(jù)庫訪問。針對jdbc的具體應(yīng)用,本人給出的下面這段代碼來闡述:connection con = drivermanager.getconnection(jdbc:odbc:wombat,login, password);statement stmt = con.createstatement();resultset rs =

17、 stmt.executequery(select a, b, c from table1);while (rs.next() int x = rs.getint(a);string s = rs.getstring(b);float f = rs.getfloat(c);5 對象清除和垃圾回收1)垃圾回收機(jī)制在編程過程中,對象被創(chuàng)建后,一定會(huì)占用內(nèi)存空間。這個(gè)對象使用完后,它所占用的空間應(yīng)該釋放,以免系統(tǒng)內(nèi)存過度虛耗。在網(wǎng)絡(luò)編程中,這點(diǎn)尤為重要。如沒有相應(yīng)的處理機(jī)制,就會(huì)造出網(wǎng)絡(luò)資源瞬間耗盡。相對于其他編程語言,java語言中并沒有明顯的對象銷毀操作。因?yàn)槠湎到y(tǒng)將會(huì)自動(dòng)去分辨無用的對象,并對

18、其清除,釋放內(nèi)存空間。系統(tǒng)分辨無用對象的方法很多種,最常用幾個(gè)有:引用計(jì)數(shù)法、tracing算法compacting算法、copying算法、generation算法和adaptive算法。其中引用計(jì)數(shù)法是其他方法的基礎(chǔ),最容易理解。java虛擬機(jī)會(huì)為每一個(gè)創(chuàng)建的對象,設(shè)置一個(gè)引用計(jì)數(shù),來統(tǒng)計(jì)該對象被多少個(gè)變量引用,以此衡量其存在的價(jià)值。當(dāng)計(jì)數(shù)為零的時(shí)候,則說明這個(gè)對象已無用,可以收回。至于回收的時(shí)機(jī),則由java虛擬機(jī)的垃圾回收線程來決定。2)finalize()的應(yīng)用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒有被引用時(shí)對這個(gè)對象調(diào)用的。它是在object類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個(gè)對象調(diào)用的。有時(shí)需要采取與java的普通方法不同的一種方法,這種方法有些具有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論