SpringMvc面試重點

一、對springmvc的理解

MVC:Model - View - Controler 它分離了表現與交互。
它被分成了三個核心部件:模型、視圖、控制器

  • model(模型):程序的主體,主要包含業務數據和業務邏輯。
  • view(視圖):是程序呈現給用戶的部分,是用戶和程序交互的接口
  • controller(控制器):用來處理用戶輸入數據,以及更新業務模型部分
  1. 想一下爲什麼要出現SpringMVC?
    答案肯定是解耦合,
  2. 哪裏有耦合了呢?
    用戶發送請求到控制層,控制層接受請求後要模型層區處理數據。
    那他就要調用模型層,Java是面向對象開發,那他就得有模型層的對象,那他就得在控制層裏面new一個模型層的對象,才能調用下面的方法,
    數據處理完後,給數據交給視圖層,把數據封裝成jsp對象
  3. 非mvc設計模式,也就是說每一層需要下一層的對象,進行調用,這樣的話,他的耦合度很高,不利於我們的開發,每一層的變化對於前幾層的影響都是很大的,如果某一層有裏面返回給用戶即可。那在模型層裏面也要有視圖層的對象,new view().

在這裏插入圖片描述
二、springmvc的工作原理

  1. 一個大概的流程:客戶端發送請求->前端控制器->處理器映射器->處理器適配器會根據處理器映射器解析的Handler來調用真正的處理器來處理請求->處理器返回一個模型視圖modelandview->視圖解析器進行解析->返回一個視圖對象->前端控制器渲染數據->將得到視圖對象返回給用戶
  2. 我們知道springMVC的出現就是爲了解耦合那麼springmvc到底是怎麼做的呢?
    非常重要的一點:重定向可以解耦合,那麼我們只用把請求轉發不就可以解耦合了嗎;
  1. 前端控制器DispactherServlet,他就是我們廣義上的controller,只轉發和接受請求,當它攔截到請求的時候就會讓對應的controller去處理這個請求,但是他不知道controller在哪?
  2. 處理器映射器登場了- 處理器映射器的作用就是去尋找handler 然後返回結果,需要注意的是它返回給控制器的並不是單個handler而是一個執行鏈chain,這個執行鏈裏有很多攔截器每個攔截器裏面包含的就是handler;
  3. 接下來就該處理器適配器登場了:因爲處理器映射器把執行鏈返回給前端控制器它並不能處理這個執行鏈,而是找到一個合適的處理器適配器去處理這些handler,處理器適配器會調用controller,然後返回一個modelandview對象;
  4. 前端控制器拿到ModelAndView後,他需要解析成真正的物理視圖,他不幹活啊,只負責調度,所以把ModelAndView交給視圖解析器,
  5. 視圖解析器把視圖解析成真正的視圖View後返回給前端控制器。
  6. 那對視圖要請求進行視圖渲染啊,所以他把視圖解析器解析出來的視圖轉發給View進行視圖渲染

在這裏插入圖片描述
三、springmvc的核心組件

  1. 前端控制器DispatcherServlet
  2. 處理器映射器 HandlerMapping
  3. 處理器適配器 HandlerAdapter
  4. 處理器 Handler
  5. 視圖解析器 View reslover
  6. 視圖 view
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章