Spring MVC面試整理

来源:http://www.cnblogs.com/liyuhui-Z/archive/2017/11/14/7835349.html
-Advertisement-
Play Games

1. Spring MVC執行過程 1. 客戶端的請求提交到dispatcherServlet 2. DispatcherServlet查詢一個或者多個handlermapping ,找請求的Controller 3. DispatcherServlet將請求提交給Controller, Contr ...


  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沒有值棧的概念,Struts有值棧

      • SpringMVC是方法參數綁定,而Struts是屬性綁定
  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裡面

  18. SpringMvc的控制器是不是單例模式,如果是,有什麼問題,怎麼解決

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

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.本章內容目錄: 概述 運行時數據區域 程式計數器 java虛擬機棧 本地方法棧 java堆 方法區 運行時常量池 直接記憶體 HotSpot虛擬機對象探秘 對象的創建 對象的記憶體佈局 對象的訪問定位 程式計數器 java虛擬機棧 本地方法棧 java堆 方法區 運行時常量池 直接記憶體 對象的創建 ...
  • 1. 什麼是Spring Spring是一個輕量級的容器,他實現了IOC和非侵入的框架,並提供了AOP的實現方式,提供了持久層事務的支持,其讓java開發模塊化,並且貫穿持久層,邏輯層,表現層,讓每一個模塊都可以獨立分開,降低耦合,提高代碼復用率. 2. Spring的好處 Spring提供了IOC ...
  • 從上到下 #grad { background: -webkit-linear-gradient(red, blue); background: -o-linear-gradient(red, blue); background: -moz-linear-gradient(red, blue); b ...
  • 1. struts2的工作原理 客戶端發送請求 經過一系列的過濾器 FilterDispatcher通過ActionMapper來決定這個REquest需要調用的Action FilterDispather交給ActionProxy 通過ConfigurationManager詢問struts.xm ...
  • 常用命令和使用方法如下: man cat 和 tac cat是正序顯示文件內容 tac是倒敘顯示文件內容 sort 對文件內容排序 uniq 忽略文件中重覆行 history 顯示輸入的歷史命令,一般保存兩千行命令 more more命令,功能類似 cat ,cat命令是整個文件的內容從上到下顯示在 ...
  • TensorFlow Serving https://tensorflow.github.io/serving/ 。 生產環境靈活、高性能機器學習模型服務系統。適合基於實際數據大規模運行,產生多個模型訓練過程。可用於開發環境、生產環境。 模型生命周期管理。模型先數據訓練,逐步產生初步模型,優化模型。 ...
  • 說說最近在開發微信小程式語音識別遇到的問題吧 最先使用微信小程式錄音控制項可以拿到silk格式,後來微信官方又支持mp3格式了 但是我們拿到這些格式以後,都還不能直接使用,做語音識別,因為目前百度的語音識別格式不支持mp3格式的 百度php語音識別介面 http://yuyin.baidu.com/d ...
  • 接上篇隨筆。繼續介紹ajax的使用。 上篇友情連接:http://www.cnblogs.com/liluning/p/7831169.html 本篇導航: Ajax響應參數 csrf 跨站請求偽造 jQuery.serialize() 上傳文件 一、Ajax響應參數 上篇最後介紹了ajax的請求參 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...