什麼是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
本羣提供免費的學習指導 架構資料 以及免費的解答
不懂得問題均可以在本羣提出來 以後還會有職業生涯規劃以及面試指導