欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC結(jié)構(gòu)簡介及常用注解匯總

 更新時(shí)間:2021年03月23日 09:55:49   作者:檸檬時(shí)間  
這篇文章主要介紹了SpringMVC結(jié)構(gòu)簡介及常用注解匯總,幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下

MVC結(jié)構(gòu)簡介

Model(模型):數(shù)據(jù)模型,提供要展示的數(shù)據(jù),因此包含數(shù)據(jù)和行為?,F(xiàn)在一般分離為數(shù)據(jù)層Dao和服務(wù)層Service,提供了模型數(shù)據(jù)查詢和模型數(shù)據(jù)的狀態(tài)更新等功能。
View(視圖):負(fù)責(zé)進(jìn)行模型的展示,一般指用戶界面。
Controller(控制器):接受用戶請求,并委托模型進(jìn)行處理(狀態(tài)改變),處理完返回模型數(shù)據(jù)給視圖,交由視圖進(jìn)行展示。

SpringMVC簡介

SpringMVC是SpringFramework的一部分,是Java實(shí)現(xiàn)MVC的輕量級Web框架。
Spring的web框架圍繞DispatcherServlet調(diào)度Servlet進(jìn)行設(shè)計(jì),DispatcherServlet的作用是將請求分發(fā)到不同的處理控制器Controller。
SpringMVC與Spring無縫集成(使用SpringIoc和Aop),使用約定優(yōu)于配置,能夠進(jìn)行簡單junit測試,支持Restful風(fēng)格,異常處理,數(shù)據(jù)映射,攔截器等等。

SpringMVC執(zhí)行流程

  • 用戶發(fā)出請求,DispatcherServlet前置控制器接收并攔截請求
  • HandlerMapping處理器映射根據(jù)DispatcherServlet給予請求url查找handler
  • HandlerExecution表示具體的Handler,其主要作用是根據(jù)url查找對應(yīng)控制器,將解析后的信息傳遞給DispatcherServlet
  • DispatcherServlet根據(jù)解析后的信息交由HandlerAdapter
  • HandlerAdapter按照信息把處理交予對應(yīng)的Controller執(zhí)行
  • Controller處理過后把處理信息如ModelAndView交還HandlerAdapter,HandlerAdapter再把視圖邏輯或模型交還DispatcherServlet
  • DispatcherSerlvet再調(diào)用視圖解析器ViewResovler對邏輯視圖進(jìn)行解析,解析過后再將最終視圖結(jié)果呈現(xiàn)給用戶

常用注解

1. @Controller

@Controller注解的控制器負(fù)責(zé)處理DispatcherServlet分發(fā)的請求,它把用戶請求的數(shù)據(jù)經(jīng)過業(yè)務(wù)處理層處理之后封裝成一個Model,再將該Model返回給對應(yīng)的View進(jìn)行展示。

2. @ResponseBody

@ResponseBody注解用于將Controller的方法返回的對象根據(jù)Http Request Header的Accept內(nèi)容,通過適當(dāng)?shù)腍ttpMessageConverter轉(zhuǎn)換為指定格式后,寫入Response對象的body數(shù)據(jù)區(qū)。

3. @RestController

@Controller和@ResponseBody相加的作用。

4. @RequestMapping

@RequestMapping用于處理請求地址映射的注解,用于類或方法上。用于類上,表示類的所有響應(yīng)請求的方法都是以該地址作為父路徑。
@RequestMappping的常用參數(shù)是value和method,分別表示請求url,請求類型。method有GET,POST,PUT,DELETE四種選擇,http只支持GET和POST,但SpringMVC適配了另外兩種,在使用PUT和DELETE請求時(shí),后臺會將其轉(zhuǎn)換成POST。

5. @PathVariable

@PathVariable能夠映射url綁定的占位符,因此,我們可以把url中的{xxx}占位符綁定到操作方法的參數(shù)@PathVariable{"xxx"}中,增加了restful url構(gòu)造的靈活性。

6. @RequestParam

