色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

SpringMVC 的介紹

時間:2022-07-13

1. 談一下你對 SpringMVC 框架的理解

SpringMVC 是一個基于 Java 的實現(xiàn)了 MVC ( 全名為Model-View-Controller,即模型-視圖-控制器)設(shè)計模式的請求驅(qū)動類型的輕量級 Web框架,將 web 層進行職責解耦。

1) 其中,模型是用于封裝數(shù)據(jù)的載體,例如,在Java中一般通過一個簡單的POJO(Plain Ordinary Java Object)來表示,其本質(zhì)是一個普通的Java Bean,包含一系列的成員變量及其getter/setter方法。

2) 對于視圖而言,它更加偏重于展現(xiàn),也就是說,視圖決定了界面到底長什么樣子,在Java中可通過JSP來充當視圖,或者通過純HTML的方式進行展現(xiàn),而后者才是目前的主流。

3) 模型和視圖需要通過控制器來進行粘合,例如,用戶發(fā)送一個HTTP請求,此時該請求首先會進入控制器,然后控制器去獲取數(shù)據(jù)并將其封裝為模型,最后將模型傳遞到視圖中進行展現(xiàn)。


2.SpringMVC 主要組件

前端控制器 DispatcherServlet:接收請求、響應(yīng)結(jié)果(可以理解為前端控制器只負責分配任務(wù)),相當于轉(zhuǎn)發(fā)器,有了DispatcherServlet 就減少了其它組件之間的耦合度。

處理器映射器 HandlerMapping:根據(jù)請求的 URL 來查找 Handler(可以理解為找相對應(yīng)的后臺java代碼)。

處理器適配器 HandlerAdapter:負責執(zhí)行 Handler

處理器 Handler:處理業(yè)務(wù)邏輯的 Java 類

視圖解析器 ViewResolver:進行視圖的解析,根據(jù)視圖邏輯名將 ModelAndView 解

析成真正的視圖(view)

視圖 View:View 是一個接口,它的實現(xiàn)類支持不同的視圖類型,如 jsp,freemarker,

pdf 等等


3.SpringMVC執(zhí)行流層及各個組件的作用

image.png

4. SpringMVC 支持的轉(zhuǎn)發(fā)和重定向的寫法

1)轉(zhuǎn)發(fā):

forward 方式:在返回值前面加"forward:",比如 "forward:user.do?name=method4"

2) 重定向:

redirect 方式:在返回值前面加 redirect:, 比如 "redirect:http://www.baidu.com"


5. SpringMVC 的常用注解

1.@RequestMapping:用于處理請求 url 映射的注解,可用于類或方法上。用于類

上,則表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑。

2.@RequestBody:注解實現(xiàn)接收 http 請求的 json 數(shù)據(jù),將 json 轉(zhuǎn)換為 java 對象。

3.@ResponseBody:注解實現(xiàn)將 conreoller 方法返回對象轉(zhuǎn)化為 json 對象響應(yīng)給客

戶。

4.@PathVariable: 用戶從 url 路徑上獲取指定參數(shù),標注在參數(shù)前 @PathVariabel("

要獲取的參數(shù)名")。

5.@RequestParam: 標注在方法參數(shù)之前,用于對傳入的參數(shù)做一些限制,支持三個

屬性:

- value:默認屬性,用于指定前端傳入的參數(shù)名稱

- required:用于指定此參數(shù)是否必傳

- defaultValue:當參數(shù)為非必傳參數(shù)且前端沒有傳入?yún)?shù)時,指定一個默認值

6. @ControllerAdvice: 標注在一個類上,表示該類是一個全局異常處理的類。

7. @ExceptionHandler:(Exception.class) 標注在異常處理類中的方法上,表示該方法

可以處理的異常類型。


6. SpringMVC 統(tǒng)一異常處理的思想和實現(xiàn)方式

