Spring Web MVC 入门使用

1. 什么是Spring Web MVC

Spring Web MVC是基于Servlet API 构建的原始Web框架,从一开始就包含在Spring框架中。

Servlet 是一套Java Web 开发的规范,或者说是一套Java Web 开发的技术标准。只有规范并不能做任何事情,必须要有人去实现它,实现Servlet就是去实现Servlet规范提到的各种功能,包括类,方法,属性等。例如Tomcat就实现了Servlet,称为“Servlet”容器。

1.1 MVC含义

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

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

 

1.2 什么是Spring MVC

(Spring MVC就是Spring Web MVC)

MVC是一种架构设计模式,而Spring MVC是对MVC思想的具体实现。我们上期创建Spring Boot项目时勾选的 Spring Web 框架,其实就是Spring MVC 框架,也就是说我们上期创建的Spring Boot项目也可以说是Spring MVC项目。

Spring Boot 和SpringMVC的关系就相当于,Spring Boot是一个可以添加很多功能的框架,当然也可以添加 Spring MVC,所以是一个包含的关系。

Spring实现MVC时 ,也结合自身项目的特点,进行了一些改变:

2. 使用Spring MVC

我们学习Spring MVC,重点也就是学习如何通过浏览器和用户进行交互。

  1. 建立连接:将用户浏览器和Java程序连接起来,也就是访问一个能调用我们Spring程序的地址
  2. 请求:用户请求时会带有一些参数,在程序中要想办法获取参数,所以请求的处理主要是获取参数
  3. 响应:执行了业务逻辑后,要把程序执行的结果返回给用户,也就是响应。

 2.1 创建项目

和创建Spring Boot项目相同,在创建时 选择上Spring Web即可

2.2 建立连接

在Spring MVC中使用 @RequsetMapping 注解来建立服务器和客户端的连接,用来指定处理哪些HTTP请求以及对应的路径。

package com.example.j20240313springmvc;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {@RequestMapping("/springMVC")public String say() {return "hello Spring MVC";}
}

@RequsetMapping 也可以修饰类

package com.example.j20240313springmvc;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/request")
@RestController
public class RequestController {@RequestMapping("/springMVC")public String say() {return "hello Spring MVC";}
}

注意访问的url会发生变化:

可以在类中放多个@RequsetMapping 修饰的方法,注意路径不能相同

@RequestMapping("/request")
@RestController
public class RequestController {@RequestMapping("/say1")public String say1() {return "hello Spring MVC";}@RequestMapping("/say2")public String say2() {return "你好 Spring MVC";}
}

2.3 @RequestMapping支持GET请求还是POST请求

我们使用Fiddler抓包:

可以看到@RequsetMapping是支持get请求的。

浏览器发送的请求类型都是GET,我们可以在resources/static下写一个html文件使用post发送一个请求

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>post</title>
</head>
<body><form action = "/request/say2" method = "post"><input type = "submit" value = "发送请求"></form>
</body>
</html>

注意访问时IP和端口号后直接跟文件名,即把static当作根目录。

点击发送

成功跳转到say2 ,Fiddler中也可以看到post请求

2.4 PostMan使用 

作为一个后端开发人员,测试代码还要写html文件显得过于麻烦,所以我们可以使用一些工具来发送请求。

PostMan下载链接:Download Postman | Get Started for Free

注册后登录: 

点击Create 创建,创建完成后,点击Add a request,创建一个请求

我们输入url点击发送:

 

下面这些内容代表传递的参数。

Params代表使用查询字符串传参......

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/541812.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DM数据库安装及使用(Windows、Linux、docker)

Windows 先解压安装包 点击setup安装 下一步 勾选接受然后下一步 下一步 选择典型安装下一步 下一步 搜索DM数据库配置助手然后一直下一步 然后搜索DM管理工具 登录 登录成功 widows版本安装成功 Linux安装 操作系统CPU数据库CentOS7x86_64 架构dm8_20230418_x86_rh6_64 …

首个ChatGPT机器人- Figure 01;李开复旗下零一万物推出Yi系列AI大模型API

