<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數(shù)據(jù),有包含了Handler的集合,即它是Jetty中用于連接Connector和Handler的類。同時(shí)它還包含了一個(gè)Container,用于存儲(chǔ)Jetty中核心類實(shí)例的關(guān)系發(fā)生變化時(shí)觸發(fā)事件的Listener,接收者可以注冊(cè)一個(gè)Listener以獲取Jetty中某個(gè)類的關(guān)系發(fā)生變化。
    Server的實(shí)現(xiàn)

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

     

    在使用Server時(shí),我們需要向其添加Connector以及Handler,從而在啟動(dòng)時(shí),它會(huì)首先注冊(cè)ShutdownThread,即在JVM退出時(shí)會(huì)首先調(diào)用它的stop方法;如果沒(méi)有手動(dòng)設(shè)置ThreadPool,使用QueuedThreadPool初始化ThreadPool字段;然后啟動(dòng)所有Handler以及Connector。在stop時(shí),它先close所有Connector,然后設(shè)置所有實(shí)現(xiàn)了Graceful接口的類的shutdown為true,并等待graceful時(shí)間后,stop所有Connector以及Handler。

     

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

    Container的實(shí)現(xiàn)

    Container用于生成父實(shí)例和子引用的關(guān)系發(fā)生變化時(shí)生成的時(shí)間,以提供其注冊(cè)的Listener接收到相應(yīng)的事件。Container通過(guò)內(nèi)部接口Listener可以觸發(fā)如下事件:

        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表示一個(gè)父實(shí)例和一個(gè)子引用的關(guān)系,如handler、threadPool、errorHandler等。每當(dāng)一個(gè)關(guān)系發(fā)生變化時(shí),可以調(diào)用Container的update方法,而update方法內(nèi)部會(huì)觸發(fā)相應(yīng)的remove和add事件。

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

    FeedBack:
    # re: 深入Jetty源碼之Server和Container
    2014-05-25 08:11 | nieyong
    親,北京優(yōu)酷最近在招移動(dòng)后端JAVA攻城師,有需要或者可以推薦的,可以發(fā)送郵件到 yongboyATgmail.com  回復(fù)  更多評(píng)論
      
    # re: 深入Jetty源碼之Server和Container
    2014-05-26 11:49 | 手機(jī)賺錢(qián)網(wǎng)-手機(jī)賺錢(qián)軟件排行,手機(jī)賺錢(qián)平臺(tái)http://www.9izhuanqian.com
    手機(jī)賺錢(qián)網(wǎng)-手機(jī)賺錢(qián)軟件排行,手機(jī)賺錢(qián)平臺(tái)!!http://www.9izhuanqian.com  回復(fù)  更多評(píng)論
      
    # re: 深入Jetty源碼之Server和Container
    2014-05-26 11:50 | 手機(jī)賺錢(qián)網(wǎng)-手機(jī)賺錢(qián)軟件排行,手機(jī)賺錢(qián)平臺(tái)http://www.9izhuanqian.com
    手機(jī)賺錢(qián)網(wǎng)-手機(jī)賺錢(qián)軟件排行,手機(jī)賺錢(qián)平臺(tái) http://www.9izhuanqian.com  回復(fù)  更多評(píng)論
      
    # re: 深入Jetty源碼之Server和Container
    2014-05-28 13:11 | IT前線
    從來(lái)沒(méi)有用過(guò)jetty,覺(jué)得還是直接寫(xiě)servlet好啊
    http://www.itqx.net  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 伊人免费在线观看| 二区久久国产乱子伦免费精品| 亚洲av成人无码网站…| 立即播放免费毛片一级| 男男gvh肉在线观看免费| GOGOGO免费观看国语| 久久久精品免费视频| 久久久久久精品免费免费自慰| 成人免费大片免费观看网站| 岛国大片免费在线观看| 亚洲国产人成中文幕一级二级| 狠狠色伊人亚洲综合成人| 亚洲综合综合在线| 亚洲AV永久无码精品放毛片| 一区视频免费观看| 51精品视频免费国产专区| 妞干网在线免费视频| 亚洲日韩VA无码中文字幕| 内射少妇36P亚洲区| 亚洲精品无码中文久久字幕| 一级日本高清视频免费观看| 99热在线观看免费| 国产小视频免费观看| 亚洲av无码不卡| 亚洲色中文字幕在线播放| 黄桃AV无码免费一区二区三区 | 最好2018中文免费视频| 久久免费视频观看| 精品久久免费视频| 亚洲av中文无码乱人伦在线播放| 亚洲日本在线电影| 大地影院MV在线观看视频免费| 毛片在线免费视频| 亚洲精品无码久久千人斩| 亚洲综合激情五月丁香六月| 中出五十路免费视频| 午夜成人免费视频| 中文字幕亚洲综合久久2| 日本免费精品一区二区三区| 久久国内免费视频| 亚洲αv久久久噜噜噜噜噜|