SpringMVC系列(一)(介绍,简单应用以及路径位置通配符)
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