SpringMVC 常見面試問題
阿新 • • 發佈:2019-02-15
SpringMVC流程/原理
- 使用者請求到DispatcherServlet
- DispatcherServlet收到請求呼叫HandlerMapping處理器對映器
- HandlerMapping根據請求url找到具體的處理器,生成處理器物件及處理器攔截器一併放回給DispatcherServlet
- DispatcherServlet通過HandlerAdapter處理器介面卡呼叫處理器
- 執行處理器==controller
- Controller返回ModelAndView,HandlerAdapter將結果返回給DispatcherServlet
- DispatcherServlet將ModelAndView傳給ViewReslover檢視解析器
- ViewReslover解析後返回具體的View
- DispatcherServlet對view進行渲染
- DispatcherServlet響應使用者
流程圖:
亂碼問題
- Post亂碼 : 配置過濾器ChatcterEncodingFilter
- Get亂碼 : tomcat配置編碼與工程編碼一直或程式碼中對引數進行重新編碼
重定向和轉發
在返回值前面加“redirect” 或 “forward”
return "forward:/跳轉的頁面或路由";
重定向和轉發的區別
- 轉發比重定向快,因為重定向要經過客戶端
- 要重定向到另外一個網站,轉發無法做到
- 理解為: 轉發為內部的請求轉發(一次請求),而重定向的話需要再一次請求
全域性異常
自定義實現spring的全域性異常解析器HandlerExceptionResolver
SpringBoot 和 SpringMVC
- 約定優於配置,降低搭建複雜度
- 大部分第三方配置庫開箱即用
- 內建微型tomcat,無需再裝tomcat進行部署專案,maven打包jar就可以直接執行專案
Spring是引擎
SpringMVC 是基於Spring的一套MVC框架
SpringBoot 是基於Spring4的條件註冊的一套快速開發整合包