本文來自java面試題,文中為大家分享了spring相關的面試題,希望可以幫助到大家。 1.說一下spring mvc運作流程;2、spring mvc有哪些客戶端;3、@RequestMapping的作用是什麼。
一、說spring mvc 運行流程
(相關推薦:java面試題)
Spring運行流程描述:
1、使用者向伺服器發送請求,請求被Spring 前端控制Servelt DispatcherServlet捕獲;
2、DispatcherServlet對請求URL進行解析,得到請求資源標識符(URI)。然後根據該URI,調用HandlerMapping獲得該Handler配置的所有相關的對象(包括Handler對像以及Handler對象對應的攔截器),最後以HandlerExecutionChain對象的形式返回;
3、DispatcherServlet 根據獲得的Handler ,選擇一個合適的HandlerAdapter;(附註:如果成功獲得HandlerAdapter後,此時將開始執行攔截器的preHandler(...)方法)
4、提取Request中的模型數據,填充Handler入參,開始執行Handler(Controller)。在填充Handler的入參過程中,根據你的配置,Spring將幫你做一些額外的工作:
HttpMessageConveter: 將請求訊息(如Json、xml等資料)轉換成一個對象,將對象轉換為指定的回應資訊;
資料轉換:對請求訊息進行資料轉換。如String轉換成Integer、Double等;
資料根式化:對請求訊息進行資料格式化。如將字串轉換成格式化數字或格式化日期等;
資料驗證: 驗證資料的有效性(長度、格式等),驗證結果儲存到BindingResult或Error中;
5、Handler執行完成後,向DispatcherServlet 傳回一個ModelAndView物件;
6、根據傳回的ModelAndView,選擇一個適合的ViewResolver(必須是已經註冊到Spring容器中的ViewResolver)回傳給DispatcherServlet ;
7、ViewResolver 結合Model和View,來渲染視圖;
8、將渲染結果回傳給客戶端。
二、spring mvc 有哪些元件?
Spring MVC的核心元件:
#1、DispatcherServlet:中央控制器,把請求給轉送到特定的控制類別
2、Controller:具體處理要求的控制器
3、HandlerMapping:映射處理器,負責映射中央處理器轉發給controller時的映射策略
4、ModelAndView:服務層傳回的資料和視圖層的封裝類別
5、ViewResolver:視圖解析器,解析特定的視圖
6、Interceptors :攔截器,負責攔截我們定義的請求然後做處理工作
#三、@RequestMapping 的作用是什麼?
RequestMapping是用來處理請求位址對映的註解,可用來類別或方法上。用於類別上,表示類別中的所有回應請求的方法都是以該位址作為父路徑。
RequestMapping註解有六個屬性,下面我們把她分成三類來說明。
value,method:
value:指定要求的實際位址,指定的位址可以是URI Template 模式(後面將會說明);
#method:指定要求的method類型, GET、POST、PUT、DELETE等;
consumes,produces
#consumes:指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;
produces:指定傳回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才會傳回;
params,headers
params: 指定request中必須包含某些參數值是,才讓該方法處理。
headers:指定request中必須包含某些指定的header值,才能讓此方法處理請求。
以上是2020全新Java面試題目-Spring(三)的詳細內容。更多資訊請關注PHP中文網其他相關文章!