SpringMvc相關(guān)面試題(專題)

詳細(xì)面試資料請(qǐng)加群399809657顿天,或者請(qǐng)留言自取正勒。
1、什么是SpringMvc悼尾?
答:SpringMvc是spring的一個(gè)模塊柿扣,基于MVC的一個(gè)框架,無需中間整合層來整合闺魏。
2未状、Spring MVC的優(yōu)點(diǎn):
答:

1)它是基于組件技術(shù)的.全部的應(yīng)用對(duì)象,無論控制器和視圖,還是業(yè)務(wù)對(duì)象之類的都是 java組件.并且和Spring提供的其他基礎(chǔ)結(jié)構(gòu)緊密集成.

2)不依賴于Servlet API(目標(biāo)雖是如此,但是在實(shí)現(xiàn)的時(shí)候確實(shí)是依賴于Servlet的)

3)可以任意使用各種視圖技術(shù),而不僅僅局限于JSP

4)支持各種請(qǐng)求資源的映射策略

5)它應(yīng)是易于擴(kuò)展的

3、SpringMVC工作原理析桥?
答:

1)客戶端發(fā)送請(qǐng)求到DispatcherServlet

2)DispatcherServlet查詢handlerMapping找到處理請(qǐng)求的Controller

3)Controller調(diào)用業(yè)務(wù)邏輯后司草,返回ModelAndView

4)DispatcherServlet查詢ModelAndView,找到指定視圖

5)視圖將結(jié)果返回到客戶端

4泡仗、SpringMVC流程埋虹?
答:

1)用戶發(fā)送請(qǐng)求至前端控制器DispatcherServlet。

2)DispatcherServlet收到請(qǐng)求調(diào)用HandlerMapping處理器映射器沮焕。

3)處理器映射器找到具體的處理器(可以根據(jù)xml配置吨岭、注解進(jìn)行查找),生成處理器對(duì)象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet峦树。

4)DispatcherServlet調(diào)用HandlerAdapter處理器適配器辣辫。

5)HandlerAdapter經(jīng)過適配調(diào)用具體的處理器(Controller,也叫后端控制器)魁巩。

6)Controller執(zhí)行完成返回ModelAndView急灭。

7)HandlerAdapter將controller執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet。

8)DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器谷遂。

9)ViewReslover解析后返回具體View葬馋。

10)DispatcherServlet根據(jù)View進(jìn)行渲染視圖(即將模型數(shù)據(jù)填充至視圖中)。

11)DispatcherServlet響應(yīng)用戶。

6畴嘶、SpringMvc的控制器是不是單例模式,如果是,有什么問題,怎么解決蛋逾?
答:是單例模式,所以在多線程訪問的時(shí)候有線程安全問題,不要用同步,會(huì)影響性能的,解決方案是在控制器里面不能寫字段。
7窗悯、如果你也用過struts2.簡(jiǎn)單介紹下springMVC和struts2的區(qū)別有哪些?
答:

1)springmvc的入口是一個(gè)servlet即前端控制器区匣,而struts2入口是一個(gè)filter過慮器。

2)springmvc是基于方法開發(fā)(一個(gè)url對(duì)應(yīng)一個(gè)方法)蒋院,請(qǐng)求參數(shù)傳遞到方法的形參亏钩,可以設(shè)計(jì)為單例或多例(建議單例),struts2是基于類開發(fā)欺旧,傳遞參數(shù)是通過類的屬性姑丑,只能設(shè)計(jì)為多例。

3)Struts采用值棧存儲(chǔ)請(qǐng)求和響應(yīng)的數(shù)據(jù)辞友,通過OGNL存取數(shù)據(jù)栅哀,springmvc通過參數(shù)解析器是將request請(qǐng)求內(nèi)容解析,并給方法形參賦值踏枣,將數(shù)據(jù)和視圖封裝成ModelAndView對(duì)象昌屉,最后又將ModelAndView中的模型數(shù)據(jù)通過reques域傳輸?shù)巾撁娓泼伞sp視圖解析器默認(rèn)使用jstl茵瀑。

