Spring MVC面試整理

來源:互聯網
上載者:User

標籤:action   eth   ppi   傳遞資料   路徑名   規則   hand   參數綁定   對象   

  1. Spring MVC執行過程

    1. 用戶端的請求提交到dispatcherServlet

    2. DispatcherServlet查詢一個或者多個handlermapping ,找請求的Controller

    3. DispatcherServlet將請求提交給Controller, Controller調用完畢後返回modelAndView

    4. DispatcherServlet查詢一個或多個對應的前端控制器,將modelAndView傳遞給指定的前端控制器

    5. 將渲染完的視圖返回給用戶端

  2. SpringMVC的Controller為單例的盡量不要設定屬性,而是在方法中

  3. @RequestMapping註解用在類上面代表該類方法的父路徑

  4. SpringMVC與Struts2的主要區別

    • SpringMVC的前端控制器為一個Servlet 而Struts為Filter

    • SpringMVC的Controller為單例,而Struts2的Action為多例

    • SpringMVC是通過將request中的內容解析為形參,將相應和頁面封裝為Modelandview對象,struts2是採用值棧來儲存請求和相應

  5. SpringMVC的攔截器

    • 類實現介面HandlerInterceptor,實現方法,方法分別對應方法執行前 , 執行後 , 頁面渲染後

    • 然後在設定檔中配置攔截器

    • 多個攔截器一起執行的時候preHandler按照配置的順序執行,剩下的兩個攔截器都要在preHandler返回為True時才能執行.

    • postHandler和afterCompletion按照配置順序的逆序調用

  6. json

    • @ResponseBody 輸出json

    • @requestbody 接受json 轉化為pojo

  7. 上傳檔案

    • 前端規則

    • 在設定檔中配置多媒體

    • 在Controller中用MultipartFile來接受檔案

  8. 三大組件和核心

    • 核心 : DispatcherServlet(前端控制器)

    • 三大組件 :

    • ViewResolver : 視圖解析器()

    • HandlerMapping : 處理器映射器組件(尋找路徑名對應的Handler)

    • HandlerAdapter : 處理器適配器組件(執行Handler)

  9. 主要的註解

    • @requestmapping() // 方法的訪問路徑value,method=post 限制請求的方式為get/post

    • @Controller

    • @ResponseBody

    • @RequestBody

    • @

  10. 攔截規則

    • /* 攔截所有,包括jsp

    • / 攔截除了jsp以外的資源

  11. Controller的傳回值

    • ModelAndView : 返回視圖和參數

    • Model : 在方法中傳遞Model,傳回值為String , 直接return 視圖

    • Void : 什麼也不反回

  12. 重新導向和請求轉寄

    • 在路徑前面添加關鍵字 return ‘redirect:/item/itemlist.action‘ return ‘forward:/item/itemlist.action‘
  13. 參數綁定

    • public ModelAndView toEdit(Integer id,HttpServletRequest request,HttpServletResponse response,HttpSession session)
  14. 異常處理

    • 繼承HandlerExceptionResolver 實現對應的方法,對錯誤進行處理

    • springmvc配置<bean class="com.lyh.exception.CustomerException"></bean>

  15. 攔截提交參數中包含"type=test"字串

    • 可以在@RequestMapping註解裡面加上params="type=test"
  16. SpringMvc用什麼對象從後台向前台傳遞資料的

    • 通過ModelMap對象,可以在這個對象裡面用put方法,把對象加到裡面,前台就可以通過el運算式拿到
  17. 怎麼樣把ModelMap裡面的資料放入Session裡面

    • 可以在類上面加上@SessionAttributes註解,裡麵包含的字串就是要放入session裡面的key
  18. SpringMvc的控制器是不是單例模式,如果是,有什麼問題,怎麼解決

    • 是單例模式,所以在多線程訪問的時候有安全執行緒問題,不要用同步,會影響效能的,解決方案是在控制器裡面不能寫欄位

Spring MVC面試整理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.