• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    實戰 Jetty

    發布: 2008-5-09 09:58 | 作者: 周登朋 | 來源: ibm | 查看: 512次 | 進入軟件測試論壇討論

    領測軟件測試網
    Jetty 是一個用 Java 實現、開源、基于標準的,并且具有豐富功能的 Http 服務器和 Web 容器,可以免費的用于商業行為。Jetty 這個項目成立于 1995 年,現在已經有非常多的成功產品基于 Jetty,比如 Apache Geromino, JBoss, IBM Tivoli, Cisco SESM 等。Jetty 可以用來作為一個傳統的 Web 服務器,也可以作為一個動態的內容服務器,并且 Jetty 可以非常容易的嵌入到 Java 應用程序當中。

    特性簡介

    易用性

    易用性是 Jetty 設計的基本原則,易用性主要體現在以下幾個方面:

    1. 通過 XML 或者 API 來對 Jetty 進行配置;
    2. 默認配置可以滿足大部分的需求;
    3. 將 Jetty 嵌入到應用程序當中只需要非常少的代碼;

    可擴展性

    在使用了 Ajax 的 Web 2.0 的應用程序中,每個連接需要保持更長的時間,這樣線程和內存的消耗量會急劇的增加。這就使得我們擔心整個程序會因為單個組件陷入瓶頸而影響整個程序的性能。但是有了 Jetty:

    1. 即使在有大量服務請求的情況下,系統的性能也能保持在一個可以接受的狀態。
    2. 利用 Continuation 機制來處理大量的用戶請求以及時間比較長的連接。

    另外 Jetty 設計了非常良好的接口,因此在 Jetty 的某種實現無法滿足用戶的需要時,用戶可以非常方便地對 Jetty 的某些實現進行修改,使得 Jetty 適用于特殊的應用程序的需求。

    易嵌入性

    Jetty 設計之初就是作為一個優秀的組件來設計的,這也就意味著 Jetty 可以非常容易的嵌入到應用程序當中而不需要程序為了使用 Jetty 做修改。從某種程度上,你也可以把 Jetty 理解為一個嵌入式的Web服務器。





    回頁首


    部署應用程序

    將自己的應用程序部署到 Jetty 上面是非常簡單的,首先將開發好的應用程序打成 WAR 包放到 Jetty 的 Webapps 目錄下面。然后用如下的命令來啟動 Jetty 服務器:Java –jar start.jar, 在啟動服務器后。我們就可以訪問我們的應用程序了,Jetty 的默認端口是 8080,WAR 的名字也就是我們的應用程序的 Root Context。例如一個典型的 URL 就是:http://127.0.0.1:8080/sample/index.jsp 。





    回頁首


    如何將 Jetty 嵌入到程序當中

    將 Jetty 嵌入到程序當中是非常簡單的, 如 代碼 1 所示:首先我們創建一個 Server 對象, 并設置端口為 8080,然后為這個 Server 對象添加一個默認的 Handler。接著我們用配置文件 jetty.xml 對這個 server 進行設置,最后我們使用方法 server.start() 將 Server 啟動起來就可以了。從這段代碼可以看出,Jetty 是非常適合用于作為一個組件來嵌入到我們的應用程序當中的,這也是 Jetty 的一個非常重要的特點。


    清單 1. 代碼片斷
                    
    public class JettyServer {
    
        public static void main(String[] args) {
            Server server = new Server(8080);
            server.setHandler(new DefaultHandler());
            XmlConfiguration configuration = null;
            try {
                configuration = new XmlConfiguration(
                    new FileInputStream("C:/development/Jetty/jetty-6.1.6rc0/etc/jetty.xml"));
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            } catch (SAXException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            
            try {    
                configuration.configure(server);
                server.start();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    接下來我們分析一下 Jetty Server 是如何啟動的。首先我們注意到 Server 類,這個類實際上繼承了 HttpServer, 當啟動 Jetty 服務器的時候,就是說,在 Jetty 根目錄下的命令行下如果輸入 java -jar start.jar etc/jetty.xml,注意這里有一個配置文件 jetty.xml 做為運行參數,這個參數也可以是其它的配置文件,可以是多個 XML 配置文件,其實這個配置文件好比我們使用 Struts 時的 struts-config.xml 文件,將運行 Server 需要用到的組件寫在里面,比如上一節中 HttpServer 的配置需要的組件類都可以寫在這個配置文件中。按上述方法啟動 Jetty Server 時,就會調用 Server 類里面的 main 方法,這個入口方法首先會構造一個 Server 類實例(其實也就構造了一個 HttpServer),創建實例的過程中就會構造 XmlConfiguration 類的對象來讀取參數配置文件,之后再由這個配置文件產生的 XmlConfiguration 對象來配置這個 Server,配置過程其實是運用了 Java 的反射機制,調用 Server 的方法并傳入配置文件中所寫的參數來向這個 Server 添加 HttpListener,HttpContext,HttpHandler,以及 Web Application(對應于我們的 Web 應用)。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 實戰 Jetty

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>