<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    上善若水
    In general the OO style is to use a lot of little objects with a lot of little methods that give us a lot of plug points for overriding and variation. To do is to be -Nietzsche, To bei is to do -Kant, Do be do be do -Sinatra
    posts - 146,comments - 147,trackbacks - 0

    概述

    Server類是Jetty中最核心的是類,它即包含Connectors數據,有包含了Handler的集合,即它是Jetty中用于連接Connector和Handler的類。同時它還包含了一個Container,用于存儲Jetty中核心類實例的關系發生變化時觸發事件的Listener,接收者可以注冊一個Listener以獲取Jetty中某個類的關系發生變化。
    Server的實現

    Server繼承自HandlerWrapper,因而它默認是一個Handler容器,另外它也包含一個Container字段,以及Connector數組字段,ThreadPool字段,另外它還包含了一些配置字段,如:attributes、sessionIdManager、sendServerVersion、sendDateHeader、stopAtShutdown(注冊shutdown hook)、maxCookieVersion、dumpAfterStart、dumpBeforeStop等,這些只是用于配置信息,而且名稱本身已經很清楚它的含義了。

     

    在使用Server時,我們需要向其添加Connector以及Handler,從而在啟動時,它會首先注冊ShutdownThread,即在JVM退出時會首先調用它的stop方法;如果沒有手動設置ThreadPool,使用QueuedThreadPool初始化ThreadPool字段;然后啟動所有Handler以及Connector。在stop時,它先close所有Connector,然后設置所有實現了Graceful接口的類的shutdown為true,并等待graceful時間后,stop所有Connector以及Handler。

     

    Server中有兩個handle方法在HttpConnection請求解析完成后調用,其中handle方法用于在非ASYNC狀態下的調用,它只是從HttpConnection中取得Request、Response實例以及PathInfo作為target,傳遞給Handler的handle方法;而handleAsync方法則是在ASYNC狀態下調用,它的baseRequest從HttpConnection中獲取,但是會將其原有的RequestURI、QueryString、ContextPath設置到其Attribute(javax.servlet.async.*)中,而將他們對應的屬性包括PathInfo更新為當前AsyncContext中Request的值,并且request、response實例則是從AsyncContext中獲取,然后調用Handler的handle方法。

    Container的實現

    Container用于生成父實例和子引用的關系發生變化時生成的時間,以提供其注冊的Listener接收到相應的事件。Container通過內部接口Listener可以觸發如下事件:

        public interface Listener extends EventListener {
            public void addBean(Object bean);
            public void removeBean(Object bean);
            public void add(Container.Relationship relationship);
            public void remove(Container.Relationship relationship);
        }

    其中Relationship表示一個父實例和一個子引用的關系,如handler、threadPool、errorHandler等。每當一個關系發生變化時,可以調用Container的update方法,而update方法內部會觸發相應的remove和add事件。

    posted on 2014-05-24 22:40 DLevin 閱讀(2167) 評論(4)  編輯  收藏 所屬分類: Jetty

    FeedBack:
    # re: 深入Jetty源碼之Server和Container
    2014-05-25 08:11 | nieyong
    親,北京優酷最近在招移動后端JAVA攻城師,有需要或者可以推薦的,可以發送郵件到 yongboyATgmail.com  回復  更多評論
      
    # re: 深入Jetty源碼之Server和Container
    2014-05-26 11:49 | 手機賺錢網-手機賺錢軟件排行,手機賺錢平臺http://www.9izhuanqian.com
    手機賺錢網-手機賺錢軟件排行,手機賺錢平臺?。?a target="_new" rel="nofollow">http://www.9izhuanqian.com  回復  更多評論
      
    # re: 深入Jetty源碼之Server和Container
    2014-05-26 11:50 | 手機賺錢網-手機賺錢軟件排行,手機賺錢平臺http://www.9izhuanqian.com
    手機賺錢網-手機賺錢軟件排行,手機賺錢平臺 http://www.9izhuanqian.com  回復  更多評論
      
    # re: 深入Jetty源碼之Server和Container
    2014-05-28 13:11 | IT前線
    從來沒有用過jetty,覺得還是直接寫servlet好啊
    http://www.itqx.net  回復  更多評論
      
    主站蜘蛛池模板: 午夜成年女人毛片免费观看| 亚洲av片不卡无码久久| 四虎影视久久久免费| 成人毛片免费观看| 亚洲午夜成激人情在线影院| 男人进去女人爽免费视频国产| 国产午夜亚洲不卡| 黄色a级免费网站| 日韩在线免费看网站| 亚洲第一区二区快射影院| 午夜福利不卡片在线播放免费| 亚洲综合一区二区精品导航| 免费在线观影网站| 亚洲线精品一区二区三区影音先锋| 特级毛片爽www免费版| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲伦另类中文字幕| 日本道免费精品一区二区| 亚洲无线码一区二区三区| h视频在线免费观看| 亚洲一级特黄大片在线观看| 一级毛片一级毛片免费毛片| 男人的天堂亚洲一区二区三区| 亚洲综合小说另类图片动图| 免费观看成人毛片a片2008| 国产色在线|亚洲| 无码高潮少妇毛多水多水免费| 亚洲最大中文字幕无码网站| 黄色成人网站免费无码av| 亚洲一区二区三区成人网站| 毛片免费全部播放一级| 亚洲国产高清国产拍精品| 国产免费黄色大片| 污污的视频在线免费观看| 亚洲人成影院在线观看| 国产无限免费观看黄网站| 亚洲中文字幕无码久久精品1| 在线免费播放一级毛片| 久久精品国产亚洲AV麻豆王友容| 久久久久久成人毛片免费看| 亚洲美女视频一区二区三区|