jetty

 相關的文章太多了,我只按照本身的意思作簡單總結。html

參見:web

http://www.cnblogs.com/duanxz/p/3154982.htmlapi

http://www.cnblogs.com/windlaughing/archive/2013/06/07/3125358.htmltomcat

 http://www.cnblogs.com/duanxz/p/3154487.html 太過複雜詳細。。  誰會這麼用呢??app

 

重要的幾點:框架

1 下載相關的jar —— 這個天然的eclipse

2 寫本身的server —— 繼承Server (jetty提供的Server)。webapp

 XmlConfiguration configuration = new XmlConfiguration(    // 這個XmlConfiguration是jetty提供的
                    new FileInputStream(this.xmlConfigPath));    // 這個xmlConfigPath路徑即jetty.xml
            configuration.configure(this);this

 

jetty.xml 是jetty框架的基礎配置文件(從名字可知一二)。 主要描述了ip、端口、鏈接池信息、空閒時間等server

web.xml 是servlet的規範,在此時依然有效,依然是用來配置servlet的。—— 相對下者,這個能夠理解爲 用來配置自定義的servlet 等

webdefault.xml 這個是jetty在提供服務的時候須要註冊的自身的一些 基礎的配置、啓動參數、servlet、listener等, 差很少跟tomcat的配置同樣複雜而完整。

 

3 WebAppContext 顧名思義, 是jetty的web app 上下文環境(很是基礎不可或缺的一個接口)。 其提供的幾個方法靜態方法很重要

setContextPath

setDefaultsDescriptor

setResourceBase

setWar

 

 

ContextHandlerCollection handler = new ContextHandlerCollection();
        WebAppContext webapp = new WebAppContext();

    // WebAppContext 屬於handler, extends ServletContextHandler  implements WebAppClassLoader.Context


        webapp.setContextPath(contextPath);   // contextPath至關於一個主機下一個獨立的app、 同tomcat一個主機可對應多個contextPath
        webapp.setDefaultsDescriptor("./jetty/etc/webdefault.xml"); 
        if (!warDeployFlag) {
            webapp.setResourceBase(resourceBase);
            webapp.setDescriptor(webXmlPath);
        } else {
            webapp.setWar(warPath);
        }
        handler.addHandler(webapp);
        super.setHandler(handler);

 

4 調用Server提供的啓動方法便可: super.start() —— 這樣就像執行了tomcat的startu.bat同樣,

jetty將會解析相關文件,監聽相應端口,而後響應請求!

 

5 部署有兩種方式

 目錄部署 ——經過setResourceBase(resourceBase) 和 setDescriptor(webXmlPath) —— 這二者彷佛是能夠分離而無依賴的。因此提供了兩個方法。。

 war部署 ——經過setWar (裏面有包含webXmlPath ,因此不用設置了) 。比較慢, 由於,顯然的是——解析WAR文件浪費比較時間

 

6

org.eclipse.jetty.server.Server 是重中之重。 至關於tomcat的Bootstrapper??

參考 http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/server/Server.html 

提供有:

start

stop

join ?

addBean removeBean之類的 —— 這個有些不太理解。。。

 

至關之多 !     可見其對 web程序的控制,      很是的方便靈活 ——  想起就起,想停就停。。。

相關文章
相關標籤/搜索