8、SpingMvc中的控制器的注解一般用那個(gè),有沒有別的注解可以替代躬厌?
答:一般用@Conntroller注解,表示是表現(xiàn)層,不能用用別的注解代替马昨。
9、 @RequestMapping注解用在類上面有什么作用扛施?
答:是一個(gè)用來處理請(qǐng)求地址映射的注解鸿捧,可用于類或方法上。用于類上疙渣,表示類中的所有響應(yīng)請(qǐng)求的方法都是以該地址作為父路徑匙奴。
10、怎么樣把某個(gè)請(qǐng)求映射到特定的方法上面妄荔?
答:直接在方法上面加上注解@RequestMapping,并且在這個(gè)注解里面寫上要攔截的路徑
11泼菌、如果在攔截請(qǐng)求中,我想攔截get方式提交的方法,怎么配置?
答:可以在@RequestMapping注解里面加上method=RequestMethod.GET
12啦租、怎么樣在方法里面得到Request,或者Session哗伯?
答:直接在方法的形參中聲明request,SpringMvc就自動(dòng)把request對(duì)象傳入
13、我想在攔截的方法里面得到從前臺(tái)傳入的參數(shù),怎么得到篷角?
答:直接在形參里面聲明這個(gè)參數(shù)就可以,但必須名字和傳過來的參數(shù)一樣
14焊刹、如果前臺(tái)有很多個(gè)參數(shù)傳入,并且這些參數(shù)都是一個(gè)對(duì)象的,那么怎么樣快速得到這個(gè)對(duì)象?
答:直接在方法中聲明這個(gè)對(duì)象,SpringMvc就自動(dòng)會(huì)把屬性賦值到這個(gè)對(duì)象里面。
15虐块、SpringMvc中函數(shù)的返回值是什么俩滥?
答:返回值可以有很多類型,有String, ModelAndView,當(dāng)一般用String比較好。
16贺奠、SpringMVC怎么樣設(shè)定重定向和轉(zhuǎn)發(fā)的举农?
答:在返回值前面加"forward:"就可以讓結(jié)果轉(zhuǎn)發(fā),譬如"forward:user.do?name=method4" 在返回值前面加"redirect:"就可以讓返回值重定向,譬如"redirect:http://www.baidu.com"
17、SpringMvc用什么對(duì)象從后臺(tái)向前臺(tái)傳遞數(shù)據(jù)的敞嗡?
答:通過ModelMap對(duì)象,可以在這個(gè)對(duì)象里面用put方法,把對(duì)象加到里面,前臺(tái)就可以通過el表達(dá)式拿到颁糟。
18、SpringMvc中有個(gè)類把視圖和數(shù)據(jù)都合并的一起的,叫什么喉悴?
答:叫ModelAndView棱貌。
19、怎么樣把ModelMap里面的數(shù)據(jù)放入Session里面箕肃?
答:可以在類上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key
20婚脱、SpringMvc怎么和AJAX相互調(diào)用的?
答:

通過Jackson框架就可以把Java里面的對(duì)象直接轉(zhuǎn)化成Js可以識(shí)別的Json對(duì)象勺像。

具體步驟如下 :

 1)加入Jackson.jar 

 2)在配置文件中配置json的映射 

 3)在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解

21障贸、當(dāng)一個(gè)方法向AJAX返回特殊對(duì)象,譬如Object,List等,需要做什么處理?
答:要加上@ResponseBody注解
22吟宦、SpringMvc里面攔截器是怎么寫的
答:有兩種寫法,一種是實(shí)現(xiàn)接口,另外一種是繼承適配器類,然后在SpringMvc的配置文件中配置攔截器即可:


<mvc:interceptors>

<bean id="myInterceptor" class="com.et.action.MyHandlerInterceptor"></bean>

