SpringMVC習題

SpringMVC入門

1、請簡述Spring MVC框架的優點。

(1)是Spring框架的一部分,可以方便的利用Spring所提供的其他功能。
(2)靈活性強,易於與其他框架集成。
(3)提供了一個前端控制器DispatcherServlet,使開發人員無需額外開發控制器對象。
(4)可自動綁定用戶輸入,並能正確的轉換數據類型。
(5)內置了常見的校驗器,可以校驗用戶輸入。如果校驗不能通過,那麼就會重定向到輸入表單。
(6)支持國際化。可以根據用戶區域顯示多國語言。
(7)支持多種視圖技術。它支持JSP、Velocity和FreeMarker等視圖技術。
(8)使用基於XML的配置文件,在編輯後,不需要重新編譯應用程序。

2、請簡述Spring MVC框架的工作執行流程。

Spring MVC框架的工作流程如下:
(1)用戶通過瀏覽器向服務器發送請求,請求會被Spring MVC的前端控制器DispatcherServlet所攔截。
(2)DispatcherServlet攔截到請求後,會調用HandlerMapping處理器映射器。
(3)處理器映射器根據請求URL找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一併返回給DispatcherServlet。
(4)DispatcherServlet會通過返回信息選擇合適的HandlerAdapter(處理器適配器)。
(5)HandlerAdapter會調用並執行Handler(處理器),這裏的處理器指的就是程序中編寫的Controller類,也被稱之爲後端控制器。
(6)Controller執行完成後,會返回一個ModelAndView對象,該對象中會包含視圖名或包含模型和視圖名。
(7)HandlerAdapter將ModelAndView對象返回給DispatcherServlet。
(8)DispatcherServlet會根據ModelAndView對象選擇一個合適的ViewReslover(視圖解析器)。
(9)ViewReslover解析後,會向DispatcherServlet中返回具體的View(視圖)。
(10)DispatcherServlet對View進行渲染(即將模型數據填充至視圖中)。
(11)視圖渲染結果會返回給客戶端瀏覽器顯示。

SpringMVC的核心類和註解

1、請簡述@Controller註解的使用步驟。

(1)在相應的類上標註@Controller註解。
(2)在Spring MVC的配置文件中添加相應的掃描配置信息。首先需要在配置文件中引入context名稱空間的配置,然後使用context:component-scan元素指定需要掃描的類包。

2、請列舉請求處理方法的參數類型和返回類型(至少5個)。

請求處理方法的參數類型主要有:HttpServletRequest、HttpServletResponse、HttpSession、Model、HttpMethod等;
請求處理方法的返回類型主要有:ModelAndView、Map、String、void、HttpEntity<?>、View等。

數據綁定

1、請簡述簡單數據類型中的@RequestParam註解及其屬性作用。

@RequestParam註解主要用於對請求中的參數進行定義,多用於在請求參數名與方法形參名不一致時的參數間接綁定。在使用時可以指定他的4個屬性,具體如下:
(1)value:name屬性的別名,這裏指參數的名字,即入參的請求參數名字,如果只使用vaule屬性,則可以省略value屬性名。
(2)name:用於指定請求頭綁定的名稱。
(3)required :用於指定參數是否必須,默認是true,表示請求中一定要有相應的參數。
(4)defaultValue:默認值,表示如果請求中沒有同名參數時的默認值。

2、請簡述包裝POJO類型綁定時的注意事項。

(1)如果查詢條件參數是包裝類的直接基本屬性,則參數名直接用對應的屬性名,如上面代碼中的ordersId;
(2)如果查詢條件參數是包裝類中POJO的子屬性,則參數名必須爲“對象.屬性”,其中“對象”要和包裝POJO中的對象屬性名稱一致,“屬性”要和包裝POJO中的對象子屬性一致。

JSON數據交互和RESTful支持

1、請簡述JSON數據交互兩個註解的作用。

JSON數據交互時,主要使用了兩個註解@RequestBody和@ResponseBody。其中@RequestBody用於將請求體中的數據綁定到方法的形參中,在使用時標準在在方法的形參上。@ResponseBody用於直接返回return對象,在使用時標準在方法上。

2、請簡述靜態資源訪問的幾種配置方式。

靜態資源訪問的配置有3種方式,分別如下:
1)使用<mvc:resources… />元素用於配置靜態資源的訪問路徑。
2)使用mvc:default-servlet-handler標籤,可以訪問所有靜態資源。
3)激活Tomcat默認的Servlet來處理靜態文件訪問。

