日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC能响应HTTP请求的原因?

發布時間:2025/3/21 javascript 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC能响应HTTP请求的原因? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很多Java面試官喜歡問這個問題:

一個Spring MVC的項目文件里,開發人員沒有開發自己的Servlet,只通過注解@RequestMapping定義了方法home能響應發向 /mvc/test1的請求。

使用url http://localhost:9098/MavenSandbox/mvc/test1 測試,能觀察到home方法返回的字符串,這背后的工作原理是什么?

我們通過自己的研究來回答。在上述代碼第53行設置斷點。再次訪問url http://localhost:9098/MavenSandbox/mvc/test1,斷點觸發。我們觀察調用棧,發現有一個棧幀DispatcherServlet.doService(HttpServletRequest, HttpServletResponse)。這個Servlet會負責將我們加了@RequestMapping注解的方法里return的字符串加到HttpServletResponse里,這就是為什么我們在瀏覽器里能看到return字符串的原因。

我們看下DispatcherServlet.doService里的HttpServletResponse里是否包含了我們期望的輸出字符串。在調試器里展開response變量:

response->outputBuffer->bb->buff, 在buff里能看到這個字符串數組緩沖:

104是H的ASCII碼,101是e的ASCII碼,108是l的ASCII碼,所以證明了response確實包含了開發人員在home方法里返回的字符串:hello this is a most simple example

最后,DispatcherServlet從哪里來的?

在Eclipse調試器里發現,它是Spring框架的標準Servlet:

org.springframework.web.servlet.DispatcherServlet

這個Servlet正是我們在WEB-INF文件夾的web.xml文件里的Servlet。

因此給面試官的答案為:Spring MVC框架仍然需要Servlet,但這個Servlet是由Spring框架提供,無需應用開發人員重復實現。

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

轉載于:https://www.cnblogs.com/sap-jerry/p/9818110.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Spring MVC能响应HTTP请求的原因?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。