SpringMVC中常用注解與使用方法詳解
MVC簡介
MVC 全名是 Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫, 是一種用于設(shè)計創(chuàng)建 Web 應(yīng)用程序表現(xiàn)層的模式。
Model(模型): 通常指的就是我們的數(shù)據(jù)模型。作用一般情況下用于封裝數(shù)據(jù)。
View(視圖): 通常指的就是我們的 jsp 或者 html。作用一般就是展示數(shù)據(jù)的。 通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。
Controller(控制器): 是應(yīng)用程序中處理用戶交互的部分。作用一般就是處理程序邏輯的。
SpringMVC簡介
SpringMVC 是一種基于 Java 的實(shí)現(xiàn) MVC 設(shè)計模型的請求驅(qū)動類型的輕量級 Web 框架,屬于 Spring FrameWork 的后續(xù)產(chǎn)品,已經(jīng)融合在 Spring Web Flow 里面。Spring 框架提供了構(gòu)建 Web
應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),從而在使用 Spring 進(jìn)行 WEB 開發(fā)時,可以選擇使用 Spring 的 Spring MVC 框架或集成其他 MVC 開發(fā)框架。
SpringMVC 已經(jīng)成為目前最主流的 MVC 框架之一,并且隨著 Spring3.0 的發(fā)布,已成為最優(yōu)秀的 MVC 框架。

SpringMVC中的常用注解
@GetMapping
作用:用于建立請求URL和處理請求方法之間的對應(yīng)關(guān)系
可以出現(xiàn)在類上,請求URL的第一級訪問目錄
可以出現(xiàn)在方法上,請求URL的第二級訪問目錄
value:用于指定請求的URL。它和path屬性的作用是一樣的
method:用于指定請求的方式
params:用于指定限制請求參數(shù)的條件
@Controller
//@RequestMapping("SpringMVC/")
public class HelloController {
//請求方法為get 請求參數(shù)必須有username
@RequestMapping(value = "/hello",method = RequestMethod.GET,params = {"username"})
//@RequestMapping("/hello")
public String sayHello(){
System.out.println("SpringMVC hello~~~");
return "success";
}
}
@RequestParam
作用:把請求中指定名稱的參數(shù)給控制器中的形參賦值
value:請求參數(shù)的名稱
required:請求參數(shù)中必須提供此參數(shù)。默認(rèn)值:true,表示必須提供,如果不提供就報錯。
@RequestMapping("/testRequestParam")
//RequestParam --更名
// 屬性 value=別名 required=必須含有的參數(shù)
public String testRequestParam(@RequestParam(value = "username") String name){
System.out.printf(name);
System.out.println("testRequestParam執(zhí)行了~~~");
return "success";
}
@RequestBody
作用:用于獲取請求體內(nèi)容。直接使用得到key=value&key=vaule...結(jié)構(gòu)的數(shù)據(jù)。get請求方式不適用
required:是否必須有請求體。當(dāng)取值為true時,get請求會報錯。如果取值為false,get請求得到是null。
@RequestMapping("/testRequestBody")
//RequestBody 獲取請求體中的內(nèi)容 如:username=benshan&password=98989&money=200
public String testRequestBody(@RequestBody String body){
System.out.println("testRequestBody執(zhí)行了~~~");
System.out.println(body);
return "success";
}
@PathVariable
作用:用于綁定URL中的占位符。url中有/delete/{id},{id}就是占位符。
@RequestMapping("/testPathVariable/{id}")
//PathVariable使用Restful風(fēng)格,結(jié)構(gòu)清晰,拓展方便
public String testPathVariable(@PathVariable(value = "id") String id){
System.out.println("testPathVariable~~~");
System.out.println(id);
return "success";
}
@RequestHeader
作用:用于獲取請求消息頭
value 提供消息頭名稱
required:是否必須有此消息頭
@RequestMapping("/testRequestHeader")
//testRequestHeader獲取請求頭的值
public String testRequestHeader(@RequestHeader(value = "Accept") String header){
System.out.println("testRequestHeader~~~");
System.out.println(header);
return "success";
}
@CookieValue
作用:用于把指定cookie名稱的值傳入控制器方法參數(shù)
value:指定cookie的名稱
required:是否必須有此cookie
@RequestMapping("/testCookieValue")
//testRequestHeader獲取請求頭的值
public String testCookieValue(@CookieValue(value = "JSESSIONID") String cookie){
System.out.println("testCookieValue~~~");
System.out.println(cookie);
return "success";
}
@ModelAttribute
作用:可以修飾方法和參數(shù)。出現(xiàn)在方法上,表示當(dāng)前方法會在控制器的方法執(zhí)行之前執(zhí)行,先執(zhí)行。出現(xiàn)在參數(shù)上,獲取指定的數(shù)據(jù)給參數(shù)賦值
value 用于獲取數(shù)據(jù)的key
@RequestMapping("/testModelAttribute")
public String testModelAttribute(){
System.out.println("testModelAttribute~~~");
return "success";
}
@ModelAttribute
//在控制器執(zhí)行之前 執(zhí)行
public void showUser(){
System.out.println("showUser執(zhí)行了~~~");
}
@SessionAttributes
作用:用于多次執(zhí)行控制器方法間的參數(shù)共享
value 用于指定存入的屬性名稱
type:用于指定存入的數(shù)據(jù)類型
新注解
@RequestMapping 和 @GetMapping @PostMapping 區(qū)別
@GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫。
@PostMapping是一個組合注解,是@RequestMapping(method = RequestMethod.POST)的縮寫。
到此這篇關(guān)于SpringMVC中常用注解與使用方法詳解的文章就介紹到這了,更多相關(guān)SpringMVC注解與使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java8 stream中Collectors.toMap空指針問題及解決
這篇文章主要介紹了java8 stream中Collectors.toMap空指針問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
使用Java實(shí)現(xiàn)構(gòu)建jenkins的多個job并返回構(gòu)建結(jié)果示例
這篇文章主要介紹了使用Java實(shí)現(xiàn)構(gòu)建jenkins的多個job并返回構(gòu)建結(jié)果示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
idea啟動項(xiàng)目報端口號沖突或被占用的解決方法
這篇文章主要介紹了idea啟動項(xiàng)目報端口號沖突或被占用的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
SpringBoot使用自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏過程詳細(xì)解析
這篇文章主要介紹了SpringBoot自定義注解之脫敏注解詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
SpringBoot整合canal實(shí)現(xiàn)數(shù)據(jù)緩存一致性解決方案
canal主要用途是基于?MySQL?數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi),canal是借助于MySQL主從復(fù)制原理實(shí)現(xiàn),本文將給大家介紹SpringBoot整合canal實(shí)現(xiàn)數(shù)據(jù)緩存一致性解決方案,需要的朋友可以參考下2024-03-03

