当前位置: 首页 > news >正文

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

相关文章:

  • 机器学习实验报告5-K-means 算法
  • Linux--存储系统探秘:从块设备到inode
  • 影视剧学经典系列-梁祝-陶渊明《感士不遇赋并序》
  • Appium+python自动化(二十三)- Monkeyrunner与Monkey
  • React forwardRef 与 useImperativeHandle 深度解析
  • selenium点击元素出现的obscure问题
  • 设计模式精讲 Day 2:工厂方法模式(Factory Method Pattern)
  • 什么是敏捷中的迭代(Iteration)和 Sprint?
  • 计算机硬件——主板
  • 【旧题新解】第 9 集 带余除法
  • Java 常用类 Arrays:从零到实战的数组操作指南
  • ArkUI-X框架LogInterface使用指南
  • 安卓9.0系统修改定制化____深入解析安卓 9.0 各手机分区:功能、作用与差异 基础篇二
  • Java的DI依赖注入
  • 易采集EasySpider v0.6.3 便携版
  • HTML5+JS实现一个简单的SVG 贝塞尔曲线可视化设计器,通过几个点移动位置,控制曲线的方向
  • Arcgis中,toolbox工具箱中工具莫名报错的解决方法
  • 大模型RAG系统面试题及参考答案
  • 职场灵活性与家庭状态对职业倦怠影响的可视化分析:从数据到洞见的深度解读
  • 2.7 获取激光雷达数据与避障
  • java做网站后台怎么样/seo的基本步骤
  • 国内网站开发语言/网络营销logo
  • 做网站就/app拉新推广赚佣金
  • 网站备案是给什么进行备案/免费网站流量统计工具
  • 网站建站历史/seo自学网免费
  • 工程项目管理软件app/太原百度推广排名优化