spring WEB MVC框架提供了一個(gè)MVC(model-view-controller)模型-視圖-控制器的結(jié)構(gòu)和組件,利用它可以開(kāi)發(fā)更靈活、松耦合的web應(yīng)用。MVC模式使得整個(gè)服務(wù)應(yīng)用的各部分(控制邏輯、業(yè)務(wù)邏輯、UI界面展示)分離開(kāi)來(lái),使它們之間的耦合性更低。
創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),貴南網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:貴南等地區(qū)。貴南做網(wǎng)站價(jià)格咨詢:18980820575Model
模型層封裝了整個(gè)應(yīng)用程序的數(shù)據(jù)對(duì)象并且將會(huì)持久化POJO
View
視圖層負(fù)責(zé)渲染模型層的數(shù)據(jù),一般最終使用HTML展示到用戶瀏覽器或移動(dòng)設(shè)備終端
Controller
控制層負(fù)責(zé)處理用戶的請(qǐng)求、構(gòu)建合適的模型數(shù)據(jù)并將其傳輸?shù)揭晥D層進(jìn)行渲染
SpringMVC核心-DispatcherServlet分發(fā)器
SpringMVC框架是設(shè)計(jì)用來(lái)處理所有的HTTP請(qǐng)求和響應(yīng)的,它的核心是圍繞著一個(gè)分發(fā)器DispatcherServlet。在Spring Web MVC DispatcherServlet的請(qǐng)求處理流程如下圖所示:
以下是對(duì)應(yīng)一個(gè)HTTP請(qǐng)求時(shí)分發(fā)器的處理流程:
1.接收到一個(gè)Http請(qǐng)求后,DispatcherServlet 告訴映射處理器HandlerMapping 去調(diào)用相應(yīng)的Controller(控制器)。
2.然后Controller控制器根據(jù)接收到的的請(qǐng)求調(diào)用相應(yīng)的Service服務(wù)方法,基于請(qǐng)求所使用的GET或PUT等其它請(qǐng)求方式。Service方法將會(huì)根據(jù)業(yè)務(wù)邏輯設(shè)置模型數(shù)據(jù)并且返回一個(gè)視圖給DispatcherServlet分發(fā)器。
3.DispatcherServlet 分發(fā)器將會(huì)請(qǐng)求視圖解析器ViewResolver去處理找到該請(qǐng)求對(duì)應(yīng)的已經(jīng)定義的視圖view。
4.一旦視圖確定了,DispatcherServlet 會(huì)將模型數(shù)據(jù)傳輸給該視圖view,最終渲染到用戶瀏覽設(shè)備上。
上述提到的所有組件:映射處理器HandlerMapping, 控制器Controller 和視圖解析器ViewResolver都是WebApplicationContext 的組成部分。WebApplicationContext 擴(kuò)展了ApplicationContext ,但是為web應(yīng)用程序提供了更多的必要的特性。
SpringMVC需要的配置要求
為了將用戶的請(qǐng)求映射到分發(fā)器DispatcherServlet 去處理,需要在web.xml中配置URL映射。
以下是一個(gè)聲明和映射了Demo應(yīng)用HelloWeb的分發(fā)器DispatcherServlet 的配置示例(就是servlet映射配置):
Spring MVC Application HelloWeb org.springframework.web.servlet.DispatcherServlet 1 HelloWeb /