??哈嘍,大家好,我是小浪。接著上篇博客,我們學習了springboot配置日志文件,到此,那么springboot的內(nèi)容也更新的差不多了,由于是初學階段,所以不學習那么深入,那么我們學習框架都知道SSM,當前我們已經(jīng)學習完畢springboot了,那么今天就來學習第二個S,Spring MVC;????
??目錄
一、什么是SpringMVC?
二、為什么要學習Spring MVC?
三、我們需要學習的內(nèi)容
一、連接的功能
二、獲取參數(shù);
?四、后端參數(shù)重命名
五、傳遞JSON對象
一、什么是SpringMVC?
??1、構(gòu)建在Servlet(API)之上的;
??2、是一個web框架;
??3、來自于Spring web MVC模塊;

??Model(模型)是應?程序中?于處理應?程序數(shù)據(jù)邏輯的部分。通常模型對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)。
??View(視圖)是應?程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。
二、為什么要學習Spring MVC?

三、我們需要學習的內(nèi)容
一、連接的功能
1、首先還是我們先學習如何創(chuàng)建一個Spring MVC項目;
那么博主這里演示的是通過springboot項目添加spring web依賴,來創(chuàng)建一個Spring MVC項目,其實在之前咱們的SpringBoot項目已經(jīng)演示過了,只不過前幾篇博客寫的是springboot的知識;
創(chuàng)建的方法可以參考這篇博客:如何創(chuàng)建一個SpringBoot項目。
只不過我們在創(chuàng)建新項目的時候勾選Spring web依賴即可,如上圖所示;
2、選取一個合適的目錄,來創(chuàng)建一個新的Spring NVC項目,完成之后界面如下:
3、刪除多余的文件目錄;
4、鼠標右鍵此項目,點擊紅色箭頭指向,完成項目的初始化;
勾選maven,點擊OK;
5、觀察下面兩個文件變成藍色說明初始化完成;
6、在demo包下新建一個類TestController:
代碼:
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@RequestMapping("/user")//url路由注冊
@ResponseBody // 告訴程序要返回的是數(shù)據(jù)而不是頁面
@Controller // 讓框架啟動的時候加載當前類,別人才能訪問
public class TestController {
@RequestMapping("/hi")
public String sayHi(){
return "hi,Spring MVC";
}
}
7、運行啟動類DemoApplication,然后在瀏覽器訪問對應的url地址;
我們發(fā)現(xiàn),可以正常訪問,這里需要注意代碼中的那幾個注解,缺一不可,注意理解每個注解的作用,最好能達到記憶的效果;
這里說明一下,我們可以使用這個注解@RestController代替@ResponseBody 和 @Controller,能夠達到一樣的效果,非常的方便;
一、@RequestMapping 是 post 還是 get 請求?
1、首先@RequestMapping肯定是get請求,因為我們通過瀏覽器來訪問,可以在瀏覽器頁面查看網(wǎng)頁源代碼來觀察到;F12查看網(wǎng)頁源代碼,點擊all;
我們借助postman來驗證 @RequestMapping是否為post方法;首先復制我們的url地址,放到postman里面,選擇post請求,點擊send;
由此得出結(jié)論@RequestMapping即支持get請求,又支持post請求;
@RequestMapping(value = "/hi",method = RequestMethod.GET)
@GetMapping("/hi")
或者指定@RequestMapping 支持post請求方法;
@PostMapping("/hi")
@RequestMapping(value = "/hi",method = RequestMethod.POST)
當指定為post請求的時候,我們再次通過postman設置為get請求看能否訪問到;
我們發(fā)現(xiàn)報錯了,說明顯示指定請求生效了;
二、獲取參數(shù);
1、我們可以在原先的函數(shù)sayH中提供一個參數(shù)name,用來舉例;
2、運行啟動類,在瀏覽器url地址里面輸入:http://localhost:8080/user/hi?name=zhangsan
注意當有多個參數(shù)時,前后端進?參數(shù)匹配時,是以參數(shù)的名稱進?匹配的,因此參數(shù)的位置是不影響后端獲取參數(shù)的結(jié)果;
注意在Spring MVC中傳遞參數(shù)一一定要傳包裝類型,而不是基礎類型;
在TestController下新建一個方法;
@RequestMapping("/can")
public String sayHi2(int id){
return "id="+id;
}
瀏覽器url中訪問:
我們發(fā)現(xiàn)直接會報一個500回來,為什么呢?我們把傳遞參數(shù)的類型換成包裝類試一下;
@RequestMapping("/can")
public String sayHi2(Integer id){
return "id="+id;
}
運行結(jié)果:
當需要一個基礎類型,但又忘記傳遞的時候,使用基礎類型會報錯,使用包裝類型不會,只是值為null;
如何進行熱部署?
1、File -> settilngs ->找到紅色箭頭指向的框,勾選后面那個,點擊OK;
2、開啟熱部署,點擊搜索,輸入registry,點擊第一個;
3、老版本ide(2021之前)的走這一步,新版本不用;
idea2021之后的版本:
到這一步,springboot熱部署就已經(jīng)完成了;那么idea熱部署的本質(zhì)是重啟spring boot項目,一般會有3s左右的延遲;
三、傳遞對象;
1、在demo包下新建一個類User;
User類代碼:
package com.example.demo.controller;
import lombok.Data;
@Data
public class User {
private int id;
private String name;
private int age;
}
@GetMapping("/show-user")
public String ShowUser(User user){
return user.toString();
}
瀏覽器輸入url地址,傳遞相應參數(shù)(前端實現(xiàn))http://localhost:8080/user/show-user?id=1&name=zhangsan&age=20
?四、后端參數(shù)重命名
@GetMapping("/show-time")
public String showtime(String t1,String t2){
return "開始時間"+t1 +" 結(jié)束時間"+t2;
}
看起來非常的丑,那么我們可以使用@RequestParam 來重命名前后端的參數(shù)值:
@GetMapping("/show-time")
public String showtime(@RequestParam("t1") String starttime,@RequestParam("t2")
String endtime){
return "開始時間"+starttime +" 結(jié)束時間"+endtime;
}
瀏覽器輸入url地址,同時傳參數(shù)t1,t2;
http://localhost:8080/user/show-time?t1=2023.5.1&t2=2023.5.11

要注意,使用這個注解@RequestParam的時候,必須要傳遞參數(shù),否則會報錯;
當然我們可以通過設置 @RequestParam 中的 required=false 來避免不傳遞時報錯;
@GetMapping("/show-time")
public String showtime(@RequestParam(value = "t1",required = false) String starttime,
@RequestParam(value = "t2",required = false) String endtime){
return "開始時間"+starttime +"| 結(jié)束時間"+endtime;
}
五、傳遞JSON對象

2、TestController類下代碼:
@PostMapping("/show-json-user")
public String showJson(@RequestBody User user){
return user.toString();
}
3、在postman中進行測試;http://localhost:8080/user/showJson
文章來源:http://www.zghlxwxcb.cn/news/detail-470236.html
????OK,那么今天的Spring MVC學習內(nèi)容就到這里啦,下篇博客我們繼續(xù)來肝Spring MVC剩下的內(nèi)容,感謝閱讀,點個訂閱,以便于及時收到更新的信息哈!??????文章來源地址http://www.zghlxwxcb.cn/news/detail-470236.html
到了這里,關于【Spring框架全系列】初識Spring MVC(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!