freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

web服務(wù)器設(shè)計論文畢業(yè)設(shè)計word格式(編輯修改稿)

2025-01-04 11:27 本頁面
 

【文章內(nèi)容簡介】 try……catch 分 《 Web 服務(wù)器設(shè)計 》 a 第 10 頁 共 24 頁 別處理可能出現(xiàn)的異常情況,在第一個 try……catch 異常處理語句中,我們首先創(chuàng)建了一個指定端口的 Socket 對象來監(jiān)聽該端口 ,但是端口必須為整型數(shù)字,若不為整型,則程序?qū)霈F(xiàn)異常 ,然后 為 frame 中的 “Start”按鈕 addHint,故點(diǎn)擊“Start”按鈕將會出現(xiàn):當(dāng)前時間 +erver start on port+IP 地址 +.。接下來運(yùn)用一個匿名內(nèi)部類來建立一個 Thread 線程, 該線程實現(xiàn)的功能為不斷的接收從瀏覽器客戶端發(fā)送的請求。 線程的基本實現(xiàn)方法 為: 1構(gòu)造線程 new; 2啟動線程 Start( );3運(yùn)行線程 run( )。程序中的線程構(gòu)造方法即為基本實現(xiàn)方法,首先構(gòu)造了一個線程,即語句中的 new Thread() {},然后在線程中構(gòu)造一個執(zhí)行線程的代碼塊public void run() {},線程類里面的業(yè)務(wù)邏輯都是在 run 方法中 ,運(yùn)行時會自動調(diào)用此方法 , 在構(gòu)造 run()方法中我們運(yùn)用了一個 try……catch 異常處理機(jī)制,用來處理 線程中將會出現(xiàn)的異常,該方法中用 while(true) 死循環(huán)語句和ServerSocket 對象的 accept()方 法來實現(xiàn)不斷的接收客戶端的請求。最后調(diào)用線程的 .start 方法來啟動線程。 如果以上的方法中的任何一步出現(xiàn)錯誤,即異常, 則由 catch 語句捕捉異常,即執(zhí)行 catch 中的語句。如此就完成了 start 方法的實現(xiàn)。 接下來是編寫 stop 方法,它與 start 方法一樣,同樣采用了一個異常處理機(jī)制,它的 try 語句為 if(serverSocket!=null)// ServerSocket 不為空 ()。//拆除連接 即當(dāng) ServerSocket 不為空(服務(wù)器處于正在執(zhí)行的狀態(tài)中) ,強(qiáng)制關(guān)閉 Web服務(wù)器。在該方法中還采用了一個 finally 語句,即不管是否出現(xiàn)異常情況,都會執(zhí)行該語句。故最后 stop 實現(xiàn)的功能為:關(guān)閉 Web 服務(wù)器,顯示:當(dāng)前時間 + : Server stop.。 接下來是 I/O 接口 實現(xiàn)中最重要的部分, 以多線程實現(xiàn)服務(wù)器與瀏覽器之間的數(shù)據(jù)傳送。 該部分使用 HandlerThread 類繼承 Thread 類的方法,實現(xiàn)多線程的數(shù)據(jù)流傳輸。 在這個多線程的實現(xiàn)中, 同樣的采用了 try……catch……finally 的異常處理機(jī)制來處理能出現(xiàn)的異常情況。 而在多線程的執(zhí)行塊 run() {}中, 采用了字符流的傳輸方法。 字符流的傳輸分為: 獲得文件輸入輸出流;使用轉(zhuǎn)換流將字節(jié)流轉(zhuǎn)為字符流;包裝;讀寫;輸出流清除緩存;關(guān)閉流。 《 Web 服務(wù)器設(shè)計 》 a 第 11 頁 共 24 頁 程序中 in=newBufferedReader(new InputStreamReader(()))。 即完成了文件輸入流的獲取、字節(jié)流向字符流的轉(zhuǎn)換和包裝成加強(qiáng)流, 而 out=new PrintStream(())。 完成了輸出流的獲得 。 接下來是 流的 讀取,即從瀏覽器提交的請求頭部中獲得 想訪問的文件名稱 ,可 以 用 以下代碼段來實現(xiàn)。 //從瀏覽器提交的請求頭部中獲得想訪問的文件名稱 String src=().split( )[1]。 //將瀏覽器想獲得的文件名稱輸出至提示框 (new Date().toLocaleString()+ : Client +hostName+ get file +src+.)。 由于程序中是運(yùn)用的 Get 方法從服務(wù)器上獲得數(shù)據(jù),而 Get 是不安全的,因為在傳輸過程,數(shù)據(jù)被放在請求的 URL 中,數(shù)據(jù)的按照 variable=value 的形式,添加到 action 所指向的 URL 后面,并且兩者使用 “?”連接, 而 “?”后面的數(shù)據(jù)即為用戶的私人數(shù)據(jù),這樣就 使用戶的私人信息變?yōu)榭梢?了 ,這樣是極不安全的,故我們采用了一下語句來彌補(bǔ) Get 語句帶來的安全問題。 /*對瀏覽器想獲得的文件名稱進(jìn)行去除 ?后面內(nèi)容處理 */ //查找字符串 ,一直到 ?為止 int index=(?)。 //取字符串從 0 到 index, 問號后面的就不要了 if(index=0) (0,index)。 接下來是輸出信息,分為輸出響應(yīng)頭部信息和輸出響應(yīng)體部信息。輸出響應(yīng)頭部信息是通過輸出流 ()實現(xiàn)的,之后通過 ()語句來清除緩存。輸出體部信息是通過輸入流來實現(xiàn)的,其主要語句為: fin=new BufferedInputStream(new FileInputStream(srcFile))。 完成了數(shù)據(jù)流是傳輸之后,最后需要關(guān)閉流, 其代碼段為: //瀏覽器和服務(wù)器間交互的輸入流 ,不為空,關(guān)閉流 《 Web 服務(wù)器設(shè)計 》 a 第 12 頁 共 24 頁 if(in!=null)()。 //瀏覽器和服務(wù)器間交 互的輸出流 ,不為空,關(guān)閉流 if(out!=null)()。 //服務(wù)器端文件的輸入流 ,不為空,關(guān)閉流 if(fin!=null)()。 以上就完成了 Web 服務(wù)器與客戶端(瀏覽器)之間的數(shù)據(jù)交換,為了使文件能夠被人識別,我們最后還需要對 html 文件進(jìn)行解析,其代碼段為: public String getContentType(File file) { String fileName=()。 String type=((.))。 String result=null。 if(.gif.equals(type)) result=image/gif。 else if(.html.equals(type)) result=text/html。 else if(.htm.equals(type)) result=text/html。 else if(.txt.equals(type)) result=text/plain。 else if(.xml.equals(type)) result=text/xml。 return result。} 通過這一系列的程序設(shè)計后,最終就完成了 Web 服務(wù)器與瀏覽器之間的通信。 調(diào)用主函數(shù)運(yùn)行 調(diào)用主函數(shù)運(yùn)行后,將出現(xiàn) Web 服務(wù)器界面,這時啟動 Web 服務(wù)器,然后從另一臺連網(wǎng) 的計算機(jī)上打開一個瀏覽器,在地址欄里面輸入 Web 服務(wù)器的Socket 套接字,就可以實現(xiàn) 服務(wù)器與瀏覽器的連接,服務(wù)器中將出現(xiàn)一系列的信息。 結(jié)果分析 《 Web 服務(wù)器設(shè)計 》 a 第 13 頁 共 24 頁 編寫完所有程序后,在主函數(shù)程序中右擊鼠標(biāo),在出現(xiàn)的菜單欄中單擊 Run運(yùn)行,會出現(xiàn)設(shè)計的 Web 服務(wù)器界面,界面中出現(xiàn)一行字: Please click the START button to start web server.。這時單擊 “Start”按鈕,然后從計算機(jī)上打開瀏覽器,在地址欄里面輸入 Web 服務(wù)器的 Socket 套接字,即輸入: 即可實現(xiàn)對本機(jī)的連接,服務(wù)器面板中顯示本機(jī)瀏覽器的連接情況。若從另一臺連網(wǎng)的計算機(jī)上打開一個瀏覽器,在地址欄里面輸入 Web 服務(wù)器的 Socket 套接字,即輸入: Web 服務(wù)器所在主機(jī)的 IP 地址 :8080, 即可實現(xiàn) Web 服務(wù)器與瀏覽器的 連接, Web 服務(wù)器面板中顯示連接的那臺計算機(jī)瀏覽器的連接情況。 如圖 所示,為 Web 服務(wù)器監(jiān)聽本機(jī)瀏覽器的情況。 圖 Web服務(wù)器監(jiān)聽本機(jī)瀏覽器 4 出現(xiàn)的問題及解決方法 本實驗中出現(xiàn)的問題主要有以下幾點(diǎn): ,必須要導(dǎo)入相關(guān)的包。包是 Java 提供的組織類和接口的機(jī)制,是一組相關(guān)類和接口的集合 ,在引用其他包中的類或接口時,在其名前加包名很不方便,為此 Java 提供了導(dǎo)入包中類或接口的機(jī)制。擋 《 Web 服務(wù)器設(shè)計 》 a 第 14 頁 共 24 頁 在一個源程序中使用 import 導(dǎo)入包后,就可以直接引用其中的類或接口了。如果在使用一個 未定義的類或接口時沒有導(dǎo)入包,那么程序中將提示出錯,這是通常只要在程序最開始導(dǎo)入將要使用的接口所屬的包就行了。 ,然后再實例化,最后才能使用。如果未經(jīng)聲明、實例化,那么系統(tǒng)會提示這個變量是不存在的,程序?qū)霈F(xiàn)錯誤。 ,要記得調(diào)用 Thread 的 .start()語句,否則線程是無法運(yùn)行的,程序?qū)⒊霈F(xiàn)錯誤。 Web 服務(wù)器與瀏覽器的連接測試時,要先打開 Web 服務(wù)器,并點(diǎn)擊“ Start”按
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1