SpringMvc面試題

f-sm-1. 講下SpringMvc和Struts1,Struts2的比較的優勢

  性能上Struts1>SpringMvc>Struts2 開發速度上SpringMvc和Struts2差不多,比Struts1要高

f-sm-2. 講下SpringMvc的核心入口類是什么,Struts1,Struts2的分別是什么

  SpringMvc的是DispatchServlet,Struts1的是ActionServlet,Struts2的是StrutsPrepareAndExecuteFilter

f-sm-3. SpringMvc的控制器是不是單例模式,如果是,有什么問題,怎么解決

  是單例模式,所以在多線程訪問的時候有線程安全問題,不要用同步,會影響性能的,解決方案是在控制器里面不能寫字段

f-sm-4. SpingMvc中的控制器的注解一般用那個,有沒有別的注解可以替代

  一般用@Controller注解,表示是表現層,不能用用別的注解代替.

f-sm-5. @RequestMapping注解用在類上面有什么作用

  用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。

f-sm-6. 怎么樣把某個請求映射到特定的方法上面

  直接在方法上面加上注解@RequestMapping,并且在這個注解里面寫上要攔截的路徑

f-sm-7. 如果在攔截請求中,我想攔截get方式提交的方法,怎么配置

  可以在@RequestMapping注解里面加上method=RequestMethod.GET

f-sm-8. 如果在攔截請求中,我想攔截提交參數中包含"type=test"字符串,怎么配置

  可以在@RequestMapping注解里面加上params="type=test"

f-sm-9. 我想在攔截的方法里面得到從前臺傳入的參數,怎么得到

  直接在形參里面聲明這個參數就可以,但必須名字和傳過來的參數一樣

f-sm-10. 如果前臺有很多個參數傳入,并且這些參數都是一個對象的,那么怎么樣快速得到這個對象

  直接在方法中聲明這個對象,SpringMvc就自動會把屬性賦值到這個對象里面

f-sm-11. 怎么樣在方法里面得到Request,或者Session

  直接在方法的形參中聲明request,SpringMvc就自動把request對象傳入

f-sm-12. SpringMvc中函數的返回值是什么.

  返回值可以有很多類型,有String, ModelAndView,當一般用String比較好

f-sm-13. SpringMvc怎么處理返回值的

  SpringMvc根據配置文件中InternalResourceViewResolver的前綴和后綴,用前綴+返回值+后綴組成完整的返回值

f-sm-14. SpringMVC怎么樣設定重定向和轉發的

  在返回值前面加"forward:"就可以讓結果轉發,譬如"forward:user.do?name=method4" 在返回值前面加"redirect:"就可以讓返回值重定向,譬如"redirect:http://www.baidu.com"

f-sm-15. SpringMvc用什么對象從后臺向前臺傳遞數據的

  通過ModelMap對象,可以在這個對象里面用put方法,把對象加到里面,前臺就可以通過el表達式拿到

f-sm-16. SpringMvc中有個類把視圖和數據都合并的一起的,叫什么

  叫ModelAndView

f-sm-17. 怎么樣把ModelMap里面的數據放入Session里面

  可以在類上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key

f-sm-18. SpringMvc怎么和AJAX相互調用的

  通過Jackson框架就可以把Java里面的對象直接轉化成Js可以識別的Json對象具體步驟如下1.加入Jackson.jar2.在配置文件中配置json的映射3.在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解

f-sm-19. 當一個方法向AJAX返回特殊對象,譬如Object,List等,需要做什么處理

  要加上@ResponseBody注解

f-sm-20. SpringMvc里面攔截器是怎么寫的

  有兩種寫法,一種是實現接口,另外一種是繼承適配器類,然后在SpringMvc的配置文件中配置攔截器即可:<!-- 配置SpringMvc的攔截器 -->
<mvc:interceptors><!-- 配置一個攔截器的Bean就可以了 默認是對所有請求都攔截 --><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>

