入门案例中使用的组件介绍
DispatcherServlet:前端控制器
用戶請求到達(dá)前端控制器,它就相當(dāng)于mvc模式中的c,dispatcherServlet是整個(gè)流程控制的中心,由它調(diào)用其它組件處理用戶的請求,dispatcherServlet的存在降低了組件之間的耦合性。
?
HandlerMapping:處理器映射器
HandlerMapping負(fù)責(zé)根據(jù)用戶請求找到Handler即處理器,SpringMVC提供了不同的映射器實(shí)現(xiàn)不同的映射方式,例如:配置文件方式,實(shí)現(xiàn)接口方式,注解方式等。
?
Handler:處理器
它就是我們開發(fā)中要編寫的具體業(yè)務(wù)控制器。由DispatcherServlet把用戶請求轉(zhuǎn)發(fā)到Handler。由Handler對具體的用戶請求進(jìn)行處理。
?
HandlAdapter:處理器適配器
通過HandlerAdapter對處理器進(jìn)行執(zhí)行,這是適配器模式的應(yīng)用,通過擴(kuò)展適配器可以對更多類型的處理器進(jìn)行執(zhí)行。
?
View Resolver:視圖解析器
View Resolver負(fù)責(zé)將處理結(jié)果生成View視圖,View Resolver首先根據(jù)邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最后對View進(jìn)行渲染將處理結(jié)果通過頁面展示給用戶。
?
View:視圖
SpringMVC框架提供了很多的View視圖類型的支持,包括:jstlView、freemarkerView、pdfView等。我們最常用的視圖就是jsp。 一般情況下需要通過頁面標(biāo)簽或頁面模版技術(shù)將模型數(shù)據(jù)通過頁面展示給用戶,需要由程序員根據(jù)業(yè)務(wù)需求開發(fā)具體的頁面。
?
<mvc:annotation-driven>說明
在SpringMVC的各個(gè)組件中,處理器映射器、處理器適配器、視圖解析器稱為SpringMVC的三大組件。 使用<mvc:annotation-driven>自動加載RequestMappingHandlerMapping(處理映射器)和RequestMappingHandlerAdapter(處理適配器),可用在SpringMVC.xml配置文件中使用<mvc:annotation-driven>替代注解處理器和適配器的配置。
它就相當(dāng)于在xml中配置了:
<!-- 上面的標(biāo)簽相當(dāng)于 如下配置-->
<!-- Begin -->
<!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!-- HadnlerExceptionResolvers -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver"></bean>
<bean class="org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver"></bean>
<!-- End -->
注意:
一般開發(fā)中,我們都需要寫上此標(biāo)簽(雖然從入門案例中看,我們不寫也行,隨著課程的深入,該標(biāo)簽還有具體的使用場景)。
明確: 我們只需要編寫處理具體業(yè)務(wù)的控制器以及視圖。
總結(jié)
以上是生活随笔為你收集整理的入门案例中使用的组件介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 入门案例的流程总结
- 下一篇: RequestMapping注解的作用