最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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(控制器):接受用戶請(qǐng)求,并委托模型進(jìn)行處理(狀態(tài)改變),處理完返回模型數(shù)據(jù)給視圖,交由視圖進(jìn)行展示。

SpringMVC簡介

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

SpringMVC執(zhí)行流程

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

常用注解

1. @Controller

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

2. @ResponseBody

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

3. @RestController

@Controller和@ResponseBody相加的作用。

4. @RequestMapping

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

5. @PathVariable

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

6. @RequestParam

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

7. @RequestHeader

@RequestHeader和@RequestParam的用法相同,它能夠獲取請(qǐng)求頭的信息并注入目標(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)和常用注解的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java隨機(jī)生成一個(gè)名字和對(duì)應(yīng)拼音的方法

    java隨機(jī)生成一個(gè)名字和對(duì)應(yīng)拼音的方法

    這篇文章主要介紹了java隨機(jī)生成一個(gè)名字和對(duì)應(yīng)拼音的方法,涉及java針對(duì)數(shù)組及隨機(jī)數(shù)操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • 啟動(dòng)異常invalid constant type:15的解決方案

    啟動(dòng)異常invalid constant type:15的解決方案

    今天小編就為大家分享一篇關(guān)于啟動(dòng)異常invalid constant type:15的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 基于Java實(shí)現(xiàn)遍歷文件目錄并去除中文文件名

    基于Java實(shí)現(xiàn)遍歷文件目錄并去除中文文件名

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)遍歷文件目錄并去除中文文件名,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2024-03-03
  • Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡單端口掃描器示例

    Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡單端口掃描器示例

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡單端口掃描器,涉及Java網(wǎng)絡(luò)編程Socket組建、swing組建及多線程相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Spring JDBCTemplate原理及使用實(shí)例

    Spring JDBCTemplate原理及使用實(shí)例

    這篇文章主要介紹了Spring JDBCTemplate原理及使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • myBatis的mapper映射文件之批量處理方式

    myBatis的mapper映射文件之批量處理方式

    這篇文章主要介紹了myBatis的mapper映射文件之批量處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解Java如何簡化條件表達(dá)式

    詳解Java如何簡化條件表達(dá)式

    在復(fù)雜的實(shí)際業(yè)務(wù)中,往往會(huì)出現(xiàn)各種嵌套的條件判斷邏輯。隨著需求的增加,條件邏輯會(huì)變得越來越復(fù)雜。面對(duì)這種情況,簡化判斷邏輯就是不得不做的事情,下面為大家介紹幾種方法
    2022-06-06
  • Java后端實(shí)現(xiàn)異步編程的9種方式總結(jié)

    Java后端實(shí)現(xiàn)異步編程的9種方式總結(jié)

    我們?nèi)粘i_發(fā)的時(shí)候,經(jīng)常說到異步編程,比如說,在注冊(cè)接口,我們?cè)谟脩糇?cè)成功時(shí),用異步發(fā)送郵件通知用戶,那么實(shí)現(xiàn)異步編程一共有多少種方式呢,下面小編就來簡單講講吧
    2025-03-03
  • java使用smortupload上傳和下載文件

    java使用smortupload上傳和下載文件

    這篇文章主要介紹了java使用smortupload上傳和下載文件實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Spring Boot整合Spring Data JPA過程解析

    Spring Boot整合Spring Data JPA過程解析

    這篇文章主要介紹了Spring Boot整合Spring Data JPA過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

铅山县| 遂溪县| 邛崃市| 常山县| 右玉县| 行唐县| 上林县| 青神县| 白山市| 独山县| 鄂尔多斯市| 永仁县| 浙江省| 百色市| 竹山县| 靖远县| 陕西省| 七台河市| 同仁县| 全州县| 海南省| 华阴市| 那坡县| 宁强县| 阜城县| 晋州市| 喀喇沁旗| 亚东县| 河间市| 崇礼县| 理塘县| 房产| 临泽县| 仪陇县| 临武县| 宁阳县| 阳泉市| 玉山县| 桓仁| 阿拉善左旗| 南靖县|