SpringMVC總結(常見筆面試題)
SpringMVC
1.SpringMVC執行流程
https://www.jianshu.com/p/8a20c547e245
(1)使用者將請求傳送到前端控制器
(2)前端控制器請求處理器對映器查詢Handler(處理器)
(3)處理器對映器向前端控制器返回Handler執行鏈
(4)前端控制器呼叫處理器介面卡去執行Handler
(5)處理器執行Handler
(6)Handler執行完Hander返回ModelAndView給處理器介面卡
(7)處理器介面卡將ModelAndView返回給前端控制器
(8)前端控制器將ModelAndView傳給檢視解析器
(9)檢視解析器解析後返回具體View給前端控制器
(10)前端控制器對view進行渲染檢視(即將模型資料填充到檢視中)
(11)前端控制器向用戶響應結果
2. MVC含義
Model(模型):表示應用程式核心,比如資料庫記錄列表
View(檢視):顯示資料
Cotroller(處理器):處理輸入
3. SpringMVC常用註解
(1)處理器使用 @Controller
(2)@RequestMapping 請求URL
(3)@RequestBody 實現接收http請求的json資料,將json資料轉化java物件
(4)@ResposeBody 實現將物件轉化為json響應給客戶
4. 如何開啟註解處理器和介面卡
一般會在springmvc.xml通過<mvc:annotation-driven>
5. 簡單介紹一下SpringMVC
SpringMVC是一個基於MVC架構的用來簡化web應用程式開發的應用開發框架,是Spring的一個子模組,在Web模型中,SpringMVC是一個很流行的框架,通過把Model,View,Controller分離,把複雜的Web應用分成了幾部分,簡化開發,減少出錯。
6. SpringMVC的優點
(1)基於元件開發
(2)與Spring整合較好
7. SpringMVC與Struts2的區別
(1)SpringMVC的入口是一個servlet即前端控制器,Struts2入口是一個fifter過濾器
(2)SpringMVC是基於方法開發的,可以設計為單例或多例,struts2是基於類開發只能設計為多例模式
8. SpringMVC如何設定重定向和請求轉發
(1)請求轉發:在返回值前加 “forword:” ,如 "forword:user.do?name=method4"
(2)重定向:在返回值前加"redirect","redirect:http//www.baidu.com"
9. SpringMVC的核心入口是DispathServlet
10.SpringMVC的控制器是單例模式的,會存線上程安全問題,解決辦法是:在控制器裡面不要寫欄位(類成員變數)。
11.SpringMVC用什麼物件從後臺向前臺傳遞資料
通過ModelMap
12.怎樣把ModelMap裡面的資料放入Session
可以在類上面加上@SessionAttributes註解
13.解決post和get中文亂碼問題
post:每次在Request解析資料時設定編碼格式,request.setCharacterEncoding(“utf-8”)或者使用編碼過濾器解決
get:修改tomcat伺服器的server.xml檔案