&#x1f989; AI新闻 &#x1f680; 首个ChatGPT机器人- Figure 01 摘要&#xff1a;Figure 01是一个由初创公司Figure联合OpenAI开发的人形机器人。它展示了与人类和环境互动的能力&#xff0c;可以说话、看东西&#xff0c;并且可以执行各种任务&#xff0c;如递食物、捡垃…

CSS案例-1.字体样式练习

效果 知识点 字体大小font-size 相对长度单位 说明 em 相对于当前对象内文本的字体尺寸 px 像素,最常用,推荐使用 绝对长度单位 说明 in 英寸 cm 厘米 mm 毫米 pt 点 Unicode字体 字体名称 英文名称 Unicode编码 宋体 SimSun \5B8B\4F53 新宋体 NSimSun \65B0\5B8B\4F53

微服务初识

1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.1.单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打…

理论学习:CNN卷积核与通道讲解

参考链接&#xff1a; CNN卷积核与通道讲解_cnn卷积核如何确定-CSDN博客 单通道卷积 多通道卷积&#xff08;一个卷积核&#xff09; 以彩色图像为例&#xff0c;包含三个通道&#xff0c;分别表示RGB三原色的像素值&#xff0c;输入为&#xff08;3,5,5&#xff09;&#xf…

centos破解root密码以及如何防止他人破解root密码

目录 破解root密码 服务器重启 1.再重启页面上下选择第一个按e进入内核编辑模式 2.找到linux16开头的一行&#xff0c;光标移动到最后添加 init/bin/sh Ctrlx 保存 3.进入单用户模式 4.重新挂在根分区 5.关闭selinux 6.更新密码 passwd 7.在根分区下面创建一个隐藏文件…

对模型性能进行评估(Machine Learning 研习十五)

在上一篇我们已然训练了一个用于对数字图像识别的模型&#xff0c;但我们目前还不知道该模型在识别数字图像效率如何&#xff1f;所以&#xff0c;本文将对该模型进行评估。 使用交叉验证衡量准确性 评估模型的一个好方法是使用交叉验证&#xff0c;让我们使用cross_val_score…

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404解决方法

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404&#xff0c;或者域名后带路径参数刷新就报404 解决方法&#xff1a; 宝塔中站点配置修改&#xff1a;【配置文件】中添加下面代码&#xff0c;具体如图&#xff1a; location / {try_files $uri $uri/ /index.html…

汇总全网免费API,持续更新(新闻api、每日一言api、音乐。。。)

Public&FreeAPI 网址&#xff1a;apis.whyta.cn &#xff08;推荐&#xff09; UomgAPI 网址&#xff1a;https://api.uomg.com 教书先生 网址&#xff1a;https://api.oioweb.cn/ 山海API https://api.shserve.cn/ 云析API铺 https://api.a20safe.com/ 韩小韩…

浅析 Python 的一些底层原理与 CPython

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ Python 是一门强大且易用的脚本语言&#xff0c;以其简洁的语法和全面的功能而闻名&#xff0c;能够有效地支持各种业务的快速实现。但 Python 的设计者有意地隐藏了背后的复杂细节。在解决项目问题时&…

hadoop单机ssh免密登录

1. 在hadoop目录下生成密钥对 [rootmaster centos]# cd /usr/apps/hadoop-2.7.1/ [rootmaster hadoop-2.7.1]# ssh-keygen -t rsa //在hadoop目录下生成密钥对 2.找到密钥对的位置 [rootmaster hadoop-2.7.1]# find / -name .ssh //找到密钥对的位置 cd [rootmaster hadoo…

WRF模型运行教程(ububtu系统)--III.运行WRF模型(官网案例)

零、创建DATA目录 # 1.创建一个DATA目录用于存放数据&#xff08;一般为fnl数据&#xff0c;放在Build_WRF目录下&#xff09;。 mkdir DATA # 2.进入 DATA cd DATA 一、WPS预处理 在模拟之前先确定模拟域&#xff08;即模拟范围&#xff09;,并进行数据预处理&#xff08…