f-sm-21. 講下SpringMvc的執行流程

       系統啟動的時候根據配置文件創建spring的容器, 首先是發送http請求到核心控制器disPatherServlet,spring容器通過映射器去尋找業務控制器,
使用適配器找到相應的業務類,在進業務類時進行數據封裝,在封裝前可能會涉及到類型轉換,執行完業務類后使用ModelAndView進行視圖轉發,數據放在model中,用map傳遞數據進行頁面顯示。

?

轉載于:https://www.cnblogs.com/t0404/p/10291016.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457582.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457582.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457582.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 鴨子類型

DAY 10. 鴨子類型 這個概念來源于美國印第安納州的詩人詹姆斯惠特科姆萊利&#xff08;James Whitcomb Riley,1849-1916&#xff09;的詩句&#xff1a;”When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.”…

thinkphp一句話疑難解決筆記

URL_PATHINFO_DEPR, depr表示 網頁路徑"分隔符",用"-", 有利于seo,注意是從 sername/index.php(開始的)/home-user-login-var-value開始的,pathinfo也支持普通的參數傳值(僅僅支持參數...). 在thinkphp中,有兩個地方使用depr,另一個就是tpl的文件目錄組織分…

python選取特定行_pandas.DataFrame選取/排除特定行的方法

pandas.DataFrame選取特定行使用Python進行數據分析時&#xff0c;經常要使用到的一個數據結構就是pandas的DataFrame&#xff0c;如果我們想要像Excel的篩選那樣&#xff0c;只要其中的一行或某幾行&#xff0c;可以使用isin()方法&#xff0c;將需要的行的值以列表方式傳入&a…

學校選址_洛谷U3451_帶權中位數

題目描述 在一條大路一旁有許多棟樓&#xff0c;每棟樓里有許多小學生&#xff08;哈哈哈一波小學生來襲&#xff01;&#xff09;。但是這條路上沒有小學&#xff01;&#xff01;&#xff01;&#xff01;所以唯恐世界不亂的牛A打算在路上&#xff08;汽車什么的都不敢來這個…

python 重載的實現(single-dispatch generic function)

DAY 11. python 重載 函數重載是指允許定義參數數量或類型不同的同名函數&#xff0c;程序在運行時會根據所傳遞的參數類型選擇應該調用的函數 &#xff0c;但在默認情況下&#xff0c;python是不支持函數重載的&#xff0c;定義同名函數會發生覆蓋 def foo(a:int):print(fin…

SQL中的多表查詢,以及JOIN的順序重要么?

說法是&#xff0c;一般來說&#xff0c;JOIN的順序不重要&#xff0c;除非你要自己定制driving table。 示例&#xff1a; SELECT a.account_id, c.fed_id, e.fname, e.lname-> FROM account AS a INNER JOIN customer AS c-> ON a.cust_id c.cust_id-> INNER JOIN …

python可變對象 不可變對象_【Python】可變對象和不可變對象

在 Python 中一切都可以看作為對象。每個對象都有各自的 id, type 和 value。id: 當一個對象被創建后&#xff0c;它的 id 就不會在改變&#xff0c;這里的 id 其實就是對象在內存中的地址&#xff0c;可以使用 id() 去查看對象在內存中地址。type: 和 id 一樣當對象唄創建之后…

MySQL 調優基礎(三) Linux文件系統

Linux的文件系統有點像MySQL的存儲引擎&#xff0c;它支持各種各樣的文件系統。它最上層是通過 virtual files system虛擬文件系統作為一個抽象接口層來對外提供調用的。然后下層的各種文件系統實現這些調用接口就行了。 1. Linux 中的 日志文件系統和非日志文件系統 文件內容的…

python 經典類和新式類

DAY 12. python新式類和舊式類 繼承自object基類的類叫做新式類&#xff0c;否則叫做舊式類&#xff0c;python3中的類默認是新式類&#xff0c;之前版本默認是舊式類 rootkail:~# python python 2.7.15 (default,Jul 28 2018,11:29:29) [GCC 8.1.0] on linux2 Type "he…

