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

【Spring MVC】创建项目和建立请求连接

我的主页:2的n次方_     

1. MVC

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分。

View (视图): 指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源.
Model (模型): 是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分.
Controller(控制器):可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型。

2. Spring MVC

Spring MVC 是对 MVC 思想的具体实现,此外 Spring MVC 还是一个 web 框架,所以说 Spring MVC 是一个实现了 MVC 模式的 web 框架

3. 项目创建

Spring MVC 项目的创建和上次的 Spring Boot 项目的步骤一样

3.1. 建立连接

在 Spring MVC 中使用 @RequestMapping 来实现 URL 路由的映射,也就是浏览器链接程序的作用

@RequestMapping 是用来注册接口的路由映射的,表示服务器收到请求时,映射的“/hello”路径就会调用 hello 的方法,路径的名称也可以随便写,不用和方法名保持一致

@RestController
public class HelloController {@RequestMapping("/hello")public String hello(){return "hello spring";}
}

运行程序之后,然后在浏览器中输入 http://127.0.0.1:8080/hello 就能访问了

@RestController标识了这是一个控制器类,一个项目中会有很多类和方法,Spring 会对所有的类进行扫描,如果添加了 @RestController注解,才会去访问这个类中有没有 @RequestMapping 注解,如果把 @RestController去掉再访问就会访问不到这个路径

@RequestMapping既可以修饰类,也可以修饰方法,当修饰类和方法时,访问的路径是类路径 + 方法路径,如果不加类路径还是会找不到页面

@RequestMapping 标识⼀个类:设置映射请求的请求路径的初始信息。
@RequestMapping 标识⼀个⽅法:设置映射请求请求路径的具体信息。

@RequestMapping("/user")
@RestController
public class HelloController {@RequestMapping("/hello")public String hello(){return "hello spring";}
}

3.2. 请求

@RequestMapping同时支持 post 请求和 get 请求

@RequestMapping("/v1")
public String method(){return "v1";
}

使用 postman 发送 get 请求和 post 请求都可以得到响应

可以通过设置来只支持 get 请求或者使用 @GetMapping来限制只支持 get 请求

@RequestMapping(value = "/v2",method = RequestMethod.GET)
public String method1(){return "v2";
}
@GetMapping("/v3")
public String method2(){return "v3";
}

无论是 v2 还是 v3 都已经不支持 post 请求了

同理,如果设置为只支持 post 请求或者使用 @PostMapping就不会支持 get 请求了

@RequestMapping(value = "/v4",method = RequestMethod.POST)
public String method3(){return "v4";
}
@PostMapping("v5")
public String method4(){return "v5";
}

在上面的方式中,无论是通过设置 @RequestMapping的方式还是直接使用 @PostMapping@GetMapping 注解的方式都可以

http://www.lryc.cn/news/468441.html

相关文章:

  • 台达A2伺服
  • ReactOS系统中搜索给定长度的空间地址区间中的二叉树
  • Postgresql中和时间相关的字段类型及其适用场景
  • 储能蓝海:技术革新与成本骤降引爆市场
  • java抽象类和接口
  • 法治在沃刷积分-刷文章浏览数
  • 【深度学习实验七】 自动梯度计算
  • JAVA毕业设计192—基于Java+Springboot+vue的个人博客管理系统(源代码+数据库+万字论文+开题+任务书)
  • must be ‘pom‘ but is ‘jar‘解决思路
  • STM32启动文件浅析
  • h5页面与小程序页面互相跳转
  • 探索 JavaScript 事件机制(四):React 合成事件系统
  • openlayers 封装加载本地geojson数据 - vue3
  • 手机号码携号转网查询接口-在线手机号码携号转网查询-手机号码携号转网查询API
  • yolo目标检测和姿态识别和目标追踪
  • Docker搭建开源Web云桌面操作系统Puter和DaedalOS
  • FAQ-为什么交换机发给服务器的日志显示的时间少8小时
  • [表达式]真假计算
  • 记录一次线上环境svchost.exe antimalware service executable 进程占用CPU过高问题
  • Docker 部署 EMQX 一分钟极速部署
  • STL-常用容器-list
  • Lambda 架构
  • Windows电脑设置网络唤醒(Wake-on-LAN)
  • 前端项目构建流程
  • 支持国密算法的数字证书-国密SSL证书详解
  • 【EndNote使用教程】创建文献库、导入文献、文献分类
  • 双十一电容笔选哪个好?!西圣、益博思、吉玛仕电容笔实测对比!
  • 房地产网络安全:主要风险及缓解建议
  • 玩转大模型的第一步——提示词(Prompt)工程【抛砖篇】
  • 火山引擎数据飞轮线上研讨会即将开启,助力消费品牌双十一造爆款