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

正文內(nèi)容

web服務(wù)器設(shè)計(jì)論文畢業(yè)設(shè)計(jì)word格式-文庫(kù)吧

2024-11-09 11:27 本頁(yè)面


【正文】 《 Web 服務(wù)器設(shè)計(jì) 》 a 第 5 頁(yè) 共 24 頁(yè) finally{} 其中: try{}:將有可能出 現(xiàn)異常的代碼塊括起來,預(yù)處理。程序運(yùn)行中,如果該塊內(nèi)的代碼沒有出現(xiàn)任何異常,將正常執(zhí)行,后面的各 catch 塊不起任何作用;如果該塊內(nèi)的代碼出現(xiàn)了異常,系統(tǒng)將終止 Try 塊代碼的執(zhí)行,自動(dòng)跳轉(zhuǎn)到所發(fā)生的異常類對(duì)應(yīng)的 catch 塊中,執(zhí)行該塊代碼 。 catch() {}: 出現(xiàn)異常,捕捉處理。一個(gè) try 塊可以對(duì)應(yīng)多個(gè) catch 塊,用于對(duì)多個(gè)異常進(jìn)行捕獲。如果要捕獲的多個(gè)異常之間沒有父子關(guān)系,各類 catch 塊的順序無關(guān)緊要,但如果他們之間有父子關(guān)系,應(yīng)該將子類的 catch 放在父類的catch 之前,即從小到大排列 catch。 finally{}: 無論有沒有異常 ,都會(huì)執(zhí)行 ,當(dāng)沒有出現(xiàn)異常時(shí),先執(zhí)行 try 內(nèi)代碼,再執(zhí)行 finally 代碼 ; 當(dāng)出現(xiàn)異常執(zhí)行完對(duì)應(yīng)異常類的 catch 塊后,再執(zhí)行 finally塊。 一般情況用于資源 (,io)的回收 。 Java 線程 每個(gè) java 程序都有一個(gè)主線程,要實(shí)現(xiàn)多線程,必須在主線程中創(chuàng)建新的線程。 Java 中,線程用 Tread 類及其子類的對(duì)象來表示。每個(gè)線程都要經(jīng)歷新建、運(yùn)行、中斷和死亡四種狀態(tài)。線程的 基本 實(shí)現(xiàn)方法 為: 1構(gòu)造線程 new; 2啟動(dòng)線程 Start( ); 3運(yùn)行線程 run( ),因此我們可以得到一個(gè) Java 線程的 建立及運(yùn)行的 基本結(jié)構(gòu)為: new Thread(){ public void run(){} }.start() 多線程機(jī)制是 Java 語(yǔ)言的又一重要特征,使用多線程技術(shù)可以使系統(tǒng)同時(shí)運(yùn)行多個(gè)執(zhí)行體,這樣可以加快程序的響應(yīng)時(shí)間,提高計(jì)算機(jī)資源的利用率。實(shí)現(xiàn)多線程有兩個(gè)途徑,一種是用 Thread 類的子類創(chuàng)建來實(shí)現(xiàn),另一種是通過實(shí)現(xiàn) Runnable 接口的類來實(shí)現(xiàn)。在本設(shè)計(jì)中是用創(chuàng)建 Thread 類的子類來實(shí)現(xiàn)多線程客戶端與服務(wù)器端的通信的。當(dāng)編寫 Thread 類的子類時(shí),可以在子類中重寫父類的 run 方法,該方法中包含了線程的操作。這樣程序需要建立自己的線程時(shí), 《 Web 服務(wù)器設(shè)計(jì) 》 a 第 6 頁(yè) 共 24 頁(yè) 值需要建立一個(gè)已定義好的 Thread 子類的實(shí)例就可以了。當(dāng)創(chuàng)建的線程調(diào)用 start()方法開始運(yùn)行時(shí), run()方法將被自動(dòng)進(jìn)行 [4]。 流 Java 的輸入 /輸出是以流的方式來處理的,流是在計(jì)算機(jī)輸入、輸出操作中流動(dòng)的數(shù)據(jù)序列。輸入流代表從外設(shè)流入計(jì)算機(jī)的數(shù)據(jù)序列,輸出流代表從計(jì)算機(jī)流向外設(shè)的數(shù)據(jù)序列。流式輸入、輸出的特點(diǎn)是數(shù)據(jù)的獲取和發(fā)送均按數(shù)據(jù)序列進(jìn)行,每一個(gè)數(shù)據(jù)都必須等待排在它前面的數(shù) 據(jù)讀入或送出之后才能被讀寫,每次操作處理的都是序列中剩余的未讀寫數(shù)據(jù)中的第一個(gè),而不能隨意選擇輸入輸出的位置。序列中的數(shù)據(jù)既可以是未經(jīng)加工的原始二進(jìn)制數(shù)據(jù),也可以是按一定編碼處理后符合某種格式規(guī)定的特點(diǎn)數(shù)據(jù),如字符數(shù)據(jù),所以 Java 中的流有位流(字節(jié)流)和字符流之分 [5]。 本次課程設(shè)計(jì)中運(yùn)用的是字符流,而 要實(shí)現(xiàn)字符流的傳輸,其設(shè)計(jì)順序?yàn)椋韩@得文件輸入輸出流;使用轉(zhuǎn)換流將字節(jié)流轉(zhuǎn)為字符流;包裝;讀寫;輸出流清除緩存;關(guān)閉流。 3 設(shè)計(jì)步驟 本次課程設(shè)計(jì)進(jìn)行 Web 服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn),其步驟分為兩大步,先要進(jìn)行用戶圖形界面的設(shè)計(jì)與實(shí)現(xiàn),由于它不是本次設(shè)計(jì)報(bào)告的側(cè)重點(diǎn),故在以下的步驟中只會(huì)稍加說明。而本文的重點(diǎn)在于說明 Web 服務(wù)器 I/O 端口的實(shí)現(xiàn),即Web 服務(wù)器是如何實(shí)現(xiàn)與客戶端(瀏覽器)的連接與數(shù)據(jù)傳輸?shù)模试谙旅鏁?huì)詳細(xì)的說明。 設(shè)計(jì)流程圖 通過分析設(shè)計(jì)任務(wù),本次課程設(shè)計(jì)的大致流程如圖 所示 《 Web 服務(wù)器設(shè)計(jì) 》 a 第 7 頁(yè) 共 24 頁(yè) 圖 Web服務(wù)器設(shè)計(jì)流程圖 創(chuàng)建用戶界面 首先,創(chuàng)建一個(gè)頂級(jí)的容器組件,一般是繼承框架( Frame)的應(yīng)用程序主窗口,它包含邊框 、標(biāo)題欄、控制菜單和內(nèi)容面板的容器 ,以下程序段主要是將組件聲明并且實(shí)例化。 public class WebServerFrame extends JFrame implements ActionListener {private JPanel btnPan = new JPanel(new FlowLayout())。 private JLabel listenPortLb = new JLabel(Server listen port: )。 設(shè)計(jì)圖形界面,并為圖形界面添加監(jiān)聽 聲明一個(gè)圖形界面實(shí)例變量并調(diào)用,引入 Frame(圖形界面)框架 聲明一個(gè) ServerSocket 用一個(gè)線程 Thread和異常處理機(jī)制定義 start 方法 用 一個(gè)異常處理機(jī)制定義 stop 方法 開始 結(jié)束 用一個(gè)多線程繼承 Thread實(shí)現(xiàn)服務(wù)器端與客戶端之間的通信(字符流) 調(diào)用主函數(shù) main 運(yùn)行 《 Web 服務(wù)器設(shè)計(jì) 》 a 第 8 頁(yè) 共 24 頁(yè) …… public WebServerFrame() { initComponent()。 //init 組件 = new WebServerNet(this)。 } } 然后,按指定的布局管理器向容器添加組件,給事件的組件添加事件監(jiān)視器,注冊(cè)事件處理。它分為三部分: 對(duì)圖形用戶界面整體進(jìn)行聲明、實(shí)例化和布局 private void initComponent() {} 對(duì)控制面板內(nèi)的組件進(jìn)行布局和實(shí)現(xiàn)其功能 public void buildBtnPan() {} 對(duì)信息面板內(nèi)的組件進(jìn)行聲明并且實(shí)例化,實(shí)現(xiàn)其功能 public void buildHintPan() {} 最后,對(duì)按鈕的動(dòng)作進(jìn)行設(shè)置,即設(shè)置檔用鼠標(biāo)點(diǎn)擊 Start 和 Clear Hint 按鈕時(shí)將會(huì)出現(xiàn)的狀況。 Web 服務(wù)器用戶界面如圖 所示。 圖 Web服務(wù)器用戶界面 I/O 接口的實(shí)現(xiàn) 《 Web 服務(wù)器設(shè)計(jì) 》 a 第 9 頁(yè) 共 24 頁(yè) 本次課程設(shè)計(jì)報(bào)告主要是描述 I/O 接口的實(shí)現(xiàn),即 Web 服務(wù)器是如何實(shí)現(xiàn)與客戶端(瀏覽器)的連接與數(shù)據(jù)傳輸?shù)?。在編程時(shí) ,我們首先第一步是要聲明將要用到的實(shí)例變量,由于我們需要把設(shè)計(jì)的兩大部分即用戶界面部分和 I/O 接口部分聯(lián)系起來,故需要聲明一個(gè)代表用戶界面的事例變量 frame,并引入WebServerFrame 框架。同時(shí),由于我們要實(shí)現(xiàn)通信,故需要聲明一個(gè)服務(wù)器端的 ServerSocket 對(duì)象,創(chuàng)建一個(gè) ServerSocket 對(duì)象就創(chuàng)建了一個(gè)監(jiān)聽,用來監(jiān)聽客戶端(瀏覽器)的請(qǐng)求。其代碼段為: private WebServerFrame frame。 //聲明一個(gè) frame 事例變量 private ServerSocket serverSocket。//聲明一個(gè)服務(wù)器端 ServerSocket 對(duì)象 public WebServerNet(WebServerFrame frame) //引入 Frame 框架 {=frame。} 進(jìn)行完變量的聲明后我們就要開始對(duì)相關(guān)的方法進(jìn)行編寫了。首先編寫的是start 方法, 即用鼠標(biāo)點(diǎn)擊 “Start”按鈕后將會(huì)實(shí)現(xiàn)的功能。在編寫的 start 方法中,我們運(yùn)用了異常處理機(jī)制和線程。 其程序段如下所示: public void start(String port){ try {serverSocket=new ServerSocket((port))。 (new Date().toLocaleString()+ : Server start on port +port+.)。 new Thread()//匿名內(nèi)部類 ,構(gòu)造線程 { public void run() {//運(yùn)行線程 try{while(true)//無限循環(huán) {Socket socket=()。//隨時(shí)監(jiān)聽 客戶端請(qǐng)求 new HandlerThread(socket).start()。 } } catch (Exception e) {(frame, ())。} }}.start()。} //啟動(dòng)線程 catch (Exception e) {(frame, ())。}} 從以上的程序段中我們可以看出 ,實(shí)現(xiàn) start 方法運(yùn)用了兩個(gè)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1