Why does pthread_cond_signal not work?【轉】

轉自&#xff1a;http://stackoverflow.com/questions/16819169/why-does-pthread-cond-signal-not-work# 0 down vote favorite I am currently learing all around POSIX threads (pthread). I now have created a simple program which increased a shared value by 7 until…

Android開發技術周報 Issue#72

新聞 Android N 最初預覽版&#xff1a;開發者 API 和工具教程 Gradle依賴的統一管理 理解Java垃圾回收機制 淺談 Android 編程思想和架構 由Android 65K方法數限制引發的思考 Android音頻開發&#xff08;1&#xff09;&#xff1a;基礎知識 Android音頻開發&#xff08;…

python 單例模式的四種實現方法

DAY 13. 單例設計 13.1 什么是單例設計 一個類每次實例化返回的都是同一個對象&#xff0c;這種設計模式叫做單例設計&#xff0c;這個類叫做單例類 13.2 實現單例設計的方法 13.2.1 重寫__new__() class Foo:def __new__(cls,*args, **kwargs):# 如果是第一次實例化&…

Redis3.2.5部署(單節點)

1.安裝jdk1.8 [rootsht-logstash-01 ~]# cd /usr/java/ [rootsht-logstash-01 java]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicenseaccept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111…

字節跳動 設計模式 pdf_憑這份pdf我拿下了美團、字節跳動、阿里、小米等大廠的offer...

關于程序員&#xff0c;除了做項目來提高自身的技術之外&#xff0c;還有一種提升自己的專業技能就是&#xff1a;多&#xff01;看&#xff01;書&#xff01;小編整理出一篇Java進階架構師之路的核心知識&#xff0c;同時也是面試時面試官必問的知識點&#xff0c;篇章也是包…

B. One Bomb (#363 Div.2)

B. One Bombtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a description of a depot. It is a rectangular checkered field of n??m size. Each cell in a field can be empty (".") or…

力扣交替打印FooBar

這道題要注意的是兩個線程喚醒和等待的順序&#xff0c;應為第一個線程會比第二個線程更早結束&#xff0c;所以如果第一個線程已經結束&#xff0c;而第二個線程還在等待被喚醒&#xff0c;那第二個線程會一直等待下去&#xff0c;因此第一個線程要先等待后喚醒&#xff0c;這…

項目開發容易出錯情況統計

2016年11月17日 11:30:45 星期四 1.適配&#xff1a; a) APP彈窗大屏幕適配&#xff08;例如&#xff0c; 是否居中&#xff09; 2.按鈕狀態&#xff1a; a) 按鈕點擊后沒有disable 如果新頁面加載卡頓導致用戶多次點擊&#xff0c;生成多次請求 b) 按鈕disable后什么時候enabl…

python會不會出4_無極4網人生苦短,Python會不會被取代?國外網友

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載&#xff0c;轉載請聯系出處。人生苦短&#xff0c;我該不該選擇Python&#xff1f;編程語言幾年一變樣&#xff0c;榜單之爭也是愈演愈烈&#xff0c;還架不住時不時殺出個黑馬……而對于Python&#xff0c;自2010年初以來一直蓬…

android 音頻播放總結 soundlPool,MediaPlay

soundlPool 用于小音頻的播放多個同時播放。 使用步驟&#xff1a; 步驟一&#xff1a; 首先下載音頻文件可以將其放入assets文件夾下或者res下的raw文件夾下&#xff0c;區別在于assets下可以再新建文件夾而raw不行&#xff0c;assets內部單個文件超過1m時可能存在bug而raw不會…

文本分析軟件_十大針對機器學習的文本注釋工具與服務,你選哪個?

房地產和鍵【51CTO.com快譯】目前&#xff0c;從搜索引擎與情感分析&#xff0c;到虛擬助手與聊天機器人&#xff0c;機器學習應用場景中的許多研究領域&#xff0c;都需要通過文本注釋工具與服務來提供準確性。在AI研究與開發行業中&#xff0c;發現或創建可注釋的數據對于項目…