0 引言
作者正在學習SpringMVC相關內容,學到了一些知識,希望分享給需要短時間想要了解SpringMVC的讀者朋友們,想用通俗的語言講述其中的知識,希望與諸位共勉,共同進步!
1 SpringMVC介紹
SpringMVC本質上是Spring家族中專門做Web的一個模塊,我們熟知對于網頁的開發主要存在前后端分離開發以及前后不分離開發兩種模式,其中第一種模式為現在企業開發中經常使用的模式;前后端不分離主要是服務器控制頁面的轉發和跳轉,而前后端分離就不需要控制頁面的跳轉,后端只需要關注兩個部分:
1)前端發送過來的請求
2)根據請求,相應需要的數據給前端
因為作者學習的是后端開發部分,所以所介紹的內容是以上兩個角度展開介紹。
2 SpringMVC的HelloWorld(小嘗試)
首先創建一個SpringBoot的Maven項目:
第一步:紅框中的三項標注好,分別是選定Spring Boot框架,Maven項目以及自己的JDK版本以及勾選lombok以及Spring Web。
(2)在這個包底下創建一個HELLO類,并寫下代碼:
package org.example.demo123.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class HELLO {@RequestMapping("/hello")@ResponseBody//返回值放在相應體中public String hello(){return "hello SpringMVC !";}
}
其中@RequestMapping("/hello")表示在網頁請求端請求的網址為XXXX/hello,即路徑和方法進行綁定,就是說誰輸入這個網址,就調用這個方法返回值;
@ResponseBody表示需要把方法的返回值存在響應體中返回給網頁。、
之后啟動Demo123Application,表示開啟服務,這樣就可以在網頁中測試是否生效:
展示效果:
看到以下界面說明測試成功!
注意:項目中默認的端口為8080,如果端口被占用可以在配置文件中修改端口即可:
3 SpringMVC路徑位置通配符
(1)?通配符
這個符號可以代表任意一個字符(但一定需要有一個字符),例如我們有:
@RequestMapping("/hell?")@ResponseBody//返回值放在相應體中public String hello1(){return "hello SpringMVC !11111111";}
表示我們輸入任意hell+任意字符都可以調用這個方法,如我們測試/hell1請求訪問:
注意:當輸入localhost:9999/hello的時候會響應hello方法,而不會響應hello1方法,這是因為精確匹配優先!!!
(2)* 通配符
這個符號可以代表任意多個字符(也可以表示沒有字符),例如我們有:
@RequestMapping("/hell*")@ResponseBody//返回值放在相應體中public String hello2(){return "hello SpringMVC !2222222222";}
?如我們測試/hell請求訪問:
或者測試/hellnidjw請求訪問:
(3)** 通配符
這個符號可以代表任意多層路徑,例如我們有:
@RequestMapping("/hello/**")@ResponseBody//返回值放在相應體中public String hello3(){return "hello SpringMVC !3333333";}
如我們測試/hello/1/2de請求訪問:
4 簡化注解:
因為我們每次寫一個方法頭頂上都需要帶注解@ResponseBody,十分麻煩,所以SpingMVC提供了一個新注解@RestController(包含了@Controller和@ResponseBody注解)在類頭上,所以以后方法頭上只需要帶一個@RequestMapping即可:
package org.example.demo123.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HELLO {@RequestMapping("/hello")public String hello(){return "hello SpringMVC !";}}
5 參考:
1.?P84-P88
088.@RequestMapping - 請求限定_嗶哩嗶哩_bilibilihttps://www.bilibili.com/video/BV14WtLeDEit?spm_id_from=333.788.videopod.episodes&vd_source=a19259eb64dbd6c65948ee3815e95f70&p=88