




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄TOC\o"1-3"\h\u14645摘要 211826FTP;C/S;B/S;JAVA 316107Abstract 42081FTP;C/S;B/S;JAVA 46925引言 5134551技術(shù)簡介 9223811.1Java語言 9117951.1.4分布性 1010351.3Java中輸入/輸出流概念 13279921.5JBuilder集成開發(fā)環(huán)境介紹 14176682系統(tǒng)分析 17173282.1可行性分析 17136452.2開發(fā)工具 1823432(1)服務(wù)器操作系統(tǒng):Windows/Unix 1827608(3)系統(tǒng)框架結(jié)構(gòu):J2EE框架組織系統(tǒng)結(jié)構(gòu); 1854572.3需求分析 1880263系統(tǒng)詳細(xì)設(shè)計(jì) 20278623.1系統(tǒng)的主要功能 2012293.2模塊設(shè)計(jì) 23128243.3FTP協(xié)議簡介 24100724結(jié)束語 26312654.1系統(tǒng)評價(jià) 26113504.2關(guān)于下一步要解決的幾個(gè)問題的討論 2739604.2.1關(guān)于安全性問題 2719584參考文獻(xiàn) 2910001致謝 30摘要隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,客戶/服務(wù)C/S(Client/Sersver)結(jié)構(gòu)成為開發(fā)FTP的網(wǎng)絡(luò)編程結(jié)構(gòu),Java作為Web應(yīng)用程序的開發(fā)技術(shù)也為更多的人所采用。起初,F(xiàn)TP并不是應(yīng)用于IP網(wǎng)絡(luò)上的協(xié)議,而是ARPANET網(wǎng)絡(luò)中計(jì)算機(jī)間的文件傳輸協(xié)議,ARPANET是美國國防部組建的老網(wǎng)絡(luò),于1960-1980年使用。在那時(shí),F(xiàn)TP的主要功能是在主機(jī)間高速可靠地傳輸文件。目前FTP仍然保持其可靠性,即使在今天,它還允許文件遠(yuǎn)程存取。這使得用戶可以在某個(gè)系統(tǒng)上工作,而將文件存貯在別的系統(tǒng)。例如,如果某用戶運(yùn)行Web服務(wù)器,需要從遠(yuǎn)程主機(jī)上取得HTML文件和CGI程序在本機(jī)上工作,他需要從遠(yuǎn)程存儲站點(diǎn)獲取文件(遠(yuǎn)程站點(diǎn)也需安裝Web服務(wù)器)。當(dāng)用戶完成工作后,可使用FTP將文件傳回到Web服務(wù)器。采用這種方法,用戶無需使用Telnet登錄到遠(yuǎn)程主機(jī)進(jìn)行工作,這樣就使Web服務(wù)器的更新工作變得如此的輕松。和Internet上的許多環(huán)境一樣,完整的Java應(yīng)用環(huán)境實(shí)際上也是一個(gè)客戶機(jī)/服務(wù)器環(huán)境,更確切地說是瀏覽器/服務(wù)器模型(即Browser/Server模型,簡稱Web模型)。但與傳統(tǒng)的客戶機(jī)/服務(wù)器(C/S)的二層結(jié)構(gòu)不同,應(yīng)用Java的Web模型是由三層結(jié)構(gòu)組成的。傳統(tǒng)的C/S結(jié)構(gòu)通過消息傳遞機(jī)制,由客戶端發(fā)出請求給服務(wù)器,服務(wù)器進(jìn)行相應(yīng)處理后經(jīng)傳遞機(jī)制送回客戶端。而在Web模型中,服務(wù)器一端被分解成兩部分:一部分是應(yīng)用服務(wù)器(Web服務(wù)器),另一部分是數(shù)據(jù)庫服務(wù)器.關(guān)鍵詞:FTP;C/S;B/S;JAVAAbstractAsthecomputernetworktechnologyisdevelopinginahighspeed.C/S(Client/Server)hasbecomeaFTPnetworkprogrammingstructure.JavaisUsedmoerandmoreasaWebapplicationprogram.Inthebeginning,FTPwasnotbeusedinIPnetprotocol,butwhichisusedinARPANEtnetworkcomputers.ARPANEtwasanoldnetworkoftheU.S.DepartmentofDefensebetween1960sand1980s.AtthatperiodthemainfunctionoftheFTPistransmittingdocumentsreliablyandinhighspeedbetweenthemastercomputers.Atpresent,italsodoesverywell,furthermore,itpermitsstoreoraccessintelecommutingtoday.Sotheuserscanworkononesystemandstorethedocumentinanother.Forexample,someoneusetheWebserver,andneedsomeHTMLdocumentandCGIprogramonhisowncomputer,andwanttoacquiresomedocuments,(thetelnetneedinstallWebserver)WhentheuserfinishedhecanstorethedocumenttotheWebserverbytheFTP.Inthisway,theusercanworkwithoutTelnet,whichmaketheWebserverupdatemoreandmoreeasier.ThewholeJavacircumstanceactuallyisaC/S(Client/Server)liketheothercircumstancesontheInternet,strictlytosay,itisBrowser/Servermodel(Webmodel).ButitisdifferentfromthetraditionalC/Smodelthatistwolayersstructure.TheWebusingJavaisthreelayersstructure.ThetraditionalC/Sstructuretransmitsbythemessagemechanism.TheClientsentarequest,andtheServersenttoitaftersomecorrespondingmanages.ButintheWebmodeltheServerisseparatedintotwoparts,oneistheapplicationServer(WebServer);anotherisdatabaseServer.Keywords:FTP;C/S;B/S;JAVA引言FTP(File
Transfer
Protocol)是文件傳輸協(xié)議的簡稱。FTP的主要作用,就是讓用戶連接上一個(gè)遠(yuǎn)程計(jì)算機(jī)(這些計(jì)算機(jī)上運(yùn)行著FTP服務(wù)器程序)查看遠(yuǎn)程計(jì)算機(jī)有哪些文件,然后把文件從遠(yuǎn)程計(jì)算機(jī)上拷到本地計(jì)算機(jī),或把本地計(jì)算機(jī)的文件送到遠(yuǎn)程計(jì)算機(jī)去。目前FTP服務(wù)器軟件都為國外作品,例如Server_U、IIS,國內(nèi)成熟的FTP服務(wù)器軟件很少,有一些如(CrobFTPServer),但從功能上看來遠(yuǎn)不能和那些流行的服務(wù)器軟件媲美。下面對這些軟件簡單的做一個(gè)比較:IIS只適用于NT/2000/XPWindows操作系統(tǒng),適合建個(gè)小型的同時(shí)在線用戶數(shù)不超過10個(gè)的FTP服務(wù)器。它對賬戶的管理按照Windows用戶賬戶方式進(jìn)行;比起IIS來,Server_U的管理功能強(qiáng)大得多,而且設(shè)置也很方便。它是一款由RobBeckers開發(fā)的獲獎的FTP服務(wù)器軟件,它功能強(qiáng)大又易于使用,支持
9x/ME/NT/2K
等全Windows系列。FTP服務(wù)器用戶通過它用FTP協(xié)議能在internet上共享文件。Serv-U不僅100%遵從通用FTP標(biāo)準(zhǔn),也包括眾多的獨(dú)特功能可為每個(gè)用戶提供文件共享完美解決方案。它并不是簡單地提供文件的下載,還為用戶的系統(tǒng)安全提供了相當(dāng)全面的保護(hù)。例如:您可以為您的FTP設(shè)置密碼、設(shè)置各種用戶級的訪問許可等等;而CrobFTPServer從功能設(shè)置上可以看出,它沿用了像Server_U等主流FTP服務(wù)器軟件的基本設(shè)置;并加入了不少人性化的功能;同時(shí)支持多服務(wù)器。(即在軟件中可以在任意的有效端口上建立任意多的FTP服務(wù)器并可同時(shí)運(yùn)行,各服務(wù)器間互不相干的穩(wěn)定運(yùn)行)應(yīng)該說進(jìn)步是非常大的。并且可以應(yīng)用于Windows95/98/ME/me/N/T2000及最新的.NET操作系統(tǒng)上。不過,縱觀上面這些軟件,它們都只能在Windows操作系統(tǒng)中運(yùn)行,并且功能過于強(qiáng)大,許多功能應(yīng)用于我們的考試系統(tǒng)的話,并沒有太大的意義,而且有些也沒必要,于是就需要一個(gè)專用的,而且也能通用(應(yīng)用于UNIX等其他的操作系統(tǒng))的FTP服務(wù)器。要求實(shí)習(xí)一些基本功能:①文件上傳;②文件下載;③文件列表和存在檢查、文件屬性查詢?;谝陨系囊?,可以說在選擇開發(fā)語言的時(shí)候,無疑我選擇了JAVA語言。眾所周知,JAVA是一種可以編寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java編程語言的風(fēng)格十分接近C++語言。Java繼承了C++語言面向?qū)ο蠹夹g(shù)的核心,舍棄了C++語言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載、多重繼承(以接口取代)等成分,增加了自動垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間。Java最初是為嵌入式小設(shè)備而設(shè)計(jì)的。起初,它為人們所喜愛的原因是由于可以用它來開發(fā)復(fù)雜的、以Applet為形式的客戶端Web應(yīng)用。然而,服務(wù)器端JAVA的應(yīng)用的興起才是JAVA編程最令人振奮的趨勢。Java本質(zhì)上適合開發(fā)大型客戶機(jī)/服務(wù)器(Client/Server)應(yīng)用。其跨平臺、面向?qū)ο?、?nèi)存保護(hù)的安全性、內(nèi)在的對網(wǎng)絡(luò)編程的支持以及豐富的API等特性使JAVA成為服務(wù)器端應(yīng)用開發(fā)的一種理想語言。之所以選擇JAVA語言,還有個(gè)重要的原因就是本人的個(gè)人所好。在選擇開發(fā)平臺方面,JCreator、eclipse、Jbuilder等都是不錯(cuò)的選擇,由于個(gè)人喜好我選擇了Jbuilder作為我的開發(fā)平臺,而在版本的選擇上我選的是Jbuilder2005。通過閱讀大量的文獻(xiàn)質(zhì)料,我發(fā)現(xiàn)用JAVA來開發(fā)FTP服務(wù)器還是具有一定的難度,主要是由于它不像開發(fā)FTP客戶端的程序那樣(Jbuilder中提供了一類網(wǎng)絡(luò)類庫.ftp.FtpClient.,該類庫主要提供了用于建立FTP連接的類。利用這些類的方法,編程人員可以遠(yuǎn)程登錄到FTP服務(wù)器,列舉該服務(wù)器上的目錄,設(shè)置傳輸協(xié)議,以及傳送文件。FtpClient類涵蓋了幾乎所有FTP的功能,F(xiàn)tpClient的實(shí)例變量保存了有關(guān)建立。),在Jbuilder中并沒有像FtpClient類這樣的,來提供給用于服務(wù)器端編程的類,所以我們只能從FTP的工作原理入手,來解決服務(wù)器端的程序編寫問題。經(jīng)過分析,大體思路如下:在主函數(shù)中建立一個(gè)服務(wù)器套接字端口,等待客戶端請求,一旦客戶端請求被接受,服務(wù)器程序就建立一個(gè)服務(wù)器分線程,處理客戶端的命令。如果客戶端需要和服務(wù)器端進(jìn)行文件的傳輸,則建立一個(gè)新的套接字連接來完成文件的操作。在主函數(shù)中,完成服務(wù)器端口的偵聽和服務(wù)線程的創(chuàng)建。線程類的主要設(shè)計(jì)都是在run()方法中實(shí)現(xiàn)。用run()方法得到客戶端的套接字信息,根據(jù)套接字得到輸入流和輸出流,向客戶端發(fā)送歡迎信息。在文件傳輸方面,主要處理從服務(wù)器中獲得文件RETR和向服務(wù)器中發(fā)送文件STOR,這兩個(gè)命令的處理非常類似。處理RETR命令時(shí),首先得到用戶要獲得的文件的名稱,根據(jù)名稱創(chuàng)建一個(gè)文件輸入流,然后和客戶端建立臨時(shí)套接字連接,并得到一個(gè)輸出流。隨后,將文件輸入流中的數(shù)據(jù)讀出并借助于套接字輸出流發(fā)送到客戶端,傳輸完畢以后,關(guān)閉流和臨時(shí)套接字;STOR命令的處理也是同樣的過程,只是方向正好相反。當(dāng)然,這只是大體的思路,具體的實(shí)現(xiàn)還涉及到許多細(xì)節(jié)上的問題了,從理論上來講,利用JAVA來開發(fā)FTP服務(wù)器是可行的,也基本能完成我們預(yù)先所要達(dá)到的目標(biāo),實(shí)現(xiàn)一些基本功能,不過在檢查文件的屬性這方面還有待查找更多相關(guān)的質(zhì)料。另外,由于Internet網(wǎng)絡(luò)帶寬是有限的,所以可以考慮將在Internet上需要傳輸?shù)臄?shù)據(jù)文件壓縮后再傳輸,則更有利于數(shù)據(jù)文件的快速傳輸,同時(shí),壓縮文件也可以節(jié)省服務(wù)器哦的外部存儲空間。實(shí)現(xiàn)的時(shí)候,主要可應(yīng)用JavaAPI中java.util.zip包提供的ZipEntry、ZipInputStream和ZipOutputStream共3個(gè)類。本軟件將盡量實(shí)現(xiàn)這個(gè)功能。1技術(shù)簡介1.1Java語言
Java語言的優(yōu)點(diǎn)主要表現(xiàn)在:簡單、面向?qū)ο?、多線程、分布性、體系結(jié)構(gòu)中立、安全性等方面。
1.1.1簡單性
Java與C++語言非常相近,但Java比C++簡單,它拋棄了C++中的一些不是絕對必要的功能,如頭文件、預(yù)處理文件、指針、結(jié)構(gòu)、運(yùn)算符重載、多重繼承以及自動強(qiáng)迫同型。Java實(shí)現(xiàn)了自動的垃圾收集,簡化了內(nèi)存管理的工作。這使程序設(shè)計(jì)更加簡便,同時(shí)減少了出錯(cuò)的可能。
1.1.2面向?qū)ο?/p>
Java提供了簡單的類機(jī)制和動態(tài)的構(gòu)架模型。對象中封裝了它的狀態(tài)變量和方法,很好地實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對象的原型,通過繼承和重載機(jī)制,子類可以使用或重新定義父類或超類所提供的方法,從而既實(shí)現(xiàn)了代碼的復(fù)用,又提供了一種動態(tài)的解決方案。
Java是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它除了數(shù)組、布爾和字符三個(gè)基本數(shù)據(jù)類型外的其它類都是對象,它不再支持全局變量。在Java中,如果不創(chuàng)建新類就無法創(chuàng)建程序,Java程序在運(yùn)行時(shí)必須先創(chuàng)建一個(gè)類的實(shí)例,然后才能提交運(yùn)行。
Java同樣支持繼承特性,Java的類可以從其它類中繼承行為,但Java只支持類的單重繼承,即每個(gè)類只能從一個(gè)類中繼承。
Java支持界面,界面允許程序員定義方法但又不立即實(shí)現(xiàn),一個(gè)類可以實(shí)現(xiàn)多個(gè)界面,利用界面可以得到多重繼承的許多優(yōu)點(diǎn)而又沒有多重繼承的問題。
1.1.3多線程
多線程使應(yīng)用程序可以同時(shí)進(jìn)行不同的操作,處理不同的事件。在多線程機(jī)制中,不同的線程處理不同的任務(wù),他們之間互不干涉,不會由于一處等待影響其他部分,這樣容易實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互操作。
Java程序可以有多個(gè)執(zhí)行線程,如可以讓一個(gè)線程進(jìn)行復(fù)雜的計(jì)算,而讓另一個(gè)線程與用戶進(jìn)行交互,這樣用戶可以在不中斷計(jì)算線程的前提下與系統(tǒng)進(jìn)行交互。多線程保證了較高的執(zhí)行效率。1.1.4分布性
Java是面向網(wǎng)絡(luò)的語言。通過它提供的類庫可以處理TCP/IP協(xié)議,用戶可以通過URL地址在網(wǎng)絡(luò)上很方便的訪問其他對象。
1.1.5體系結(jié)構(gòu)中立
Java是一種網(wǎng)絡(luò)語言,為使Java程序能在網(wǎng)絡(luò)的任何地方運(yùn)行,Java解釋器生成與體系結(jié)構(gòu)無關(guān)的字節(jié)碼結(jié)構(gòu)的文件格式。Java為了做到結(jié)構(gòu)中立,除生成機(jī)器無關(guān)的字節(jié)碼外,還制定了完全統(tǒng)一的語言文本,如Java的基本數(shù)據(jù)類型不會隨目標(biāo)機(jī)的變化而變化,一個(gè)整型總是32位,一個(gè)長整型總是64位。
為了使Java的應(yīng)用程序能不依賴于具體的系統(tǒng),Java語言環(huán)境還提供了用于訪問底層操作系統(tǒng)功能的類組成的包,當(dāng)程序使用這些包時(shí),可以確保它能運(yùn)行在各種支持Java的平臺上。
java.lang:一般的語言包。其中包括用于字符串處理、多線程、異常處理和數(shù)字函數(shù)等的類,該包是實(shí)現(xiàn)Java程序運(yùn)行平臺的基本包;
java.util:實(shí)用工具包。其中包括哈希表、堆棧、時(shí)間和日期等;
java.io:基于流模型的輸入/輸出包。該包用統(tǒng)一的流模型實(shí)現(xiàn)了各種格式的輸入/輸出,包括文件系統(tǒng)、網(wǎng)絡(luò)和設(shè)備的輸入/輸出等;
:網(wǎng)絡(luò)包。該包支持TCP/IP協(xié)議,其中提供了socket、URL和WWW的編程接口;
java.awt:抽象窗口工具集。其中實(shí)現(xiàn)了可以跨平臺的圖形用戶界面組件,包括窗口、菜單、滾動條和對話框等;
java.applet:支持applet程序設(shè)計(jì)的基本包。
1.1.6安全性
用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病毒的入侵,Java不支持指針,一切對內(nèi)存的訪問都必須通過對象的實(shí)例變量來實(shí)現(xiàn),這樣就防止了程序員使用欺騙手段訪問對象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。
1.2JAVA工具
1.2.1JDK
(1)Java編譯器
Java編譯器將Java源代碼文件編譯成可執(zhí)行的Java字節(jié)碼。Java源代碼文件的擴(kuò)展名為.java,Java編譯器把這種擴(kuò)展名的文件編譯成擴(kuò)展名為.class的文件。源文件中的每個(gè)類在編譯后都將產(chǎn)生一個(gè)class文件,這意味一個(gè)Java源代碼文件可能編譯生成多個(gè)class文件。
(2)Java解釋器
Java解釋器對編譯生成的字節(jié)碼格式的可執(zhí)行程序的運(yùn)行提供支持,它是運(yùn)行非圖形Java程序的命令行工具。
(3)Appletviewer
它是JavaApplet的簡單測試工具,可使用它來測試JavaApplet程序,而不需要WWW瀏覽器的支持。
1.2.2VisualJ++
VisualJ++集成了可視化界面設(shè)計(jì)、交互式調(diào)試、代碼編輯、聯(lián)機(jī)幫助信息和介紹如何快速掌握該開發(fā)環(huán)境的實(shí)用向?qū)У榷囗?xiàng)功能,同時(shí)具有能充分利用ActiveX和COM新技術(shù)的優(yōu)勢。利用VisualJ++可創(chuàng)建交互性很強(qiáng)的Internet應(yīng)用程序,是難得的Java開發(fā)系統(tǒng)。1.3Java中輸入/輸出流概念
過濾流DataInputStream和DataOutputStream除了分別作為FilterInputStream和FilterOutputStream的子類外,還分別實(shí)現(xiàn)了接口DataInput和DataOutput。接口DataInput中定義的方法主要包括從流中讀取基本類型的數(shù)據(jù)、讀取一行數(shù)據(jù)、或者讀取指定長度的字節(jié)數(shù),如readBoolean()readInt()、readLine()、readFully()等。接口DataOutput中定義的方法主要是向流中寫入基本類型的數(shù)據(jù)或者寫入一定長度的字節(jié)數(shù)組,如writeChar()、writeDouble()DataInputStream可以從所連接的輸入流中讀取與機(jī)器無關(guān)的基本類型數(shù)據(jù),用以實(shí)現(xiàn)一種獨(dú)立于具體平臺的輸入方式;DataInputStream可以向所連接的輸出流寫入基本類型的數(shù)據(jù)。
1.4Socket機(jī)制Socket是面向客戶/服務(wù)器模型設(shè)計(jì)的,網(wǎng)絡(luò)上的兩個(gè)程序通過一個(gè)雙向的通訊連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)雙向鏈路的一端稱為一個(gè)Socket。Socket通常用來實(shí)現(xiàn)客戶方和服務(wù)方的連接??蛻舫绦蚩梢韵騍ocket寫請求,服務(wù)器將處理此請求,然后通過Socket將結(jié)果返回給用戶。
Socket通信機(jī)制提供了兩種通訊方式:有聯(lián)接和無聯(lián)接方式,分別面向不同的應(yīng)用需求。使用有聯(lián)接方式時(shí),通信鏈路提供了可靠的,全雙工的字節(jié)流服務(wù)。在該方式下,通信雙方必須創(chuàng)建一個(gè)聯(lián)接過程并建立一條通訊鏈路,以后的網(wǎng)絡(luò)通信操作完全在這一對進(jìn)程之間進(jìn)行,通信完畢關(guān)閉此聯(lián)接過程。使用無聯(lián)接方式時(shí)其系統(tǒng)開銷比無聯(lián)接方式小,但通信鏈路提供了不可靠的數(shù)據(jù)報(bào)服務(wù),不能保證信源所傳輸?shù)臄?shù)據(jù)一定能夠到達(dá)信宿。在該方式下,通信雙方不必創(chuàng)建一個(gè)聯(lián)接過程和建立一條通訊鏈路,網(wǎng)絡(luò)通信操作在不同的主機(jī)和進(jìn)程之間轉(zhuǎn)發(fā)進(jìn)行。1.5JBuilder集成開發(fā)環(huán)境介紹BorlandJBuilder是全球第一的跨平臺Java開發(fā)環(huán)境,可以用于構(gòu)建符合工業(yè)標(biāo)準(zhǔn)的Java應(yīng)用系統(tǒng),開發(fā)EJB、Web、XML以及數(shù)據(jù)庫等各類應(yīng)用程序。雙向、可視化設(shè)計(jì)工具使得我們可以快速的構(gòu)建各種J2EE應(yīng)用程序,并部署至多種應(yīng)用程序服務(wù)器,包括BEAWebLogic、IBMWebSphere、SunONEApplicationServer、Oracle10gApplicationServer以及整合于JBuilder的BorlandEnterpriseServer。
鑒于此原因,在我們學(xué)習(xí)Java語言的時(shí)候,也沒有理由杜絕使用JBuilder這個(gè)優(yōu)秀的編譯器。除非你看到集成開發(fā)環(huán)境就暈,呵呵(初學(xué)者和大師經(jīng)常這樣說)。當(dāng)然如果你還是初學(xué)者,選擇IntellijIDEA也不錯(cuò),簡單、清晰,他獲得了2003年Java最佳編譯器大獎,集成了很多先進(jìn)的軟件工程方法。但是做企業(yè)級的開發(fā),JBuilder無可爭論的成為最佳選擇。
QuickStart原來JBuilder這么容易上手
正如你使用其它的編譯器學(xué)習(xí)Java語言一樣,你的幾個(gè)想法之一便是“讓我盡快的完成一個(gè)HelloWorld吧!”。我們暫且什么都不看,僅僅快速的完成一個(gè)HelloWorld程序。安裝JBuilder似乎并不需要更多的向?qū)Т蠹叶寄軌颡?dú)立完成。那么趕快打開這個(gè)集成開發(fā)環(huán)境,讓我們盡快完成我們的HelloWorld。運(yùn)行JBuilder后我們看到了這樣的界面:
趕快新建一個(gè)工程(一個(gè)習(xí)慣是,不管你建立的程序有多么的小,建立一個(gè)工程是一個(gè)良好的程序設(shè)計(jì)習(xí)慣,便于有效的管理你的代碼和編譯后生成的資源),在新建的工程中新建一個(gè)HelloWorld類文件HelloWorld.java。你的工程名、類文件名和類名最好是統(tǒng)一的,這是一個(gè)良好的編程習(xí)慣。需要注意的是:你得類文件名和類名必須是統(tǒng)一的,否則就會出現(xiàn)類似下面的報(bào)警錯(cuò)誤,我們假設(shè)將類名命名為HelloWorldd,而文件名為HelloWorld,編譯后就會出現(xiàn)下面的提示信息:
"HelloWorld.java":classHelloWorlddispublic;shouldbedeclaredinafilenamedHelloWorldd.javaatline12,columnl
完整的HelloWorld程序可以參考下面的建立:
寫好你的程序后,編譯運(yùn)行之。右擊工程欄當(dāng)中的HelloWorld.java,選擇DebugUsingDefaults。除非上面的步驟出現(xiàn)問題,否則你將會很興奮的看到,HelloWorld在信息窗格中輸出了!
這樣看來似乎JBuilder沒有那么復(fù)雜,對么?很多人花了N長時(shí)間來調(diào)試一個(gè)HelloWorld程序,不是環(huán)境變量沒有設(shè)置好就是忘記這個(gè)丟了那個(gè)。但你絕不能從此斷定“搞定!我已經(jīng)掌握了JBuilder!”其實(shí)這只是給大家建立一個(gè)信心,告訴大家JBuilder其實(shí)并不像你想象的那樣無法接受而已。想要徹底掌握J(rèn)Builder,我們需要認(rèn)真的學(xué)習(xí)下面的指導(dǎo)。
AppBrowser--我以后天天對著你打開JBuilder集成開發(fā)環(huán)境的時(shí)候,我們面對的便是AppBrowser。下面我們來逐一的介紹主要的組成部件:
如果是正在調(diào)試多個(gè)工程或者你需要打開多個(gè)AppBrowser窗口,可以點(diǎn)擊Window菜單中的NewBrowser或者是在工程窗體中右擊文件名,點(diǎn)擊OpeninNewBrowser。
再來看看主工具欄,如果你覺得這么多快捷按鈕不爽,大可在下面這幅圖的指導(dǎo)下關(guān)掉這些工具欄。在View中選擇Toolbars:
但個(gè)人習(xí)慣使用默認(rèn)的工具欄,提供了不少方便。
工程窗體中顯示的是當(dāng)前的工程以及當(dāng)前工程所包含的所有文件。結(jié)構(gòu)窗體中展示了當(dāng)前在被編輯的文件結(jié)構(gòu),下面的圖片顯示的便是剛剛的HelloWorld文件結(jié)構(gòu),很簡單是么,只有一個(gè)main方法。
如果你的程序中有錯(cuò)誤,結(jié)構(gòu)窗體就會實(shí)時(shí)出現(xiàn)一個(gè)Errors文件夾,其中包含了這些語法錯(cuò)誤。Improts中存放的是所有引入的Package。
下面我們再來看看位于內(nèi)容窗體下的文件查看頁簽:
Source顯示的是目前文件的源代碼,可以直接進(jìn)行編輯。
Design中包含了組件托盤,以便進(jìn)行可視化程序開發(fā)。
Bean中包含了BeanExpress設(shè)計(jì)工具,可以用于查看和編輯bean的特性。
UML好神奇,打開看看剛才系統(tǒng)為你的工程創(chuàng)建的UML圖!
Doc為你的文件創(chuàng)建了一個(gè)Javadoc。
History顯示了文件的版本控制系統(tǒng)記錄。
開發(fā)環(huán)境中一個(gè)非常重要的工具便是搜索欄,你可以在工具欄上看到一個(gè)搜索欄,這個(gè)是在當(dāng)前文檔中進(jìn)行內(nèi)容搜索用的。如果你要對某些類進(jìn)行搜索,不妨同時(shí)按下Ctrl和減號。在Search中可以對類進(jìn)行搜索,在Browse中可以對package進(jìn)行搜索。2系統(tǒng)分析2.1可行性分析可行性研究就是預(yù)開發(fā)軟件系統(tǒng)的總體目標(biāo),給出它的功能、性能、可靠性以及其他方面的要求。其目的是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決、是否值得去解決。下面從四個(gè)方面分析本系統(tǒng)的可行性:⑴技術(shù)可行性本系統(tǒng)用JAVA進(jìn)行代碼的編寫,目前十分流行的一種技術(shù),主要用于開發(fā)服務(wù)端的腳本程序和動態(tài)生成網(wǎng)站。它與目前同樣流行的VB技術(shù)技術(shù)是相同性質(zhì)的、同一層次的,它們在網(wǎng)站的建設(shè)中所起的作用是一樣的,但是JAVA技術(shù)與這兩種技術(shù)相比,有著十分突出的優(yōu)越性,發(fā)展前途不可限量。⑵經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性分析(能否贏利)是,從經(jīng)濟(jì)的角度分析本系統(tǒng)的規(guī)劃方案有無實(shí)現(xiàn)的可能和開發(fā)的價(jià)值;分析網(wǎng)站系統(tǒng)所帶來的經(jīng)濟(jì)效益是否超過開發(fā)和維護(hù)網(wǎng)站所需要的費(fèi)用。經(jīng)濟(jì)上的可行性是企業(yè)行為的基礎(chǔ)。由于本系統(tǒng)的開發(fā)設(shè)計(jì)是為完成畢業(yè)設(shè)計(jì)任務(wù)而進(jìn)行的,所以不存在贏利問題。所在此也就不討論經(jīng)濟(jì)可行性問題。⑶開發(fā)環(huán)境可行性網(wǎng)站開發(fā)需要的開發(fā)環(huán)境需要裝有windows2000系統(tǒng)以上的電腦上運(yùn)行,這樣的配置在當(dāng)今已經(jīng)不能成為難題,而服務(wù)器方面,只需要一臺安裝了JAVA和JBuilder服務(wù)的計(jì)算機(jī)即可。所以開發(fā)環(huán)境可行性是沒有任何問題的。2.2開發(fā)工具整個(gè)系統(tǒng)的開發(fā)和運(yùn)行所需的軟件環(huán)境包括。(1)服務(wù)器操作系統(tǒng):Windows/Unix(2)客戶端操作系統(tǒng):Windows2000/XP/Unix(3)系統(tǒng)框架結(jié)構(gòu):J2EE框架組織系統(tǒng)結(jié)構(gòu);(4)開發(fā)工具:Jbuilder,F(xiàn)rontpage2003;2.3需求分析根據(jù)畢業(yè)設(shè)計(jì)的要求,傳輸系統(tǒng)的主要功能實(shí)現(xiàn)在網(wǎng)絡(luò)環(huán)境下,客戶端與服務(wù)端的文件傳輸。主要有客戶端與服務(wù)端兩大模塊。整個(gè)系統(tǒng)基于Web環(huán)境,應(yīng)用于FTP服務(wù)器,故考慮后臺數(shù)據(jù)庫采用JAVA編寫,充分發(fā)揮其在Internet信息處理方面上的優(yōu)勢,實(shí)現(xiàn)方便快捷、高效實(shí)用,安全穩(wěn)定的開發(fā)效果。系統(tǒng)開發(fā)的總體任務(wù)是連接FTP服務(wù)器,上傳/下載文件、對FTP服務(wù)器站點(diǎn)的管理、服務(wù)器端提供FTP服務(wù)、允許遠(yuǎn)程登錄下載服務(wù)器上的文件。功能層次圖如圖1所示,圖1FTP功能層次圖FTP數(shù)據(jù)流圖,如圖2所示圖2FTP數(shù)據(jù)流圖3系統(tǒng)詳細(xì)設(shè)計(jì)3.1系統(tǒng)的主要功能在日常的網(wǎng)絡(luò)應(yīng)用中,文件傳輸已經(jīng)成為繼即時(shí)通訊之后第二大的網(wǎng)絡(luò)基礎(chǔ)應(yīng)用,而點(diǎn)對點(diǎn)的文件發(fā)送是最方便的文件傳輸手段。越來越多的網(wǎng)民或是商業(yè)用戶都采用這種方式發(fā)送文件,目前許多即時(shí)通訊軟件,例如QQ、MSN都有點(diǎn)對點(diǎn)文件傳輸功能,同時(shí)還出現(xiàn)了專門的點(diǎn)對點(diǎn)文件傳輸工具,如快遞通等。
當(dāng)今比較流行的局域網(wǎng)內(nèi)文件傳輸軟件,如:飛鴿傳書等。我們本次制作的軟件就是以飛鴿傳書為參照,具體功能也是飛鴿傳書的基礎(chǔ)上,通過分析與對比,總結(jié)其他此類軟件的優(yōu)缺點(diǎn),制作出一款有自己特色的內(nèi)網(wǎng)傳輸軟件。主要特點(diǎn)要突出在,方便快速,實(shí)用性強(qiáng),功能適應(yīng)于廣大用戶,實(shí)現(xiàn)文件資源在局域網(wǎng)快速傳遞分享,充分利用內(nèi)網(wǎng)寶貴的資源。
當(dāng)打開軟件,首先要讓通知在線用戶(使用了本軟件的的用戶),讓對方知道自己的在線狀態(tài),同時(shí)也獲取其他用戶的在線情況,及時(shí)了解本軟件的在線用戶狀態(tài)。用戶可以根據(jù)自己的需要,向在線用戶名單列表,添加與刪除當(dāng)前在線用戶的名單,并可以手動刷新用戶名單。當(dāng)然本軟件也會自動刷新用戶名單列表,而且可以根據(jù)自己的需要,設(shè)定軟件自動刷新的時(shí)間間隔,做到準(zhǔn)確掌握在線名單。
知道了用戶的在線情況,如果想對某個(gè)在線用戶進(jìn)行對話或發(fā)送文件,則可以雙擊在線用戶名單列表中的某個(gè)用戶,系統(tǒng)將會自動彈出一個(gè)對話框,并在對話框顯示對方的連接情況。然后就可以進(jìn)行發(fā)送文字信息或回復(fù)對方,同時(shí)在信息顯示欄中會顯示雙方之間所進(jìn)行多的全部對話歷史記錄。在此對話期間,還可以同時(shí)發(fā)送文件給對方。對話框界面簡單實(shí)用,方便操作,一目了然。
然而,有的人不太喜歡太多別人發(fā)信息給自己,或十分的討厭太多的“騷擾”信息,這個(gè)時(shí)候,只要你選擇主窗口的基本設(shè)置處,就會用相應(yīng)的設(shè)置,在“自動彈開對話窗口”字樣的前面,把復(fù)選框前面的勾取消,就可以取消一切外來用戶發(fā)送來的信息,也就不會再有信息“騷擾”了。
然后回到主窗口介紹下。首先可以看到,基本設(shè)置框,直接顯示在最前端,這樣方便用戶進(jìn)行必要的添加設(shè)置或重新設(shè)置。
用戶可以根據(jù)自己的電腦配置,或自己的意圖進(jìn)行必要的端口設(shè)定。此端口是用來接收文件的主要端口,通過設(shè)定此端口,有效的提高發(fā)送速度與質(zhì)量,同時(shí)還可以在一定程度上保證信息在傳輸過程中的安全性。當(dāng)然在局域網(wǎng)內(nèi),為了更多的資源共享,為了更多的方便,也為了時(shí)間效益,我們一般選擇默認(rèn)的端口就可以了;否則發(fā)送與接收文件的雙方都必須先要進(jìn)行“對話與協(xié)議”,才能有效的建立文件傳送與接收。
至于時(shí)間間隔項(xiàng),我們在上面已經(jīng)有介紹過,其主要用途就是刷新在線用戶名單,保證了對話與發(fā)送文件的實(shí)效性。
很多人在發(fā)送或接收文件的時(shí)候,總不希望自己的電腦出現(xiàn)當(dāng)機(jī)(也就是所謂的死機(jī))狀態(tài)。不難想象,要是很多用戶同時(shí)連接到你的電腦,此時(shí)電腦是很難發(fā)揮起“速度效益”的作用,有的時(shí)候反而導(dǎo)致一系列的什么“崩潰”、“當(dāng)機(jī)”、“停滯”現(xiàn)象。所以在設(shè)置“最大連接”還是有一定的必要性的。此選項(xiàng)可以根據(jù)自己的需要、自己的電腦配置進(jìn)行更改。一般情況下設(shè)置為默認(rèn)也就行了。
接下來的,“自動彈開對話窗口”,在上面也有輕輕的描述過,在此就不多論述了。
現(xiàn)在介紹下系統(tǒng)的主要部分,也是核心部分。既然說是“局域網(wǎng)內(nèi)文件傳輸軟件”,那么傳輸部分當(dāng)然是不可缺少的部分。
其實(shí)此功能實(shí)現(xiàn)起來并不難,只要用戶選擇了一個(gè)文件接收對象,即文件接收方,就可以選擇文件與對方進(jìn)行連接與發(fā)送文件了。當(dāng)有新文件發(fā)送,對方(接收方)會自動彈出一個(gè)接受文件的對話窗體,對方可以接受或拒絕。對方拒絕接收文件,那么雙方也就中斷了文件的接收與發(fā)送,并且接收方會通知發(fā)送方中斷的消息。相反,要是接收方同意了接收文件,文件的傳輸工作就會啟動,進(jìn)行一系列的數(shù)據(jù)包發(fā)送與接收。此時(shí),雙方都可以很清楚的知道對方的發(fā)送與接收狀態(tài),比如:發(fā)送方可以知道文件接收方是否中止或退出接收,發(fā)送是否異常,是否需要重新發(fā)送數(shù)據(jù)包;接收方同樣可以知道對方的狀態(tài),以及文件接收率,速度等情況。還有很多功能都可以在界面上直接看到,在這里就沒有必要一一提出。
因?yàn)橄到y(tǒng)可以同時(shí)發(fā)送多個(gè)文件,并且可以同時(shí)與多人聊天、對話。打開的窗口可能很多很多,十個(gè)、百個(gè)、千個(gè)?此時(shí),要是想關(guān)閉這些子窗口,只需要輕輕點(diǎn)下“關(guān)閉子窗”,一切就OK了,這樣就省去了很多時(shí)間,真正體現(xiàn)“方便,快捷”。
為了“抗騷擾”,系統(tǒng)還特意的設(shè)置了黑名單功能,此功能里可以輕易的設(shè)定需要“排斥”的對象。在這部分重要用到FSO模塊技術(shù),可以動態(tài)生成一個(gè)黑名單文件,操作直觀而簡單。
系統(tǒng)的功能體現(xiàn)了方便與實(shí)用的特點(diǎn),并不是一意追求太強(qiáng)大的功能與復(fù)雜的界面,而是通用的基礎(chǔ)上做到實(shí)效。例如其中的“多聊、群發(fā)”功能都有力的體現(xiàn)了這點(diǎn)。3.2模塊設(shè)計(jì)主窗口如圖3所示圖3主窗口文件發(fā)送窗口如圖4所示圖3文件發(fā)送窗口文件接收窗口如圖5所示圖3文件接收窗口3.3FTP協(xié)議簡介
3.3.1什么是FTP協(xié)議
FTP協(xié)議即文件傳輸協(xié)議(FileTransferProtocol),它是TCP/IP協(xié)議族的應(yīng)用協(xié)議之一,是Internet上使用非常廣泛的一種通信協(xié)議。它是由支持Internet文件傳輸?shù)母鞣N規(guī)則所組成的集合,這些規(guī)則使Internet用戶可以把文件從一個(gè)主機(jī)拷貝到別一個(gè)主機(jī)上。通過TCP/IP連接在一起的任何兩臺計(jì)算機(jī),如果安裝了FTP和服務(wù)器,就可以通過FTP服務(wù)進(jìn)行相互之間的文件傳輸,因而為用戶提供了極大的方便和收益。FTP通常也表示用戶執(zhí)行這個(gè)協(xié)議所使用的應(yīng)用程序。
FTP和其他的Internet服務(wù)一樣,亦采用客戶機(jī)/服務(wù)器方式。它要求用戶用本地的客戶端與服務(wù)器建立連接,然后才能從服務(wù)器上獲取文件(Download),或向服務(wù)器發(fā)送文件(Upload)。使用方法很簡單;啟動FTP程序先與主機(jī)連接,然后向遠(yuǎn)程主機(jī)發(fā)出傳輸命令,遠(yuǎn)程主機(jī)給予響應(yīng),執(zhí)行正確命令。
目前Windows操作系統(tǒng)最常用的FTP軟件有WS-FTP,CUTEFTPT等。FTP有一個(gè)根本的限制,那就是:如果用戶未被某一服務(wù)器授權(quán),未取得UserName和Password就不能訪問該主機(jī),實(shí)際上是不能遠(yuǎn)程登陸(RemoteLogin)進(jìn)入該主機(jī)。而AnonymousFTP(匿名FTP)則取消了這種限制。
3.3.2FTP文件傳輸?shù)闹饕攸c(diǎn)
用戶有合法的用戶名和口令的前提下才與服務(wù)器建立連接。通過客戶端軟件,用戶可以在權(quán)限允許的范圍內(nèi)進(jìn)行文件更名、刪除、或傳送操作。
3.3.3FTP支持的文件傳送類型
FTP支持的文件傳送類型,它們是ASCII和二進(jìn)制映像。
(1)文本文件(ASCII):在傳送文本文件時(shí)應(yīng)該使用ASCII。在ASCII模式中,將執(zhí)行網(wǎng)絡(luò)標(biāo)準(zhǔn)字符轉(zhuǎn)換。例如,行尾的字符在必要時(shí)根據(jù)目標(biāo)操作系統(tǒng)進(jìn)行轉(zhuǎn)換。
(2)二進(jìn)制(Binary)文件的傳輸可執(zhí)行文件、圖像和壓縮文件等時(shí)應(yīng)該使用二進(jìn)制。在二進(jìn)制模式中,一個(gè)字節(jié)接一個(gè)字節(jié)地移動文件。
3.3.4FTP在實(shí)現(xiàn)網(wǎng)絡(luò)傳輸時(shí)提供的3種模式
(1)流模式(Streammode)。在這種模式下,F(xiàn)TP將文件作為一系列字節(jié)進(jìn)行處理,適用于任何數(shù)據(jù)類型。FTP針對不同的文件結(jié)構(gòu)指明文件的開始和結(jié)尾。
(2)塊模式(Blockmode)。在這種模式下,F(xiàn)TP將文件作為大量塊傳輸,每一個(gè)塊前都有一個(gè)報(bào)頭,包含有塊的大小和描述符。所謂的描述符是用來確定該塊在整個(gè)文件中的位置,指明該塊是不是最后一塊,同時(shí),描述符還有一個(gè)位來描述數(shù)據(jù)是否可靠。
(3)壓縮模式(Compressedmode)。這種模式主要用于提高傳輸?shù)男?,能有效利用網(wǎng)絡(luò)帶寬。4結(jié)束語4.1系統(tǒng)評價(jià)花了比較多的時(shí)間在教師論文管理上進(jìn)行了詳細(xì)的需求分析,對于系統(tǒng)各個(gè)方面的功能有了比較透徹的了解,因此在功能模塊設(shè)計(jì)過程中能夠劃分出層次清晰的功能層次圖。在詳細(xì)功能設(shè)計(jì)中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租房屋管合同
- 2025年新遺產(chǎn)轉(zhuǎn)贈協(xié)議書
- 2025年保健食品研發(fā)機(jī)構(gòu)質(zhì)量監(jiān)督與市場推廣合作合同
- 2025年高效能OEM太陽能光伏組件銷售代理合同模板
- 2025年新醫(yī)院醫(yī)療糾紛協(xié)議書
- 2025年新醫(yī)藥公司聯(lián)合經(jīng)營協(xié)議書
- 電視魔術(shù)道具文化節(jié)目導(dǎo)演合同
- 2025年新醫(yī)科大學(xué)附屬小學(xué)協(xié)議書
- 2025版企業(yè)內(nèi)部辦公用品自助采購服務(wù)合同范本
- 2025版軌道交通鋁合金材料采購合同范本
- 2025年母嬰市場消費(fèi)洞察
- DNA測序技術(shù)及發(fā)展2講課文檔
- 2025年醫(yī)師定期考核試題庫及答案
- 2024年和田地區(qū)高校畢業(yè)生“三支一扶”計(jì)劃真題
- 消防設(shè)施維保投標(biāo)方案(技術(shù)方案)
- 動作經(jīng)濟(jì)原則手邊化POU改善
- 圖文全文解讀2022年發(fā)改委發(fā)布《電力可靠性管理辦法(暫行)》PPT
- 鋼鐵中日材料對照表
- 漣水縣高溝中學(xué)學(xué)生成長導(dǎo)師制《導(dǎo)師工作手冊》(共58頁)
- 脊柱外科??撇轶wppt課件
- QHSE管理體系文件
評論
0/150
提交評論