jetty Jetty 是一個開源的servlet容器,它為基於Java的web容器,例如JSP和servlet提供運行環境。Jetty是使用Java語言編寫的,它的API以一組JAR包的形式發布。開發人員可以將Jetty容器執行個體化成一個對象,可以迅速為一些獨立運行(stand-alone)的Java應用提供網路和web串連。
特性
易用性 易用性是 Jetty 設計的基本原則,易用性主要體現在以下幾個方面: 通過 XML 或者 API 來對Jetty進行配置;預設配置可以滿足大部分的需求;將 Jetty 嵌入到應用程式當中只需要非常少的代碼;
可擴充性 在使用了 Ajax 的 Web 2.0 的應用程式中,每個串連需要保持更長的時間,這樣線程和記憶體的消耗量會急劇的增加。這就使得我們擔心整個程式會因為單個組件陷入瓶頸而影響整個程式的效能。但是有了 Jetty: 即使在有大量服務要求的情況下,系統的效能也能保持在一個可以接受的狀態。利用 Continuation 機制來處理大量的使用者請求以及時間比較長的串連。 另外 Jetty 設計了非常良好的介面,因此在 Jetty 的某種實現無法滿足使用者的需要時,使用者可以非常方便地對 Jetty 的某些實現進行修改,使得 Jetty 適用於特殊的應用程式的需求。
易嵌入性 Jetty 設計之初就是作為一個優秀的組件來設計的,這也就意味著 Jetty 可以非常容易的嵌入到應用程式當中而不需要程式為了使用 Jetty 做修改。從某種程度上,你也可以把 Jetty 理解為一個嵌入式的Web伺服器。 Jetty 可以作為嵌入式伺服器使用,Jetty的運行速度較快,而且是輕量級的,可以在Java中可以從test case中控制其運行。從而可以使自動化測試不再依賴外部環境,順利實現自動化測試。
和Tomcat的比較
原文地址:Jetty和Tomcat的選擇:按情境而定[1] 1)Jetty更輕量級。這是相對Tomcat而言的。 由於Tomcat除了遵循Java Servlet規範之外,自身還擴充了大量JEE特性以滿足企業級應用的需求,所以Tomcat是較重量級的,而且配置較Jetty亦複雜許多。但對於大量普通互連網應用而言,並不需要用到Tomcat其他進階特性,所以在這種情況下,使用Tomcat是很浪費資源的。這種劣勢放在分布式環境下,更是明顯。換成Jetty,每個應用伺服器省下那幾兆記憶體,對於大的分布式環境則是節省大量資源。而且,Jetty的輕量級也使其在處理高並發細粒度請求的情境下顯得更快速高效。 2)Jetty更靈活,體現在其可插拔性和可擴充性,更易於開發人員對Jetty本身進行二次開發,定製一個適合自身需求的Web Server。 相比之下,重量級的Tomcat原本便支援過多特性,要對其瘦身的成本遠大於豐富Jetty的成本。用自己的理解,即增肥容易減肥難。 3)然而,當支援大規模企業級應用時,Jetty也許便需要擴充,在這情境下Tomcat便是更優的。 總結:Jetty更滿足公用雲端的分布式環境的需求,而Tomcat更符合企業級環境。
代碼執行個體
作為嵌入式伺服器使用代碼執行個體 Java代碼
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |