• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Web服務(wù)器和瀏覽器的設(shè)計與實現(xiàn)

    2009-04-29 00:00:00張永杰
    電腦知識與技術(shù) 2009年36期

    摘要:本課題是Web服務(wù)器和瀏覽器的設(shè)計與實現(xiàn)。該文基于C/S架構(gòu),按照軟件工程基本原理和方法,綜合運用UML建模技術(shù)、計算機網(wǎng)絡(luò)技術(shù)進行系統(tǒng)設(shè)計,并用Java語言和Eclipse開發(fā)工具實現(xiàn)該系統(tǒng)。系統(tǒng)分為客戶端和服務(wù)器端,其中客戶端即瀏覽器,具有獲取并顯示服務(wù)器端的網(wǎng)頁、查看源代碼以及存儲網(wǎng)頁等基本功能;服務(wù)器端則提供Web服務(wù)。瀏覽器和服務(wù)器之間通過請求和響應(yīng)方式交換網(wǎng)頁,網(wǎng)頁由報文組成,報文的規(guī)則由HTTP協(xié)議定義。文中具體闡述了Web服務(wù)器和瀏覽器的技術(shù)背景及其詳細(xì)設(shè)計與實現(xiàn)。

    關(guān)鍵詞:Web服務(wù)器;瀏覽器;C/S架構(gòu);Java

    中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)36-10283-05

    隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,信息化進程的加快,準(zhǔn)確、快速地獲取Internet上提供的資源已成為人們普遍關(guān)注的問題。目前比較常用的Web瀏覽器是微軟公司開發(fā)的IE,它能方便地查看源文件、清除歷史記錄、設(shè)置安全等級以及設(shè)置代理服務(wù)器等。

    1.1 研究背景

    WWW服務(wù),也稱Web服務(wù)。它是一種交互式圖形界面的Internet服務(wù),具有強大的信息連接功能,它使得用戶通過簡單的圖形界面就可以訪問各個大學(xué)、組織和公司等的最新信息和各種服務(wù)。

    1.2 可行性分析

    1.2.1 技術(shù)可行性

    使用Eclipse作為開發(fā)的平臺,Java作為開發(fā)語言。在Java 1.2中,SUN公司推出的新的用戶界面庫java.swing包,相比較AWT來說,功能更強大,使用更方便。而且java.swing中的類完全是由Java語言編寫的[1]。

    1.2.2 經(jīng)濟可行性

    本系統(tǒng)的開發(fā)需要耗費一定的人力和時間,而且在短時間里開發(fā)出來的系統(tǒng)可能離具體產(chǎn)生效益還有一定的差距,因為市場上的瀏覽器已經(jīng)非常成熟并且功能強大。但是,一些個性化的瀏覽器,或一些有定制功能的瀏覽器,仍很具吸引力。因此從長遠(yuǎn)利益來考慮,本課題的設(shè)計開發(fā)是具有較大的經(jīng)濟可行性的。

    2 技術(shù)分析

    2.1 Java

    Java語言是一個面向?qū)ο蟮恼Z言。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制[1]。本系統(tǒng)使用Java語言開發(fā)。

    2.2 Eclipse

    本系統(tǒng)使用Eclipse作為開發(fā)平臺。

    Eclipse[2]是一種可擴展的開放源代碼IDE。Eclipse允許在同一IDE中集成來自不同供應(yīng)商的工具,并實現(xiàn)了工具之間的互操作性,從而顯著改變了項目工作流程,使開發(fā)者可以專注在實際的嵌入式目標(biāo)上。

    2.3 C/S結(jié)構(gòu)

    所謂C/S結(jié)構(gòu),是將數(shù)據(jù)存取與應(yīng)用程序分離開來,把一個軟件系統(tǒng)或應(yīng)用系統(tǒng)按功能分成若干個部分,再將這些軟件的組成部分按其不同的角色分成Client軟件和Server軟件,分別放置在客戶機和服務(wù)器上。

    2.4 HTTP協(xié)議

    HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議)是Internet的應(yīng)用層協(xié)議。HTTP通過兩個程序?qū)崿F(xiàn):一個是客戶端程序(一般稱為瀏覽器),另一個是服務(wù)器程序(通常稱為Web服務(wù)器)。兩者通常運行在不同的主機上,并通過交換HTTP報文來產(chǎn)生網(wǎng)頁請求和響應(yīng)。

    2.5 UML

    UML(Unified Modeling Language,統(tǒng)一建模語言)[3]是用來對軟件密集系統(tǒng)進行可視化建模的一種語言。UML是一種定義良好、易于表達(dá)、功能強大且普遍適用的建模語言。它溶入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。

    3 系統(tǒng)需求分析

    本系統(tǒng)分為瀏覽器和Web服務(wù)器兩部分,根據(jù)UML建模技術(shù)將瀏覽器分為三個用例,即建立連接、獲取服務(wù)及斷開連接;Web服務(wù)器也分為三個用例,即允許建立連接、提供服務(wù)及允許斷開連接。

    瀏覽器用例圖如圖1所示。Web服務(wù)器用例圖如圖2所示。圖1及圖2描述了系統(tǒng)總體需求,下面具體介紹各子用例。

    3.1 建立連接

    功能說明:通過網(wǎng)絡(luò)連接到一個Web服務(wù)器。

    基本條件:有正常的網(wǎng)絡(luò)連接,有可用的Web服務(wù)器,HTTP的相關(guān)設(shè)置正確。

    基本過程:a) 輸入Web服務(wù)器的信息;b) 用戶發(fā)出建立或連接Web服務(wù)器的請求;c) 連接到指定的Web服務(wù)器。

    替代過程:c) 連接失敗,將失敗信息返回給用戶;d) 提示用戶重試。

    3.2 獲取服務(wù)

    功能說明:用戶獲取遠(yuǎn)端的Web服務(wù)器提供的服務(wù)。

    基本條件:已經(jīng)連接到Web服務(wù)器。

    基本過程:a) 用戶提交獲得服務(wù)請求;b) 將請求命令提交給Web服務(wù)器;c) 從Web服務(wù)器獲取服務(wù)的內(nèi)容;d) 將獲取的內(nèi)容顯示給用戶。

    替代過程(一):b) 若沒有建立連接,提醒用戶先建立連接。

    替代過程(二):c) 獲取所需的服務(wù)失敗;d) 提示用戶失敗信息。

    3.3 斷開連接

    功能說明:離開當(dāng)前已經(jīng)連接的Web服務(wù)器。

    基本條件:有正常的網(wǎng)絡(luò)連接,已經(jīng)和一個遠(yuǎn)端Web服務(wù)器建立連接,HTTP的相關(guān)設(shè)置正確。

    基本過程:a) 用戶發(fā)送斷開連接的請求;b) 將用戶請求發(fā)送到Web服務(wù)器;c) 停止從Web服務(wù)器獲取服務(wù);d) 斷開和Web服務(wù)器的連接。

    替代過程(一):d) 斷開連接失敗,提示用戶失敗信息。

    替代過程(二):b) 發(fā)送請求失敗,提示用戶重試。

    3.4 允許建立連接

    功能說明:允許用戶連接到當(dāng)前的Web服務(wù)器。

    基本條件:有正常的網(wǎng)絡(luò)連接,Web服務(wù)器已經(jīng)開啟服務(wù),HTTP的相關(guān)設(shè)置正確,遠(yuǎn)端用戶提交連接請求。

    基本過程:a) 等待遠(yuǎn)端用戶發(fā)出建立連接的請求;b) 獲取遠(yuǎn)端用戶發(fā)送的連接請求;c) 允許該用戶連接到當(dāng)前的Web服務(wù)器。

    替代過程(一):b) 若用戶信息不符合設(shè)置,發(fā)送拒絕信息到遠(yuǎn)端用戶;c) 拒絕建立連接。

    替代過程(二):c) 若建立連接失敗,顯示失敗信息。

    3.5 提供服務(wù)

    功能說明:向遠(yuǎn)端用戶提供的所請求的服務(wù)。

    基本條件:已經(jīng)和遠(yuǎn)端用戶建立連接,遠(yuǎn)端用戶有獲取服務(wù)的請求。

    基本過程:a) 獲得遠(yuǎn)端用戶提出的服務(wù)請求;b) 解析獲取的服務(wù)請求的信息;c) 將服務(wù)的內(nèi)容提供給遠(yuǎn)端用戶;d) 等待用戶新的請求。

    替代過程(一):b) 若無法解析請求的信息,等待新的請求。

    替代過程(二):c) 發(fā)送服務(wù)內(nèi)容的操作失敗;d) 未超過最大重發(fā)次數(shù),重新嘗試發(fā)送,執(zhí)行c);e) 等待新的請求。

    3.6 允許斷開連接

    功能說明:服務(wù)器斷開和所請求的用戶的連接。

    基本條件:有正常的網(wǎng)絡(luò)連接,收到已經(jīng)建立連接的遠(yuǎn)端用戶的斷開連接的請求,HTTP的相關(guān)設(shè)置正確。

    基本過程:a) 獲取遠(yuǎn)端用戶發(fā)送的斷開連接的請求;b) 終止對該用戶提供的服務(wù);c) 斷開和該用戶建立的連接。

    替代過程(一):c) 斷開連接失敗,重試。

    替代過程(二):b) 終止服務(wù)失敗,等待服務(wù)結(jié)束;c) 斷開和該用戶的連接。

    4 系統(tǒng)概要設(shè)計

    從需求分析中,我們可以獲取各用例的對象。服務(wù)器沒有用戶界面,作為后臺服務(wù)進程啟動;瀏覽器具有用戶界面,其對象圖如圖3所示。

    圖3中表示邊界對象,它的作用是作為與外界聯(lián)系的媒介。所有系統(tǒng)外部對象必須通過邊界對象才能聯(lián)系系統(tǒng)內(nèi)部對象。

    表示實體對象,它是應(yīng)用中的核心部件,通常貫穿于整個生存周期。

    表示控制對象,它調(diào)控實體對象和邊界對象之間的關(guān)系。

    4.1 對象的靜態(tài)關(guān)系

    4.1.1 建立連接

    “建立連接”子用例的協(xié)作圖如圖4所示。

    圖4表明了建立連接用例中各對象之間的關(guān)系:用戶向“連接界面”請求連接,“連接界面”向“響應(yīng)處理”發(fā)送“服務(wù)器信息”,“響應(yīng)處理”向“建立連接”“服務(wù)器信息”,“建立連接”向“獲取服務(wù)”發(fā)送“啟動”命令,并向“連接界面”發(fā)送“連接建立”,“連接界面”向用戶反饋“連接建立”。

    4.1.2 獲取服務(wù)

    “獲取服務(wù)”子用例的協(xié)作圖如圖5所示。

    圖5描述的對象關(guān)系如下:用戶向“服務(wù)界面”請求服務(wù),“服務(wù)界面”向“響應(yīng)處理”發(fā)送“請求服務(wù)”,“響處理”向“獲取服務(wù)”發(fā)送“請求服務(wù)”,“獲取服務(wù)”向“服務(wù)界面”發(fā)送“服務(wù)內(nèi)容”,“服務(wù)界面”向用戶發(fā)送“服務(wù)內(nèi)容”。

    4.1.3 斷開連接

    “斷開連接”子用例的協(xié)作圖如圖6所示。

    圖6清楚地表示了斷開連接用例中各對象之間的關(guān)系:用戶向“斷開界面”請求斷開,“斷開界面”向“響應(yīng)處理”發(fā)送“服務(wù)器信息”,“響應(yīng)處理”向“斷開連接”“服務(wù)器信息”,“斷開連接”向“斷開服務(wù)”發(fā)送“斷開”命令,并向“連接界面”發(fā)送“連接建立”,“連接界面”向用戶反饋“連接建立”。

    4.2 對象的動態(tài)關(guān)系

    4.2.1 建立連接

    “建立連接”子用例的序列圖如圖7所示。

    該序列圖通過對象之間的交互,描述了它們的動態(tài)關(guān)系如下:

    在整個應(yīng)用開始時,程序尚未啟動,此時,只有“用戶”對象。

    “用戶”通過“請求下載和鏈接消息”來啟動程序,使得“連接界面”對象開始了它的生存周期。

    “連接界面”發(fā)送“請求連接”給“響應(yīng)處理”,使得后者開始其生存周期。

    “響應(yīng)處理”發(fā)送“請求連接”給“建立連接”,使得后者開始其生存周期。

    “建立連接”創(chuàng)建“獲取服務(wù)”并發(fā)送“建立連接”,使得后者的生存周期。

    “連接界面”告知用戶“連接建立”。

    4.2.2 獲取服務(wù)

    “獲取服務(wù)”子用例的序列圖如圖8所示。

    該序列圖通過對象之間的交互,描述了它們的動態(tài)關(guān)系如下:

    “用戶”通過“請求服務(wù)”來啟動程序,使得“服務(wù)界面”對象開始了它的生存周期。

    “服務(wù)界面”發(fā)送“請求服務(wù)”給“響應(yīng)處理”,使得后者開始其生存周期。

    “響應(yīng)處理”發(fā)送“請求服務(wù)”給“獲取服務(wù)”,使得后者開始其生存周期。

    “建立連接”發(fā)送“服務(wù)內(nèi)容”給“連接界面”。

    4.2.3 斷開連接

    “斷開連接”子用例的序列圖如圖9所示。

    該序列圖通過對象之間的交互,描述了它們的動態(tài)關(guān)系如下:

    在整個應(yīng)用開始時,程序尚未啟動,此時,只有“用戶”對象。

    “用戶”通過“請求斷開消息”來斷開程序,使得“斷開界面”對象開始了它的生存周期。

    “斷開界面”發(fā)送“請求斷開”給“響應(yīng)處理”,使得后者開始其生存周期。

    “響應(yīng)處理”發(fā)送“請求斷開”給“斷開連接”,使得后者開始其生存周期。

    “斷開連接”創(chuàng)建“斷開服務(wù)”并發(fā)送“斷開連接”,使得后者的生存周期。

    “斷開界面”告知用戶“連接斷開”。

    5 系統(tǒng)詳細(xì)設(shè)計

    5.1 界面設(shè)計

    界面設(shè)計圖如圖10所示。

    5.2 功能設(shè)計

    Web瀏覽器的主體框架類為WebBrowser類,實現(xiàn)框架上各個組件的事件監(jiān)聽。主要包括4個模塊:圖形用戶界面的構(gòu)建、組件監(jiān)聽接口的實現(xiàn)、文件保存功能的實現(xiàn)以及查看源代碼框架的生成。其類圖如圖11所示。

    在圖11中:

    1) JToolBar、JTextField、JMenuBar、JMenu、JMenuItem等都是和界面有關(guān)的屬性。

    2) actionPerformed(ActionEvent e):void是用來實現(xiàn)監(jiān)聽器接口的actionPerformed函數(shù)。

    3) saveFile(final String url):void是用來保存文件的。

    4) getHtmlSource(String url):void是用來獲得源代碼的。

    5) hyperlinkUpdate(HyperlinkEvent e):void是實現(xiàn)超鏈接事件監(jiān)聽器接口的hyperlinkUpdate方法。

    6) main(String [] args):void生成一個IE對象,是程序的入口。

    在這個核心類中將分別實現(xiàn)在系統(tǒng)總體結(jié)構(gòu)設(shè)計中各個功能模塊。

    ViewSourceFrame類的主要功能是實現(xiàn)了源文件查看的主體框架,并實現(xiàn)了源文件的保存功能。主要包括兩個模塊:圖形用戶界面的構(gòu)建;組件監(jiān)聽接口的實現(xiàn)。其類圖如圖12所示。

    1) JPanel contentPane、JButton、JScrollPane、JTextArea等都是和界面有關(guān)的屬性。

    2) actionPerformed(ActionEvent e):void是實現(xiàn)動作事件監(jiān)聽器接口的actionPerformed方法。

    服務(wù)器端設(shè)計成Dos程序界面,在后臺運行,提供服務(wù)。

    1) ConnnectionThread類完成與一個Web瀏覽器的通信。

    2) boolean getrequest(String s)判斷請求類型是否為“GET”。

    3) String getfilename(String s)獲取要訪問的文件名。

    4) void sendfile(PrintStream outs, File file)將指定文件發(fā)送給Web瀏覽器。

    5.2.1 瀏覽器建立連接

    瀏覽器建立連接的實現(xiàn)過程:用actionPerformed()方法響應(yīng)ActionEvent事件來建立連接。

    1) 在地址欄輸入地址后點擊轉(zhuǎn)向按鈕,e.getSource() = button,url = jurl.getText()就獲得地址欄的內(nèi)容。

    2) 如果url不為空,并且以“http://”開頭,JEditorPane組件將顯示url的內(nèi)容鏈接,并將url的內(nèi)容添加到ArrayList型對象history中,設(shè)置historyIndex的值,重新布局,調(diào)用jEditorPane1.revalidate()。

    3) 如果鏈接顯示失敗,則彈出選擇對話框“無法打開該搜索頁”,調(diào)用JOptionPane.showMessageDialog (WebBrowser.this,\"無法打開該搜索頁\",\"網(wǎng)頁瀏覽器\",JOptionPane.ERROR_MESSAGE)。

    4) 如果url不為空,并且不以“http://”開頭,url=“http://”+url,即自動在url前面添加“http://”。

    如果鏈接顯示失敗,則重復(fù)c步驟的操作。

    5) 如果沒有輸入url,即url為空,輸出提示:JOptionPane.showMessageDialog (WebBrowser.this,\"請輸入鏈接地址\",\"瀏覽器\",JOptionPane.ERROR_MESSAGE)。

    5.2.2瀏覽器獲取服務(wù)

    瀏覽器獲取服務(wù)的實現(xiàn)過程:用hyperlinkUpdate()方法響應(yīng)HyperlinkEvent事件來獲取所需的服務(wù)。

    1) 如果e.getEventType() == HyperlinkEvent.EventType.ACTIVATED,則激活該類型,調(diào)用jEditorPane1.setPage(e.getURL())獲取服務(wù)。

    2) 在過程中若出現(xiàn)錯誤,則將錯誤顯示ex.printStackTrace(System.err)。

    5.2.3 瀏覽器斷開連接

    瀏覽器斷開連接的實現(xiàn)過程:用Process windowEvent()方法響應(yīng)WindowEvent事件執(zhí)行斷開連接的操作,并關(guān)閉窗體。

    首先獲取ID,如果getID()==WindowEvent.WINDOW_CLOSING)則System.exit(0),則關(guān)閉窗口。

    5.2.4 服務(wù)器端允許建立連接

    服務(wù)器端允許建立連接的實現(xiàn)過程:

    1) 定義端口號為PORT=8080,ServerSocket server=1;Socket client=1;初始化客戶端和服務(wù)器端的套接字。服務(wù)器套接字等待請求通過網(wǎng)絡(luò)傳入,它基于該請求執(zhí)行某些操作,然后可能向請求者返回結(jié)果。

    2) 定義一個try方法,接受客戶機的連接請求,client=server.accept()。

    3) catch方法進行異常捕捉,在將錯誤顯示出來System.out.println(e)。

    4) 定義一個ConnnectionThread類完成與一個Web瀏覽器的通信。

    5) 連接Web瀏覽器的套接字,Socket client。并定義一個計數(shù)器counter。

    5.2.5服務(wù)器端提供服務(wù)

    服務(wù)器端提供服務(wù)的實現(xiàn)過程:

    1) 構(gòu)造線程體run,用try方法獲取客戶機IP地址和端口號。

    2) inline=instream.readLine(),讀取Web瀏覽器提交的請求信息。

    3) 如果是GET請求,filename=getfilename(inline)。

    4) 若文件存在,則將文件送給Web瀏覽器System.out.println(filename+\" requested.\")。

    5) 發(fā)送文件,sendfile(outstream, file)。

    6) 若文件不存在,outstream.println(\"HTTP/1.0 404 no found\")。

    7) instream.close(),outstream.close()關(guān)閉輸入輸出流。

    8) 若IOException e發(fā)生異常,則用catch方法捕捉異常。

    5.2.6 服務(wù)器端斷開連接

    服務(wù)器端斷開連接的實現(xiàn)過程:調(diào)用outs.flush()方法刷新緩沖的輸出流,in.close()斷開服務(wù)器連接。

    6 運行流程及說明

    6.1 瀏覽器初始界面

    運行瀏覽器程序后,將會出現(xiàn)初始的界面.

    6.1.1 界面說明

    地址:輸入IP地址。

    轉(zhuǎn)向:點擊轉(zhuǎn)向地址欄中輸入的IP地址,也可以用回車鍵代替。

    另存為:把當(dāng)前頁面保存下來。

    后退:退回上一個瀏覽的頁面。

    前進:前進到之后的一個瀏覽頁面。

    查看源代碼:查看當(dāng)前頁面的源代碼。

    退出:退出瀏覽器。

    6.1.2 創(chuàng)建瀏覽器界面代碼說明

    在WebBrowser類中創(chuàng)建瀏覽器界面和各菜單欄,包括:地址欄、網(wǎng)頁顯示界面、菜單欄、菜單組、菜單項、工具欄、工具欄中的按鈕組件等。部分代碼如下:

    JButton picSave = new JButton(\"另存為\");

    JButton picBack = new JButton(\"后退\");

    JButton picForward = new JButton(\"前進\");

    JButton picView = new JButton(\"查看源代碼\");

    JButton picExit = new JButton(\"退出\");

    JLabel label=new JLabel(\"地址\");

    JButton button=new JButton(\"轉(zhuǎn)向\");

    6.2 連接服務(wù)器界面

    輸入IP地址后按回車鍵就會顯示相應(yīng)的頁面,這表明連接成功。

    在轉(zhuǎn)向按鈕上增加監(jiān)聽器,觸發(fā)執(zhí)行相關(guān)操作,通過填寫輸入,輸出端口的文本區(qū)獲取端口號,定義一個public void actionPerformed(ActionEvent e)方法進行事件偵聽,分析地址欄內(nèi)的內(nèi)容,若e.getSource() == jurl,url=jurl.getText ();獲取地址欄的內(nèi)容。將url的內(nèi)容添加到ArrayList型對象history中,設(shè)置historyIndex的值,重新布局,用catch()方法獲取異常捕捉。具體代碼如下:

    public void actionPerformed(ActionEvent e) {

    String url = \"\";

    if (e.getSource() == button){

    url=jurl.getText ();

    if(url.length ()>0url.startsWith (\"http://\")){

    try { jEditorPane1.setPage (url);

    history.add(url);

    historyIndex=history.size()-1;

    jEditorPane1.setEditable(1); //add by copy editor :)

    jEditorPane1.revalidate ();

    }

    catch(Exception ex) {

    JOptionPane.showMessageDialog (WebBrowser.this,\"無法打開該搜索頁\",\"網(wǎng)頁瀏覽器\",JOptionPane.ERROR_MESSAGE);}}

    // 轉(zhuǎn)向按鈕相關(guān)操作結(jié)束

    6.3 查看源代碼界面

    在點擊查看源代碼按鈕后,根據(jù)url,獲得源代碼,生成顯示源代碼的框架對象,并用public ViewSourceFrame (String htmlSource)方法初始化圖形界面,用setBounds方法設(shè)置窗口大小,設(shè)置setVisible屬性為true。

    if (e.getSource() == sourceItem ||e.getSource() == picView){

    url = jurl.getText ().toString ().trim ();

    if(url.length ()>0!url.startsWith (\"http://\")) {

    url=\"http://\"+url; }

    if( !url.equals (\"\")) {

    getHtmlSource (url);

    ViewSourceFrame vsframe = new ViewSourceFrame (htmlSource);

    vsframe.setBounds (0,0,800,500);

    vsframe.setVisible(true); }

    else { JOptionPane.showMessageDialog (WebBrowser.this,\"請輸入鏈接地址\",\"網(wǎng)頁瀏覽器\",JOptionPane.ERROR_MESSAGE);}}

    6.3 保存網(wǎng)頁界面

    在點擊另存為按鈕后,根據(jù)當(dāng)前頁面,用saveFile()方法將頁面信息保存下來。相關(guān)代碼如下:

    if (e.getSource() == picSave||e.getSource() == saveAsItem){

    url = jurl.getText ().toString ().trim();

    if(url.length ()>0!url.startsWith (\"http://\")) {

    url=\"http://\"+url; }

    if(!url.equals (\"\")) {

    saveFile(url);}

    else {

    JOptionPane.showMessageDialog (WebBrowser.this,\"請輸入鏈接地址\",\"網(wǎng)頁瀏覽器\",JOptionPane.ERROR_MESSAGE);}}

    //另存為的代碼結(jié)束

    7 結(jié)束語

    經(jīng)過一段時間的設(shè)計和開發(fā),Web服務(wù)器及瀏覽器終于完成,其基本功能已實現(xiàn),瀏覽器能夠訪問Web服務(wù)器,通過輸入正確的URL獲取超文本并顯示,同時可以查看源代碼并保存頁面;服務(wù)器能夠提供Web服務(wù)。

    但是由于多方面因素的影響,設(shè)計完成略顯倉促,這也導(dǎo)致該系統(tǒng)還有許多不盡如人意的地方,比如用戶界面不夠美觀,刷新網(wǎng)頁、收藏網(wǎng)頁等功能未實現(xiàn),出錯處理也考慮不周,這些都有待進一步改善。

    要完成好這項工作必須在掌握必備的理論知識前提下,不斷實踐,積累經(jīng)驗,提高分析問題和解決問題的能力。

    參考文獻(xiàn):

    [1] 馮博,應(yīng)群.面向?qū)ο蟮腏ava網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2004.

    [2] 張大治,應(yīng)群.精通Eclipse[M].北京:清華大學(xué)出版社,2006.

    [3] 董蘭芳.UML課程設(shè)計[M].北京:機械工業(yè)出版社,2005.

    [4] Tanenbaum A S.計算機網(wǎng)絡(luò)[M].潘愛民,譯.4版.北京:清華大學(xué)出版社,2004.

    久久影院123| 一夜夜www| 激情在线观看视频在线高清| 亚洲精品国产一区二区精华液| 中文字幕人妻丝袜制服| 村上凉子中文字幕在线| 欧美日韩av久久| 久久影院123| 精品欧美一区二区三区在线| 国产av精品麻豆| 美女高潮喷水抽搐中文字幕| 日本欧美视频一区| 国产高清视频在线播放一区| 欧美最黄视频在线播放免费 | 久久中文字幕一级| 亚洲视频免费观看视频| 日韩 欧美 亚洲 中文字幕| 欧美成人午夜精品| 日韩国内少妇激情av| 在线国产一区二区在线| 欧美最黄视频在线播放免费 | 免费在线观看黄色视频的| 欧美午夜高清在线| 午夜福利欧美成人| 亚洲自拍偷在线| 午夜精品国产一区二区电影| 精品第一国产精品| 美女 人体艺术 gogo| 日韩欧美免费精品| 女生性感内裤真人,穿戴方法视频| 在线永久观看黄色视频| 国产蜜桃级精品一区二区三区| av视频免费观看在线观看| 日韩精品青青久久久久久| 免费在线观看视频国产中文字幕亚洲| 男男h啪啪无遮挡| 国产国语露脸激情在线看| 男女之事视频高清在线观看| 亚洲av电影在线进入| 香蕉丝袜av| 少妇裸体淫交视频免费看高清 | 精品国产乱子伦一区二区三区| 黄色丝袜av网址大全| 久久人人爽av亚洲精品天堂| 亚洲七黄色美女视频| 深夜精品福利| 一级a爱片免费观看的视频| 欧美亚洲日本最大视频资源| 亚洲欧美精品综合久久99| 大香蕉久久成人网| 成人亚洲精品一区在线观看| 国产精品乱码一区二三区的特点 | 如日韩欧美国产精品一区二区三区| 国产日韩一区二区三区精品不卡| 在线观看午夜福利视频| videosex国产| av欧美777| 天天躁夜夜躁狠狠躁躁| 久久精品亚洲熟妇少妇任你| 欧美 亚洲 国产 日韩一| 国产伦一二天堂av在线观看| 免费av中文字幕在线| 一级作爱视频免费观看| 午夜亚洲福利在线播放| 日本精品一区二区三区蜜桃| 欧美日本亚洲视频在线播放| 国产视频一区二区在线看| 国产免费男女视频| 桃色一区二区三区在线观看| 桃红色精品国产亚洲av| 99在线视频只有这里精品首页| 免费在线观看亚洲国产| 中文字幕色久视频| 一区在线观看完整版| 亚洲av电影在线进入| 欧美激情极品国产一区二区三区| 99热只有精品国产| 亚洲中文av在线| 亚洲av电影在线进入| 国产伦人伦偷精品视频| 成年人免费黄色播放视频| 美女高潮喷水抽搐中文字幕| 亚洲精品美女久久av网站| 成在线人永久免费视频| 欧美日韩亚洲综合一区二区三区_| 少妇被粗大的猛进出69影院| 日本黄色视频三级网站网址| 欧美日韩精品网址| 亚洲精品一卡2卡三卡4卡5卡| 久久精品91蜜桃| 亚洲av成人不卡在线观看播放网| 麻豆久久精品国产亚洲av | 在线视频色国产色| 新久久久久国产一级毛片| 亚洲欧美日韩无卡精品| 国产av一区二区精品久久| 精品乱码久久久久久99久播| 亚洲精品美女久久久久99蜜臀| 五月开心婷婷网| 亚洲av美国av| 午夜福利一区二区在线看| 久久精品aⅴ一区二区三区四区| 成人三级黄色视频| 国产又色又爽无遮挡免费看| 婷婷六月久久综合丁香| 久久久水蜜桃国产精品网| 日本精品一区二区三区蜜桃| 无遮挡黄片免费观看| 亚洲欧美精品综合一区二区三区| 色婷婷久久久亚洲欧美| 在线观看www视频免费| 国产99白浆流出| 亚洲欧美精品综合一区二区三区| 看片在线看免费视频| 两个人看的免费小视频| 国产精品久久电影中文字幕| 中文字幕色久视频| 亚洲成国产人片在线观看| 美女 人体艺术 gogo| 国产成人av教育| 国产成人一区二区三区免费视频网站| av福利片在线| 欧美成人免费av一区二区三区| 在线播放国产精品三级| 亚洲欧美精品综合久久99| 国产国语露脸激情在线看| 午夜精品在线福利| 这个男人来自地球电影免费观看| 一夜夜www| 久久中文字幕一级| 露出奶头的视频| 久久香蕉国产精品| 亚洲成人国产一区在线观看| 午夜视频精品福利| 动漫黄色视频在线观看| 亚洲色图av天堂| 日韩免费高清中文字幕av| 亚洲av片天天在线观看| 国产激情欧美一区二区| 50天的宝宝边吃奶边哭怎么回事| 级片在线观看| 男女高潮啪啪啪动态图| 成熟少妇高潮喷水视频| 国产单亲对白刺激| 99久久精品国产亚洲精品| 欧美日韩福利视频一区二区| 成人黄色视频免费在线看| 黄色女人牲交| 国产主播在线观看一区二区| 亚洲男人天堂网一区| 91成年电影在线观看| 欧美黄色片欧美黄色片| 国产成年人精品一区二区 | 久久精品国产99精品国产亚洲性色 | 精品一区二区三区四区五区乱码| 三级毛片av免费| 国产伦人伦偷精品视频| av片东京热男人的天堂| 久久国产亚洲av麻豆专区| 日韩免费av在线播放| 亚洲第一青青草原| 丝袜人妻中文字幕| 免费av中文字幕在线| 一二三四在线观看免费中文在| 免费看a级黄色片| 大陆偷拍与自拍| 国产精品成人在线| 久久伊人香网站| 国产精品电影一区二区三区| 又黄又粗又硬又大视频| 新久久久久国产一级毛片| 欧美黑人欧美精品刺激| 99精国产麻豆久久婷婷| 三级毛片av免费| 亚洲国产中文字幕在线视频| 人人澡人人妻人| 色综合婷婷激情| 久久国产精品影院| 免费少妇av软件| 欧美激情高清一区二区三区| 欧美日韩一级在线毛片| 国产高清videossex| 美女福利国产在线| 又黄又爽又免费观看的视频| 国产精品综合久久久久久久免费 | av国产精品久久久久影院| 黄网站色视频无遮挡免费观看| 国产一区在线观看成人免费| 国产一区二区激情短视频| 香蕉国产在线看| www.熟女人妻精品国产| 在线十欧美十亚洲十日本专区| 新久久久久国产一级毛片| 99热只有精品国产| 免费搜索国产男女视频| 亚洲成国产人片在线观看| 亚洲一区二区三区不卡视频| 老司机靠b影院| 欧美午夜高清在线| 黄色视频,在线免费观看| 别揉我奶头~嗯~啊~动态视频| 十分钟在线观看高清视频www| 久久伊人香网站| 亚洲av片天天在线观看| 一本综合久久免费| 一本大道久久a久久精品| 亚洲三区欧美一区| 另类亚洲欧美激情| 久久中文字幕人妻熟女| 免费不卡黄色视频| 亚洲午夜理论影院| 久久婷婷成人综合色麻豆| 精品一品国产午夜福利视频| 国产亚洲欧美在线一区二区| 大香蕉久久成人网| 亚洲男人的天堂狠狠| 热re99久久国产66热| 在线观看www视频免费| 国产av一区二区精品久久| 日韩视频一区二区在线观看| 高清毛片免费观看视频网站 | 又黄又爽又免费观看的视频| 日韩精品青青久久久久久| 久热这里只有精品99| 91精品三级在线观看| a级毛片在线看网站| 国产区一区二久久| 久久热在线av| 女人爽到高潮嗷嗷叫在线视频| 美女国产高潮福利片在线看| 日韩免费av在线播放| 久久亚洲精品不卡| 久久久久久久午夜电影 | 无限看片的www在线观看| 激情视频va一区二区三区| 国产成人欧美| 日韩成人在线观看一区二区三区| 国产伦人伦偷精品视频| 欧美一级毛片孕妇| 午夜福利影视在线免费观看| 国产精品99久久99久久久不卡| 久久青草综合色| 老熟妇乱子伦视频在线观看| 亚洲欧美一区二区三区久久| 女人被躁到高潮嗷嗷叫费观| 国产欧美日韩精品亚洲av| 超色免费av| 成熟少妇高潮喷水视频| 欧美日韩国产mv在线观看视频| 自线自在国产av| 日本黄色日本黄色录像| 成年人黄色毛片网站| 久久影院123| 欧美性长视频在线观看| 日本五十路高清| 99精品欧美一区二区三区四区| 日本a在线网址| 一级作爱视频免费观看| 精品免费久久久久久久清纯| 两人在一起打扑克的视频| 精品福利观看| 久久精品国产清高在天天线| 欧美成狂野欧美在线观看| 窝窝影院91人妻| 人人妻,人人澡人人爽秒播| 人人妻人人爽人人添夜夜欢视频| 国产av又大| 亚洲在线自拍视频| 亚洲精品国产区一区二| 亚洲久久久国产精品| 欧美成狂野欧美在线观看| 看片在线看免费视频| 久久人人精品亚洲av| 午夜亚洲福利在线播放| 欧美日韩亚洲国产一区二区在线观看| 欧美日韩精品网址| 99精品欧美一区二区三区四区| 夜夜夜夜夜久久久久| 欧美精品亚洲一区二区| 1024香蕉在线观看| 色婷婷av一区二区三区视频| 757午夜福利合集在线观看| 久久亚洲精品不卡| 久9热在线精品视频| 中文字幕精品免费在线观看视频| 亚洲成人国产一区在线观看| 啪啪无遮挡十八禁网站| 黄色毛片三级朝国网站| 巨乳人妻的诱惑在线观看| 亚洲一区二区三区欧美精品| 国产成人免费无遮挡视频| 午夜免费成人在线视频| 久久99一区二区三区| 国产在线精品亚洲第一网站| 91字幕亚洲| 18美女黄网站色大片免费观看| 日日摸夜夜添夜夜添小说| 波多野结衣av一区二区av| 在线观看午夜福利视频| 男男h啪啪无遮挡| 国产av一区二区精品久久| 国产极品粉嫩免费观看在线| 亚洲专区字幕在线| 亚洲精品久久成人aⅴ小说| 中文字幕人妻熟女乱码| 又黄又粗又硬又大视频| 亚洲第一青青草原| 桃色一区二区三区在线观看| 夜夜看夜夜爽夜夜摸 | 亚洲成av片中文字幕在线观看| 免费在线观看亚洲国产| 欧美乱色亚洲激情| 午夜影院日韩av| 18禁美女被吸乳视频| 人妻久久中文字幕网| 又紧又爽又黄一区二区| 99热只有精品国产| 日本一区二区免费在线视频| 男男h啪啪无遮挡| 国产高清激情床上av| 制服诱惑二区| 久久久久精品国产欧美久久久| 夜夜看夜夜爽夜夜摸 | 久久午夜亚洲精品久久| 韩国av一区二区三区四区| 日本 av在线| 三级毛片av免费| 一二三四在线观看免费中文在| 黄色视频不卡| 欧美丝袜亚洲另类 | 校园春色视频在线观看| 亚洲欧美日韩另类电影网站| 美女高潮喷水抽搐中文字幕| 亚洲人成伊人成综合网2020| 亚洲国产精品合色在线| 99国产精品免费福利视频| 国产精品亚洲av一区麻豆| 在线观看免费视频日本深夜| 亚洲av日韩精品久久久久久密| 一级片'在线观看视频| 国产一区二区三区视频了| 欧美日韩亚洲综合一区二区三区_| 国产av一区在线观看免费| 韩国精品一区二区三区| 久久99一区二区三区| 黄色毛片三级朝国网站| 国产又色又爽无遮挡免费看| 亚洲一卡2卡3卡4卡5卡精品中文| 又黄又粗又硬又大视频| 美女高潮喷水抽搐中文字幕| 女人精品久久久久毛片| 色老头精品视频在线观看| 亚洲精品美女久久av网站| 中出人妻视频一区二区| 国产成人欧美| 久久久久久久精品吃奶| 看黄色毛片网站| 亚洲片人在线观看| 欧美日韩福利视频一区二区| 咕卡用的链子| 精品乱码久久久久久99久播| av片东京热男人的天堂| 又黄又爽又免费观看的视频| 五月开心婷婷网| av天堂久久9| 欧美+亚洲+日韩+国产| a级毛片在线看网站| 日日夜夜操网爽| 他把我摸到了高潮在线观看| 男人操女人黄网站| 变态另类成人亚洲欧美熟女 | 黄片小视频在线播放| 午夜精品在线福利| 黑人操中国人逼视频| 美女午夜性视频免费| 中文欧美无线码| 99国产精品99久久久久| 久久精品国产亚洲av香蕉五月| 在线av久久热| 亚洲精品中文字幕在线视频| 欧美日韩亚洲综合一区二区三区_| 精品第一国产精品| 国产真人三级小视频在线观看| 中文欧美无线码| 国产精品国产高清国产av| 啦啦啦 在线观看视频| 欧美另类亚洲清纯唯美| 免费在线观看影片大全网站| 琪琪午夜伦伦电影理论片6080| 亚洲人成伊人成综合网2020| 国产免费男女视频| 天天影视国产精品| 夜夜爽天天搞| 久久国产精品人妻蜜桃| 老熟妇仑乱视频hdxx| av国产精品久久久久影院| 麻豆成人av在线观看| 黄片小视频在线播放| 99精品久久久久人妻精品| 亚洲午夜理论影院| 啦啦啦免费观看视频1| 一区二区三区精品91| 亚洲欧美日韩高清在线视频| 99久久久亚洲精品蜜臀av| 淫秽高清视频在线观看| 性欧美人与动物交配| 757午夜福利合集在线观看| 久久久国产精品麻豆| 91大片在线观看| 搡老岳熟女国产| 十八禁人妻一区二区| 精品久久久久久久久久免费视频 | 久久精品影院6| 黑人猛操日本美女一级片| 国产精品久久久av美女十八| 黄色片一级片一级黄色片| 侵犯人妻中文字幕一二三四区| 久久中文字幕人妻熟女| 亚洲欧美日韩高清在线视频| 午夜福利欧美成人| 黄色片一级片一级黄色片| 亚洲中文字幕日韩| cao死你这个sao货| av电影中文网址| 免费高清视频大片| 国产精品久久电影中文字幕| 纯流量卡能插随身wifi吗| 日韩大码丰满熟妇| 亚洲专区字幕在线| 99在线人妻在线中文字幕| 精品久久蜜臀av无| 自线自在国产av| 母亲3免费完整高清在线观看| 亚洲中文日韩欧美视频| 午夜福利一区二区在线看| 精品久久蜜臀av无| 国产欧美日韩一区二区三区在线| 男女下面插进去视频免费观看| 母亲3免费完整高清在线观看| 欧美大码av| avwww免费| 欧美黄色淫秽网站| 亚洲全国av大片| 久久精品亚洲av国产电影网| 欧美日韩av久久| 黄频高清免费视频| 色综合婷婷激情| 午夜福利,免费看| 女人被狂操c到高潮| 久久久久久免费高清国产稀缺| 一个人免费在线观看的高清视频| 国产成人欧美在线观看| 久久国产精品影院| 露出奶头的视频| 成人18禁在线播放| 超碰97精品在线观看| 淫秽高清视频在线观看| 色综合欧美亚洲国产小说| 变态另类成人亚洲欧美熟女 | 国产野战对白在线观看| 老鸭窝网址在线观看| 看免费av毛片| 欧美av亚洲av综合av国产av| 日韩高清综合在线| 老熟妇乱子伦视频在线观看| 黄色视频,在线免费观看| 91老司机精品| 久久精品aⅴ一区二区三区四区| 成人国语在线视频| 日韩免费av在线播放| 亚洲色图 男人天堂 中文字幕| a级毛片黄视频| 色综合站精品国产| www.熟女人妻精品国产| 色在线成人网| 欧美人与性动交α欧美精品济南到| www日本在线高清视频| 少妇裸体淫交视频免费看高清 | 久久久国产一区二区| 久久久久久免费高清国产稀缺| 麻豆av在线久日| 咕卡用的链子| 长腿黑丝高跟| 搡老乐熟女国产| 午夜福利欧美成人| 国产区一区二久久| 一进一出抽搐gif免费好疼 | 色播在线永久视频| 91麻豆精品激情在线观看国产 | 国产精品影院久久| 制服诱惑二区| 曰老女人黄片| 中文字幕人妻丝袜一区二区| 操美女的视频在线观看| 精品少妇一区二区三区视频日本电影| 叶爱在线成人免费视频播放| 人人妻人人添人人爽欧美一区卜| 日本 av在线| 欧美一级毛片孕妇| 99国产极品粉嫩在线观看| 久久性视频一级片| 又黄又粗又硬又大视频| 在线天堂中文资源库| 国产高清videossex| 国产成人欧美| 色精品久久人妻99蜜桃| 午夜福利影视在线免费观看| 十八禁网站免费在线| 国产亚洲欧美精品永久| 91成人精品电影| 99香蕉大伊视频| 女同久久另类99精品国产91| 男女之事视频高清在线观看| 一级毛片高清免费大全| 成年人免费黄色播放视频| 国产高清国产精品国产三级| 国产精品久久久av美女十八| www国产在线视频色| 精品久久久久久,| 国产精品亚洲av一区麻豆| 人人妻,人人澡人人爽秒播| 无人区码免费观看不卡| 亚洲成人免费电影在线观看| 中国美女看黄片| 又黄又爽又免费观看的视频| 18禁美女被吸乳视频| 久久久久久久久中文| 1024香蕉在线观看| 一进一出抽搐动态| 黄色毛片三级朝国网站| 黄色女人牲交| 夜夜夜夜夜久久久久| 国产av在哪里看| 热99re8久久精品国产| 美女国产高潮福利片在线看| 亚洲男人天堂网一区| 国产精品久久电影中文字幕| 日韩免费av在线播放| 久久中文字幕一级| 亚洲欧美日韩无卡精品| 国产极品粉嫩免费观看在线| 久久久久久免费高清国产稀缺| 国产伦人伦偷精品视频| 男男h啪啪无遮挡| 黄色视频不卡| 脱女人内裤的视频| 美女高潮喷水抽搐中文字幕| 丰满人妻熟妇乱又伦精品不卡| 亚洲成人精品中文字幕电影 | 可以免费在线观看a视频的电影网站| 亚洲专区中文字幕在线| 美女 人体艺术 gogo| 亚洲伊人色综图| 人人妻人人澡人人看| 国产成人欧美| 男人操女人黄网站| 色哟哟哟哟哟哟| 成人手机av| 妹子高潮喷水视频| 日韩大码丰满熟妇| 精品国产超薄肉色丝袜足j| 成人手机av| 三上悠亚av全集在线观看| 在线观看免费午夜福利视频| 国产精品综合久久久久久久免费 | 久久久国产精品麻豆| 亚洲中文日韩欧美视频| 99热只有精品国产| 91大片在线观看| a级片在线免费高清观看视频| 熟女少妇亚洲综合色aaa.| 精品国产一区二区三区四区第35| www国产在线视频色| 欧美av亚洲av综合av国产av| 成人国语在线视频| 天天影视国产精品| 一级片'在线观看视频| avwww免费| 国产亚洲欧美精品永久| 精品一区二区三卡| 熟女少妇亚洲综合色aaa.| 亚洲欧美日韩无卡精品| 十分钟在线观看高清视频www| 久久国产乱子伦精品免费另类| x7x7x7水蜜桃| 18禁观看日本| 日韩有码中文字幕| 黑人巨大精品欧美一区二区蜜桃| 日韩有码中文字幕| www.自偷自拍.com| 亚洲一区高清亚洲精品| 亚洲少妇的诱惑av| 十分钟在线观看高清视频www| 成人三级黄色视频| 老司机福利观看| 男女做爰动态图高潮gif福利片 | 18禁美女被吸乳视频| 在线十欧美十亚洲十日本专区| 亚洲精品中文字幕一二三四区| 亚洲va日本ⅴa欧美va伊人久久| 最近最新中文字幕大全免费视频| 9热在线视频观看99| 日韩人妻精品一区2区三区| 又紧又爽又黄一区二区| a在线观看视频网站| 妹子高潮喷水视频| 亚洲人成电影免费在线| 成人国产一区最新在线观看| 97超级碰碰碰精品色视频在线观看| 亚洲第一av免费看| 久久伊人香网站| 18禁国产床啪视频网站| 国产精品电影一区二区三区| 一个人免费在线观看的高清视频| 国产免费男女视频|