朱杰兵blog

          jonhney'blog
          posts - 140, comments - 1, trackbacks - 0, articles - 0

          spring mvc的工作原理

          Posted on 2015-05-19 15:23 朱杰兵 閱讀(319) 評論(0)  編輯  收藏
          Spring Web MVC 處理Http請求的大致過程: 一旦Http請求到來,DispatcherSevlet將負(fù)責(zé)將請求分發(fā)。DispatcherServlet可以認(rèn)為是Spring提供的前端控制器,所有的請求都有經(jīng)過它來統(tǒng)一分發(fā)。 在DispatcherServlet將請求分發(fā)給Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具體的Controller。HandlerMapping是這樣一種對象,它能夠完成客戶請求到Controller之間的映射。在Struts中,這種映射是通過struts-config.xml文件完成的。其中,Spring為Controller接口提供了若干實(shí)現(xiàn),例如Spring默認(rèn)使用的BeanNameUrlHandlerMapping。還有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。 Spring Controller將處理來自DispatcherServlet的請求。Spring的Controller類似于struts的Action,能夠接受HttpServletRequest和HttpServletResponse。Spring為Controller接口提供了若干實(shí)現(xiàn)類,位于org.springframework.web.servlet.mvc包中。由于Controller需要為并發(fā)用戶處理上述請求,因此實(shí)現(xiàn)Controller接口時(shí),必須保證線程安全并且可重用。Controller將處理客戶請求,這和Struts Action 扮演的角色是一致的。 一旦Controller處理完客戶請求,則返回ModelAndView對象給DispatcherServlet前端控制器。ModelAndView中包含了模型(Model)和視圖(View)。從宏觀角度考慮,DispatcherServlet是整個(gè)Web應(yīng)用的控制器;從微觀角度考慮,Controller是單個(gè)Http請求處理過程中的控制器,而ModelAndView是Http請求過程中返回的模型和視圖。前端控制器返回的視圖可以是視圖的邏輯名,或者實(shí)現(xiàn)了View接口的對象。View對象能夠渲染客戶響應(yīng)結(jié)果。其中,ModelAndView中的模型能夠供渲染View時(shí)使用。借助于Map對象能夠存儲模型。 如果ModelAndView返回的視圖只是邏輯名,則需要借助Spring提供的視圖解析器(ViewResoler)在Web應(yīng)用中查找View對象,從而將響應(yīng)結(jié)果渲染給客戶。 DispatcherServlet將View對象渲染出的結(jié)果返回個(gè)客戶。

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大竹县| 项城市| 法库县| 新晃| 藁城市| 民丰县| 东城区| 辰溪县| 察隅县| 晋城| 金阳县| 亚东县| 乐东| 西吉县| 文水县| 虎林市| 吉林市| 柘城县| 仙桃市| 罗田县| 南陵县| 永安市| 汉沽区| 聂拉木县| 百色市| 舞钢市| 佛山市| 搜索| 永平县| 高要市| 天祝| 河南省| 渭源县| 新丰县| 石嘴山市| 龙井市| 原阳县| 镇康县| 陇川县| 德令哈市| 湘阴县|