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

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

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

    隨筆-295  評論-26  文章-1  trackbacks-0
    spring中dispatcherservlet的運行機制

    dispatcherservlet是spring的web框架(以下簡稱springweb)中的核心servlet."spring的web框架——象其它web框架一樣——是一個請求驅動的web框架,其設計圍繞一個能將請求分發到控制器的servlet,它也提供其它功能幫助web應用開發。"----《spring framework 開發參考手冊(中文版)》而在springweb框架中這個servlet就是org.springframework.web.servlet.dispatcherservlet。這個servlet的繼承關系如下圖所示:springweb首先將傳統的httpservlet抽象類包裝成了bean;frameworkservlet抽象出了web框架中的servlets的一些基本行為,比如對application context的訪問;dispatcherservlet的主要工作就是將一個request分發到一個合適的處理器上,并將處理返回的modelandview繪制出來返回給客戶端。

    dispatcherservlet作為一個servlet那他一定有兩個主要的方法:init()和doservice()。

    一 init()初始化。dispatcherservlet繼承體系中init()方法的實現位于httpservletbean中,httpservletbean首先調用initbeanwrapper(),初始化beanwrapper,然后調用抽象方法initservletbean(),這個方法的實現位于他的子類frameworkservlet中;framewordservlet中的initservletbean()方法將調用initwebapplicationcontext(),初始化webapplicationcontext,然后同樣調用他的抽象方法initframeworkservlet(),而這個抽象方法的實現位于最終的dispatcherservlet中;dispatcherservlet中的initframeworkservet()將依次初始化multipar(用作文件上傳)解析器、本地化信息解析器、主題解析器處理器映射等等內容。所以dispatcherservlet的初始化順序為init();initbeanwrapper();

    initservletbeaninitwebapplicationcontext()

    initframework();initmultipartresolver();initlocaleresolver();initthemeresolver();inithandlermappings();inithandleradapters();inithandlerexceptionresolvers();initviewresolvers();

    二 doservice()處理請求。dispatcherservlet中無論是通過post方式還是get方式提交的request,最終都會交由doservice()處理。doservice()中的處理邏輯大致分以下六個步驟:1.if(request是multipart,即文件上傳) 則將request解析并包裝成multiparthttpservletrequest2.mappedhandler = gethandler(request)根據request得到相應的處理器3.調用注冊的所有攔截器的prehandle方法4.調用處理器??? handleradapter ha = new gethandleradapter(mappedhandler.gethandler());??? modelandview mv = ha.handle(req, res, mappedhandler.gethandler())//這里使用了adapter模式5.調用注冊的所有攔截器的posthandle方法6.繪制mv

    也許spring不像struts、hibernate那樣是使用最為廣泛的,但他是全面的、輕量級的、足夠靈活的、容易替換、容易擴展的。springweb是springframework中的一個部分,而dispatcherservlet又是springweb中的一小部分,要弄懂spring以及他背后的設計思想,對我等菜鳥而言,還是有很長一段路要走的。但愿在新的一條路出現之前,我們已經走遍了這條路。路漫漫其修遠兮,吾將上下而求索。繼續研究ing...to be continue...



    大盤預測 國富論
    posted on 2007-08-29 12:25 華夢行 閱讀(702) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 亚洲尹人香蕉网在线视颅| 亚洲国产午夜福利在线播放| 亚洲AV乱码久久精品蜜桃| 一级一级毛片免费播放| 亚洲?v无码国产在丝袜线观看 | 亚洲国产老鸭窝一区二区三区| 国产精品玖玖美女张开腿让男人桶爽免费看 | 亚洲精品综合久久| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 成人妇女免费播放久久久| 免费在线观看中文字幕| 暖暖免费中文在线日本| 国产午夜亚洲精品午夜鲁丝片| 99视频免费在线观看| 亚洲AV成人片色在线观看高潮| 最近免费中文字幕大全免费版视频| 国产精品国产亚洲精品看不卡| 久久国产免费一区| 亚洲国产精品xo在线观看| 亚洲第一成年免费网站| 亚洲av成人无码网站…| 亚洲午夜无码片在线观看影院猛| 中国videos性高清免费| 亚洲综合无码一区二区| 成年人免费观看视频网站| 激情小说亚洲图片| 亚洲深深色噜噜狠狠爱网站| 99久久人妻精品免费二区| 亚洲精品国产日韩| 亚洲国产成人精品女人久久久| 免费h视频在线观看| 精品日韩99亚洲的在线发布| 国产一区二区三区免费看 | 久久午夜羞羞影院免费观看 | 综合亚洲伊人午夜网 | 国产免费131美女视频| 两个人看的www免费高清| 亚洲噜噜噜噜噜影院在线播放 | 特级做A爰片毛片免费看无码| 亚洲成年人电影在线观看| 老司机永久免费网站在线观看|