小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SpringMVC流程

 wjw_595 2014-05-19
 
1. 當(dāng)DispatcherServlet接到請求時,他先回查找適當(dāng)?shù)奶幚沓绦騺硖幚碚埱?。DispatcherServlet通過一個或者多個處理程序映射,將每個請求映射到處理程序中。處理程序映射配置在web應(yīng)用程序的上下文中,是實現(xiàn)了HandlerMapping接口的Bean。它負責(zé)為請求返回一個適當(dāng)?shù)奶幚沓绦颍ㄒ簿褪荂ontroller)。處理程序映射通常根據(jù)請求的URL將請求映射到處理程序(Controller)。 
2. 一旦DispatcherServlet選擇了適當(dāng)?shù)目刂破?,它就會調(diào)用這個控制器來處理請求。 
3. 控制器處理完請求后,會將模型和視圖名(有時候是視圖對象)返回給DispatcherServlet。模型包含了控制器要傳遞給視圖進行顯示的屬性。如果返回的是視圖名稱,它會被解析成視圖對象再進行呈現(xiàn)。綁定模型和視圖的基本類是ModelAndView 
4. 當(dāng)DispatcherServlet接收到模型和視圖名稱時,它會將邏輯視圖名稱解析成視圖對象再進行呈現(xiàn)。DispatcherServlet從一個或者多個視圖解析器中解析視圖。視圖解析器配置在Web應(yīng)用程序上下文中,是實現(xiàn)了ViewResolver接口的Bean。它的任務(wù)是根據(jù)邏輯視圖名稱返回試圖對象。 
5. 一旦DispatcherServlet將視圖名稱解析稱為試圖對象,它就會呈現(xiàn)視圖對象,并傳遞控制器返回的模型。視圖的任務(wù)是將模型屬性展示給用戶。 

DispatcherServlet接到請求后如何映射到Controller呢? 
在Spring MVC中,Web請求被Web應(yīng)用程序上下文中聲明的一個或者多個處理程序映射Bean(是吸納了HandlerMapping接口的Bean)映射到Controller。Spring MVC提供了幾種HandlerMapping實現(xiàn): 
1. BeanNameUrlHandlerMapping(默認情況),他根據(jù)Controller Bean名稱中指定的URL模式將請求映射到處理程序上。 
eg. <bean name="/welcome.htm" class="com.kevin.controller.WelcomeController">...</bean> 
當(dāng)你訪問http://******/welcome.htm這個URL時,DispatcherServlet通過BeanNameUrlHandlerMapping映射就找到了WelcomeController。 
2. ControllerClassNameHandlerMapping,它是按控制器類名稱映射請求。 
3. SimpleUrlHandlerMapping,用定制的映射定義來映射請求。 


下面我們就來看一下Controller。 
 

Controller接口是Spring MVC中所有控制器類的基本接口。通過實現(xiàn)這個接口,你可以創(chuàng)建自己的控制器。在handleRequest()方法中,可以隨意地處理Web請求。 

AbstractController:如果你想讓控制器具備一些基本的特性,如過濾受支持的HTTP方法(GET,POST和HEAD),以及在HTTP響應(yīng)中生成cache-control頭部等,你可以讓它擴展AbstractController類。 

ParameterizableViewController:用來創(chuàng)建帶有參數(shù)化視圖的控制器。 

SimpleFormController:它支持命令對象的概念(commandName),并且可以將表單域的值綁定到命令對象的同名屬性上。 

AbstractWizardFormController:為向?qū)П韱蔚奶幚矶x了基本的任務(wù)。向?qū)П韱斡卸鄠€單頁,因此必須為向?qū)П韱慰刂破鞫x多個頁面視圖。然后這個控制器可以跨越所有這些表單頁面來管理表單狀態(tài)。向?qū)П韱螘卸鄠€動作,不像SimpleFormController只有單個提交動作。AbstractWizardFormController會根據(jù)特殊的請求參數(shù)決定用戶的動作,通常是用提交按鈕的名稱來指定動作的。 
_finished: 完成向?qū)П韱巍?nbsp;
_cancel: 取消向?qū)П韱巍?nbsp;
_targetx: 進入目標頁面,這里的x是從0開始的頁面索引。 

MultiActionController:允許你將多個相關(guān)的動作分組到一個控制器中。 

常見的視圖類型: 
 

幾種常見的ViewResolver的解析: 
1. InternalResourceViewResolver: 根據(jù)URL解析視圖。通過添加前綴和后綴的方法,將每個視圖名稱都映射到一個URL上。 
2. XmlViewResolver: 從XML配置文件中解析視圖。將視圖聲明成Spring的Bean,并按他們的Bean Name進行解析。 
3. ResourceBundleViewResolver: 從ResourceBundle中解析視圖。 
4. 用多個視圖解析器解析視圖, 需要注意的是,您需要為你配置的視圖解析器配置解析的優(yōu)先級。<property name="order" value="0"/> value越小,優(yōu)先級越高。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多