攔截器

1、請簡述Spring MVC攔截器的定義方式。

通常攔截器類可以通過兩種方式來定義。一種是通過實現HandlerInterceptor接口,或繼承HandlerInterceptor接口的實現類(如HandlerInterceptorAdapter)來定義;另一種是通過實現WebRequestInterceptor接口,或繼承WebRequestInterceptor接口的實現類來定義。

2、請簡述單個攔截器和多個攔截器的執行流程。

單個攔截器在執行時,程序首先會執行攔截器類中的preHandle()方法,如果該方法的返回值爲true,則程序會繼續向下執行處理器中的方法,否則將不再向下執行;在業務處理器(即控制器Controller類)處理完請求後,會執行postHandle()方法,然後會通過DispatcherServlet向客戶端返回響應;在DispatcherServlet處理完請求後,纔會執行afterCompletion()方法。
當有多個攔截器同時工作時,它們的preHandle()方法會按照配置文件中攔截器的配置順序執行,而它們的postHandle()方法和afterCompletion()方法則會按照配置順序的反序執行。

文件上傳下載

1、請簡述上傳表單需要滿足的3個條件。

文件上傳表單需要滿足的3個條件如下:
(1)form表單的method屬性設置爲post;
(2)form表單的enctype屬性設置爲multipart/form-data;
(3)提供的文件上傳輸入框。

2、請簡述如何解決中文文件名稱下載時的亂碼問題。

解決中文文件名稱下載時的亂碼問題,需要從前端頁面發送請求前先對中文名進行統一編碼,然後在後臺控制器類中對文件名稱進行相應的轉碼。在具體實現時可分爲如下兩步:
(1)在下載頁面中對中文文件名編碼。可以使用Servlet API中提供的URLEncoder類中的encoder(String s, String enc)方法將中文轉爲UTF-8編碼。
(2)在後臺控制器類中對文件名根據不同的瀏覽器進行相應的轉碼。

SSM框架整合

1、請簡述SSM框架整合思路。

由於Spring MVC是Spring框架中的一個模塊,所以Spring MVC與Spring之間不存在整合的問題,只要引入相應JAR包就可以直接使用。因此SSM框架的整合就只涉及到了Spring與MyBatis的整合,以及Spring MVC與MyBatis的整合。Spring與MyBatis框架的整合時,通過Spring實例化Bean,然後調用實例對象中的查詢方法來執行MyBatis映射文件中的SQL語句的,如果能夠正確查詢出數據庫中的數據,那麼就可以認爲Spring與MyBatis框架整合成功。加入Spring MVC後,如果可以通過前臺頁面來執行查詢方法,並且查詢出的數據能夠在頁面中正確顯示,那麼就可以認爲三大框架整合成功。

2、請簡述SSM框架整合時,Spring配置文件中的配置信息。

(1)讀取數據庫常量配置文件db.properties的配置信息;
(2)數據源的配置信息;
(3)事務管理器的配置信息;
(4)開啓事務註解的配置;
(5)MyBatis工廠SqlSessionFactory的配置信息;
(6)mapper文件掃描器的配置;
(7)掃描Service層的配置。

結束

1、請簡述系統中各個層次的組成和作用。

BOOT客戶管理系統根據功能的不同,將項目結構主要劃分爲以下幾個層次:
(1)持久對象層(也稱持久層或持久化層):該層由若干持久化類(實體類)組成。
(2)數據訪問層(DAO層):該層由若干DAO接口和MyBatis映射文件組成。接口的名稱統一以Dao結尾,且MyBatis的映射文件名稱要與接口的名稱相同。
(3)業務邏輯層(Service層):該層由若干Service接口和實現類組成。在本系統中,業務邏輯層的接口統一使用Service結尾,其實現類名稱統一在接口名後加Impl。該層主要用於實現系統的業務邏輯。
(4)Web表現層:該層主要包括Spring MVC中的Controller類和JSP頁面。Controller類主要負責攔截用戶請求,並調用業務邏輯層中相應組件的業務邏輯方法來處理用戶請求,然後將相應的結果返回給JSP頁面。

2、請簡述引入SQL文件的過程。

(1)創建數據庫;
(2)選擇所創建的數據庫;
(3)使用source命令導入數據庫文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章