<mvc:interceptor>
<mvc:mapping path="/modelMap.do" />
<bean class="com.et.action.MyHandlerInterceptorAdapter" />
</mvc:interceptor>
</mvc:interceptors>
23篮洁、講下SpringMvc的執(zhí)行流程
答:系統(tǒng)啟動(dòng)的時(shí)候根據(jù)配置文件創(chuàng)建spring的容器, 首先是發(fā)送http請(qǐng)求到核心控制器disPatherServlet,spring容器通過映射器去尋找業(yè)務(wù)控制器殃姓,使用適配器找到相應(yīng)的業(yè)務(wù)類袁波,在進(jìn)業(yè)務(wù)類時(shí)進(jìn)行數(shù)據(jù)封裝,在封裝前可能會(huì)涉及到類型轉(zhuǎn)換蜗侈,執(zhí)行完業(yè)務(wù)類后使用ModelAndView進(jìn)行視圖轉(zhuǎn)發(fā)篷牌,數(shù)據(jù)放在model中,用map傳遞數(shù)據(jù)進(jìn)行頁面顯示踏幻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末枷颊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子该面,更是在濱河造成了極大的恐慌夭苗,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吆倦,死亡現(xiàn)場(chǎng)離奇詭異听诸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蚕泽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門晌梨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桥嗤,“玉大人,你說我怎么就攤上這事仔蝌》毫欤” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵敛惊,是天一觀的道長(zhǎng)渊鞋。 經(jīng)常有香客問我,道長(zhǎng)瞧挤,這世上最難降的妖魔是什么锡宋? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮特恬,結(jié)果婚禮上执俩,老公的妹妹穿的比我還像新娘。我一直安慰自己癌刽,他們只是感情好役首,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著显拜,像睡著了一般衡奥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上远荠,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天矮固,我揣著相機(jī)與錄音,去河邊找鬼矮台。 笑死乏屯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘦赫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蛤迎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼确虱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起替裆,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤校辩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后辆童,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宜咒,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年把鉴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了故黑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儿咱。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖场晶,靈堂內(nèi)的尸體忽然破棺而出混埠,到底是詐尸還是另有隱情,我是刑警寧澤诗轻,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布钳宪,位于F島的核電站,受9級(jí)特大地震影響扳炬,放射性物質(zhì)發(fā)生泄漏吏颖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一恨樟、第九天 我趴在偏房一處隱蔽的房頂上張望侦高。 院中可真熱鬧,春花似錦厌杜、人聲如沸奉呛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞧壮。三九已至,卻和暖如春匙握,著一層夾襖步出監(jiān)牢的瞬間咆槽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工圈纺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秦忿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓蛾娶,卻偏偏與公主長(zhǎng)得像灯谣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛔琅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • SpringMVC的工作原理圖: SpringMVC的工作原理圖: SpringMVC流程 1胎许、 用戶發(fā)送請(qǐng)求至前...
    我不餓我不想吃東西閱讀 845評(píng)論 0 1
  • 對(duì)于java中的思考的方向,1必須要看前端的頁面罗售,對(duì)于前端的頁面基本的邏輯辜窑,如果能理解最好,不理解也要知道幾點(diǎn)寨躁。 ...
    神尤魯?shù)婪?/span>閱讀 819評(píng)論 0 0
  • 1. 什么是SpringMVC? SpringMVC是一種基于 Java 的實(shí)現(xiàn)MVC設(shè)計(jì)模型的請(qǐng)求驅(qū)動(dòng)類型的輕量...
    JTravler閱讀 7,811評(píng)論 0 4
  • 四歲的女兒拿著顏料筆在黑色的物品上和白色的紙上畫了幾筆职恳,然后大聲喊我所禀,“媽媽方面,你快來看,為什么我在黑色的上面畫都看...
    夢(mèng)癡_c2cb閱讀 59評(píng)論 0 1
  • 如果不是這次的事件出現(xiàn)蔚叨,我都不知道,原來真的有不留情面辙培,真的有趕盡殺絕式的不容出錯(cuò)蔑水。 其實(shí)對(duì)我也是一次別具一格的教...
    kk卡卡ka閱讀 430評(píng)論 0 1