使用 SpringMVC 之后,代碼的調(diào)用者是 SpringMVC 框架,也就是說最終的異常會拋到

框架中,然后由框架指定異常處理類進行統(tǒng)一處理。

方式一:創(chuàng)建一個自定義異常處理器(實現(xiàn) HandlerExceptionResolver 接口),并實現(xiàn)里面的異常處理方法,然后將這個類交給 Spring 容器管理。

方式二: 在類上加注解(@ControllerAdvice)表明這是一個全局異常處理類在方法上加注解(@ExceptionHandler),在 ExceptionHandler 中有一個value 屬性,可以指定可以處理的異常類型。


7.SpringMVC 中, 如果想通過轉(zhuǎn)發(fā)將數(shù)據(jù)傳遞到前臺,有幾種寫法

方式一:直接使用 request 域進行數(shù)據(jù)的傳遞

request.setAttirbuate("name", value);

方式二:使用 Model 進行傳值,底層會將數(shù)據(jù)放入 request 域進行數(shù)據(jù)的傳遞

model.addAttribuate("name", value);

方式三:使用 ModelMap 進行傳值,底層會將數(shù)據(jù)放入 request 域進行數(shù)據(jù)的傳遞

modelmap.put("name",value);

方式四:借用 ModelAndView 在其中設(shè)置數(shù)據(jù)和視圖

mv.addObject("name",value);

mv.setView("success");

return mv;


8.SpringMVC 中攔截器的使用步驟

1 定義攔截器類:

SpringMVC為我們提供了攔截器規(guī)范的接 口 , 創(chuàng)建一 個類實現(xiàn)

HandlerInterceptor,重寫接口中的抽象方法;

preHandle 方法:在調(diào)用處理器之前調(diào)用該方法,如果該方法返回 true 則請

求繼續(xù)向下進行,否則請求不會繼續(xù)向下進行,處理器也不會調(diào)用

postHandle 方法:在調(diào)用完處理器后調(diào)用該方法

afterCompletion 方法:在前端控制器渲染頁面完成之后調(diào)用此方法

2 注冊攔截器:

在 SpringMVC 核心配置文件中注冊自定義的攔截器

<mvc:interceptors>

<mvc:interceptor>

<mvc:mapping path="攔截路徑規(guī)則"/>

<mvc:exclude-mapping path="不攔截路徑規(guī)則"/>

<bean class="自定義攔截器的類全限定名"/>

</mvc:interceptor>

</mvc:interceptors>


9.在 SpringMVC 中文件上傳的使用步驟是什么樣的? 前臺三要素是什么

文件上傳步驟:

1.加入文件上傳需要的 commons-fileupload 包

2.配置文件上傳解析器,springmvc 的配置文件的文件上傳解析器的 id 屬性必須為

multipartResolver

3.后端對應(yīng)的接收文件的方法參數(shù)類型必須為 MultipartFile,參數(shù)名稱必須與前端

的 name 屬性保持一致


文件上傳前端三要素:

1.form 表單的提交方式必須為 post

2.enctype 屬性需要修改為:multipart/form-data

3.必須有一個type屬性為file的input 標簽,其中需要有一個name 屬性;如果需要

上傳多個文件需要添加 multiple 屬性


10.SpringMVC 中如何解決 GET|POST 請求中文亂碼問題

ISO8859-1 是 tomcat 默認編碼,需要將 tomcat 編碼后的內(nèi)容按 utf-8 編碼。

1)解決 post 請求亂碼問題:在 web.xml 中配置一個 CharacterEncodingFilter 過

濾器,設(shè)置成 utf-8;

image.png


2) get 請求中文參數(shù)出現(xiàn)亂碼解決方法有兩個:

①修改 tomcat 配置文件添加編碼與工程編碼一致,如下:

image.png


②另外一種方法對參數(shù)進行重新編碼:

image.png

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號

與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
掃描二維碼
與項目經(jīng)理交流
ciya68