深刻理解springMVC

什麼是spring MVC前端

Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,能夠選擇使用Spring的SpringMVC框架或集成其餘MVC開發框架,如Struts1(如今通常不用),Struts2(通常老項目使用)等。node

spring mvc簡介程序員

springmvc是spring的一個模塊,提供web層解決方案(基於mvc設計架構)web

採用springmvc的好處面試

Spring MVC中提供一個DispatcherServlet, 無需額外開發。spring

springMVC中使用基於xml的配置文件,能夠編輯,無需從新編譯應用程序。架構

springMVC實例化控制器,並根據用戶輸入來構造bean。mvc

springMVC能夠自動綁定用戶輸入,並正確的轉換數據類型。例如,springMVC能自動解析字 符串,並設置float或decimal類型的屬性。app

springMVC能夠檢驗用戶輸入,若校驗不經過,則重定向回輸入表單。輸入校驗是可選的, 支持編碼方式以及聲明。關於這一點,springMVC內置了常見的校驗器。框架

springMVC是spring框架的一部分。能夠利用spring提供的其它能力。

springMVC支持國際化和本地化,支持根據用戶區域顯示多國語言。

springMVC支持多種視圖技術,最多見的JSP技術以及其它技術包括Velocity和FreeMarker。

使用springMVC的優點

一、清晰的角色分配: 前段控制器(dispatcherServlet) , 請求處處理器映射(handlerMapping),  處理器適配器(HandlerAdapter), 視圖解析器(ViewResolver),

處理器和頁面控制器(Controller),驗證器(Validator),命令對象(Command),

表單對象(FromObject)

二、分工明細

三、和Spring框架無縫結合

spring mvc框架流程圖

SpringMvc整個的執行流程:

一、發起請求到前端控制器(DispatcherServlet )

二、前端控制器請求HandlerMapping查找Handler(能夠根據xml、註解進行查找)

三、處理器映射器HandlerMapping向前端控制器DispatcherServlet 返回Handler

四、前端控制器DispatcherServlet 調用處理器適配器HandlerAdapter 執行Handler

五、處理器適配器HandlerAdapter 執行Handler

六、Handler執行完給處理器適配器返回ModelAndView

七、處理器適配器向前端控制器返回ModelAndView (ModelAndView 是SpringMvc的底層對象 包括model和view)

八、前端控制器請求視圖解析器去解析視圖

  根據邏輯視圖名解析成真正的視圖(jsp)

九、視圖解析器向前端控制器返回view

十、前端控制器進行視圖渲染

  視圖渲染將模型數據(模型數據在ModelAndView對象中)填充到request域

十一、前端控制器向用戶響應結果

組件:

一、前端控制器DispatcherServlet(不須要程序員開發)

做用接收請求,響應結果,至關於轉發器,中央處理器。

有了DispatcherServlet減小了其它組件之間的耦合度。

二、處理器映射器HandlerMapping(不須要程序員開發)

做用:根據請求的url查找Handler

三、處理器適配器HandlerAdapter

做用:按照特定規則(HandlerAdapter要求的規則)去執行Handler

四、處理器Handler(須要程序員開發)

注意:編寫Handler時按照HandlerAdapter的要求去作,這樣適配器才能夠去正確執行Handler

五、視圖解析器View resolver(不須要程序員開發)

做用:進行視圖解析,根據邏輯視圖名解析成真正的視圖(view)

六、視圖View(須要程序員開發jsp)

View是一個接口,實現類支持不一樣的View類型(jsp、freemarker、pdf...)

springMVC經常使用註解

1. 在 struts-config.xml 文件中加入

 

2.在 applicationContext.xml 文件中加入

 

3.cn.base.GetPersonListAction 實現請求響應代碼

能夠看出一次請求需求如此多的步驟,在加上一個項目下來有不少這樣的請求響應,將給配置文件管理帶來很大的麻煩。

通過對 Spring 的深刻應用, Spring 自己提供的 URL 請求控制,對其自然支持可讓咱們不須要 applicationContext.xml 再次聲明一次 URL 請求 Bean ,即減小了 Struts 的聲明 URL ,達到減小些繁瑣的配置。但只是少了一些而已,一樣也會面臨着配置文件的管理問題。

Spring 註解將給咱們的工做帶來些輕鬆,利用反射機制原理出現的註解就是爲了解決配置大量的配置問題。請看下處理一次簡單的請求響應代碼

@Controller --聲明控制器

@RequestMapping("/person") –聲明URL

public class PersonControl extends BaseController {

@Autowired –業務接口注入

private personServices personServices;/*** 得到人員列表*@param request* @param response* @throws Exception*/

@RequestMapping(params = "method=geList") --即處理/person.do? method=geList方法

public void getnodeList(HttpServletRequest request,HttpServletResponse response) throws Exception { //處理請求//處理響應}}

能夠看出,在代碼上加入註解能夠省去咱們上面說的多個配置文件的工做,達到簡便的 MVC 處理請求響應。

再配上簡單的配置文件聲明,便可輕鬆處理項目的所有請求控制工做。


歡迎工做一到五年的Java工程師朋友們加入Java架構開發:744677563

本羣提供免費的學習指導 架構資料 以及免費的解答

不懂得問題均可以在本羣提出來 以後還會有職業生涯規劃以及面試指導  

相關文章
相關標籤/搜索