1. 程式人生 > >SpringMVC 常見面試問題

SpringMVC 常見面試問題

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的條件註冊的一套快速開發整合包