Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
21道Java Spring MVC綜合面試題詳解含答案(值得珍藏)PDF 下載
匿名網(wǎng)友發(fā)布于:2024-01-29 11:25:26
(侵權(quán)舉報(bào))
(假如點(diǎn)擊沒反應(yīng),多刷新兩次就OK!)

21道Java Spring MVC綜合面試題詳解含答案(值得珍藏)PDF 下載   圖1

 

 

 

資料內(nèi)容:

 

 

1.概述
 
1.1 什么是Spring MVC?簡(jiǎn)單介紹下你對(duì)Spring MVC的理
解?
Spring MVC是一個(gè)基于Java的實(shí)現(xiàn)了MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,通過把模型-視圖-
制器分離,將web層進(jìn)行職責(zé)解耦,把復(fù)雜的web應(yīng)用分成邏輯清晰的幾部分,簡(jiǎn)化開發(fā),減少出錯(cuò),方便
組內(nèi)開發(fā)人員之間的配合。
 
1.2 Spring MVC的優(yōu)點(diǎn)
1)可以支持各種視圖技術(shù),而不僅僅局限于JSP;
2)與Spring框架集成(如IoC容器、AOP等);
3)清晰的角色分配:前端控制器(dispatcherServlet) , 請(qǐng)求到處理器映射(handlerMapping),處理器
適配器(HandlerAdapter), 視圖解析器(ViewResolver)。
4) 支持各種請(qǐng)求資源的映射策略。
 
2.核心組件

 

2.1 Spring MVC的主要組件?

1)前端控制器 DispatcherServlet(不需要程序員開發(fā))
作用:接收請(qǐng)求、響應(yīng)結(jié)果,相當(dāng)于轉(zhuǎn)發(fā)器,有了DispatcherServlet 就減少了其它組件之間
的耦合度。
2)處理器映射器HandlerMapping(不需要程序員開發(fā))
作用:根據(jù)請(qǐng)求的URL來(lái)查找Handler
3)處理器適配器HandlerAdapter
注意:在編寫Handler的時(shí)候要按照HandlerAdapter要求的規(guī)則去編寫,這樣適配器HandlerAdapter才可
以正確的去執(zhí)行Handler
4)處理器Handler(需要程序員開發(fā))
5)視圖解析器 ViewResolver(不需要程序員開發(fā))
作用:進(jìn)行視圖的解析,根據(jù)視圖邏輯名解析成真正的視圖(view
6)視圖View(需要程序員開發(fā)jsp
View是一個(gè)接口, 它的實(shí)現(xiàn)類支持不同的視圖類型(jsp,freemarkerpdf等等)
 
2.2 什么是DispatcherServlet
 
SpringMVC框架是圍繞DispatcherServlet來(lái)設(shè)計(jì)的,它用來(lái)處理所有的HTTP請(qǐng)求和響應(yīng)。
 
2.3 什么是Spring MVC框架的控制器?
 
控制器提供一個(gè)訪問應(yīng)用程序的行為,此行為通常通過服務(wù)接口實(shí)現(xiàn)??刂破鹘馕鲇脩糨斎氩⑵滢D(zhuǎn)換為一
個(gè)由視圖呈現(xiàn)給用戶的模型。Spring用一個(gè)非常抽象的方式實(shí)現(xiàn)了一個(gè)控制層,允許用戶創(chuàng)建多種用途的控
制器。
 
2.4 Spring MVC的控制器是不是單例模式,如果是,有什么

問題,怎么解決?

是單例模式,所以在多線程訪問的時(shí)候有線程安全問題,不要用同步,會(huì)影響性能的,解決方案是在控制器
里面不能寫字段。
 
3.工作原理

3.1 Spring MVC工作原理

1)客戶端發(fā)送請(qǐng)求到DispatcherServlet
2DispatcherServlet查詢handlerMapping找到處理請(qǐng)求的Controller
3Controller調(diào)用業(yè)務(wù)邏輯后,返回ModelAndView
4DispatcherServlet查詢ModelAndView,找到指定視圖
5)視圖將結(jié)果返回到客戶端