@RequestParam用于處理請求參數(shù),使用@PathVariable可以獲取請求參數(shù),這是一個Rest風(fēng)格的URL,使用炸占位符的方式攜帶一個參數(shù),但是它并不是真正意義的請求參數(shù)。
@RequestParam標(biāo)識的參數(shù)需要url請求時(shí)一定攜帶,要不然就報(bào)錯,除非@RequestParam的參數(shù)required設(shè)為false。

7. @RequestHeader

@RequestHeader和@RequestParam的用法相同,它能夠獲取請求頭的信息并注入目標(biāo)方法的參數(shù)中

8. @RequestHeader

@CookieValue也和和@RequestParam的用法相同,它是用來獲取cookie值的,它能夠?qū)@取cookie值并注入目標(biāo)方法的參數(shù)中

以上就是SpringMVC結(jié)構(gòu)簡介及常用注解匯總的詳細(xì)內(nèi)容,更多關(guān)于SpringMVC結(jié)構(gòu)和常用注解的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • idea中maven項(xiàng)目模塊變成灰色原因及解決方案

    idea中maven項(xiàng)目模塊變成灰色原因及解決方案

    這篇文章主要介紹了idea中maven項(xiàng)目模塊變成灰色原因及解決方案,文中通過圖文結(jié)合的方式給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • Spring boot注解@Async線程池實(shí)例詳解

    Spring boot注解@Async線程池實(shí)例詳解

    這篇文章主要介紹了Spring boot注解@Async線程池實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • JavaWeb簡單文件上傳流程的實(shí)戰(zhàn)記錄

    JavaWeb簡單文件上傳流程的實(shí)戰(zhàn)記錄

    在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳和下載功能是非常常用的功能,下面這篇文章主要給大家介紹了關(guān)于JavaWeb實(shí)現(xiàn)簡單文件上傳流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • java實(shí)現(xiàn)面板之間切換功能

    java實(shí)現(xiàn)面板之間切換功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)面板之間切換功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • IDEA找不到j(luò)dk該如何解決

    IDEA找不到j(luò)dk該如何解決

    這篇文章主要給大家介紹了關(guān)于IDEA找不到j(luò)dk該如何解決的相關(guān)資料,剛安裝好IDEA后,我們運(yùn)行一個項(xiàng)目時(shí)候,有時(shí)候會遇到顯示找不到Java的JDK,需要的朋友可以參考下
    2023-11-11
  • java中orElse和orElseGet方法區(qū)別小結(jié)

    java中orElse和orElseGet方法區(qū)別小結(jié)

    這篇文章主要給大家介紹了關(guān)于java中orElse和orElseGet方法區(qū)別的相關(guān)資料,兩者之間的區(qū)別細(xì)微,但是卻在某些場景下顯的很重要,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Java 讀取外部資源的方法詳解及實(shí)例代碼

    Java 讀取外部資源的方法詳解及實(shí)例代碼

    這篇文章主要介紹了Java 讀取外部資源的方法詳解及實(shí)例代碼的相關(guān)資料,經(jīng)常有讀取外部資源的要求,如配置文件等等需要讀取,需要的朋友可以參考下
    2017-03-03
  • Java private修飾符失效的原因

    Java private修飾符失效的原因

    在Java編程里,使用private關(guān)鍵字修飾了一個成員,只有成員內(nèi)部可以訪問,其余成員都不可訪問,今天說明一下private功能失效的問題。
    2020-10-10
  • YGC前后新生代是否變大分析詳解

    YGC前后新生代是否變大分析詳解

    要解釋這個問題,我們先要弄清楚YGC的過程,parNew是新生代的gc算法,簡單來說從gc roots開始掃描對象,當(dāng)掃到一個只要是屬于新生代的對象就將其挪到to space,但是老的對象還不會做釋放,直到gc完成之后再看是否釋放老的對象
    2022-01-01
  • java交換排序之奇偶排序?qū)崿F(xiàn)方法

    java交換排序之奇偶排序?qū)崿F(xiàn)方法

    這篇文章主要介紹了java交換排序之奇偶排序?qū)崿F(xiàn)方法,實(shí)例分析了奇偶排序的原理與具體實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-02-02

最新評論