溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringMVC面試題有哪些

發(fā)布時(shí)間:2022-01-10 10:19:11 來(lái)源:億速云 閱讀:149 作者:iii 欄目:編程語(yǔ)言

這篇“SpringMVC面試題有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“SpringMVC面試題有哪些”文章吧。

  Spring MVC是spring框架的一個(gè)模塊,是基于MVC的輕量級(jí)Web框架。Spring是目前Web開(kāi)發(fā)中的一個(gè)很重要的部分。

  一、SpringMVC有什么優(yōu)點(diǎn)?


  SpringMVC是一個(gè)典型教科書(shū)式的MVC框架,對(duì)于初學(xué)者而言是非常好的。其他優(yōu)點(diǎn)可以概括為:
  1、SpringMVC可以支持各種試圖技術(shù),而不僅僅局限于JSP;
  2、與Spring框架集成(如IoC容器、AOP等);
  3、清晰的角色分配:前端控制器(dispatcherServlet) , 請(qǐng)求到處理器映射(handlerMapping), 處理器適配器(HandlerAdapter), 視圖解析器(ViewResolver);
  4、支持各種請(qǐng)求資源的映射策略;


  二、SpringMVC的主要組件有什么?


  (1)前端控制器 DispatcherServlet。接收請(qǐng)求、響應(yīng)結(jié)果,相當(dāng)于轉(zhuǎn)發(fā)器,有了DispatcherServlet 就減少了其它組件之間的耦合度。
 ?。?)處理器映射器HandlerMapping。根據(jù)請(qǐng)求的URL來(lái)查找Handler。
  (3)處理器適配器HandlerAdapter。在編寫(xiě)Handler的時(shí)候要按照HandlerAdapter要求的規(guī)則去編寫(xiě),這樣適配器HandlerAdapter才可以正確的去執(zhí)行Handler。
 ?。?)處理器Handler。編寫(xiě)Handler時(shí)按照HandlerAdapter的要求去做,這樣適配器才可以去正確執(zhí)行Handler。
  (5)視圖解析器 ViewResolver。進(jìn)行視圖的解析,根據(jù)視圖邏輯名解析成真正的視圖(view)。
 ?。?)視圖View。View是一個(gè)接口, 它的實(shí)現(xiàn)類支持不同的視圖類型(jsp,freemarker,pdf等等)。


  三、SpringMVC和Struts2的區(qū)別有哪些?


  1、springmvc的入口是一個(gè)servlet即前端控制器(DispatchServlet),而struts2入口是一個(gè)filter過(guò)慮器(StrutsPrepareAndExecuteFilter)。
  2、springmvc是基于方法開(kāi)發(fā)(一個(gè)url對(duì)應(yīng)一個(gè)方法),請(qǐng)求參數(shù)傳遞到方法的形參,可以設(shè)計(jì)為單例或多例(建議單例),struts2是基于類開(kāi)發(fā),傳遞參數(shù)是通過(guò)類的屬性,只能設(shè)計(jì)為多例。
  3、Struts采用值棧存儲(chǔ)請(qǐng)求和響應(yīng)的數(shù)據(jù),通過(guò)OGNL存取數(shù)據(jù),springmvc通過(guò)參數(shù)解析器是將request請(qǐng)求內(nèi)容解析,并給方法形參賦值,將數(shù)據(jù)和視圖封裝成ModelAndView對(duì)象,最后又將ModelAndView中的模型數(shù)據(jù)通過(guò)reques域傳輸?shù)巾?yè)面。Jsp視圖解析器默認(rèn)使用jstl。


  四、SpringMVC的使用流程


 ?。?)用戶發(fā)送請(qǐng)求至前端控制器DispatcherServlet;
  (2) DispatcherServlet收到請(qǐng)求后,調(diào)用HandlerMapping處理器映射器,請(qǐng)求獲取Handle;
  (3)處理器映射器根據(jù)請(qǐng)求url找到具體的處理器,生成處理器對(duì)象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet;
 ?。?)DispatcherServlet 調(diào)用 HandlerAdapter處理器適配器;
 ?。?)HandlerAdapter 經(jīng)過(guò)適配調(diào)用 具體處理器(Handler,也叫后端控制器);
  (6)Handler執(zhí)行完成返回ModelAndView;
 ?。?)HandlerAdapter將Handler執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet;
 ?。?)DispatcherServlet將ModelAndView傳給ViewResolver視圖解析器進(jìn)行解析;
 ?。?)ViewResolver解析后返回具體View;
 ?。?0)DispatcherServlet對(duì)View進(jìn)行渲染視圖(即將模型數(shù)據(jù)填充至視圖中)
 ?。?1)DispatcherServlet響應(yīng)用戶。

以上就是關(guān)于“SpringMVC面試題有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI