【JavaEE】_Spring MVC项目之建立连接

目录

1. Spring MVC程序编写流程

2. 建立连接

2.1 @RequestMapping注解介绍

2.2 @RequestMapping注解使用

2.2.1 仅修饰方法

2.2.2 修饰类与方法

2.3 关于POST请求与GET请求

2.3.1 GET请求

2.3.2 POST请求

2.3.3 限制请求方法


1. Spring MVC程序编写流程

1. 建立连接(客户端和服务器);

2.(浏览器)客户端向服务器发送请求;

3. 服务器向客户端(浏览器)返回响应;

2. 建立连接

在Spring MVC中,使用@RequestMapping实现URL路由映射,完成浏览器对程序的连接;

2.1 @RequestMapping注解介绍

1. @RequestMapping是Spring Web MVC应用程序中最常被使用的注解之一,

用于注册接口的路由映射,

表示服务器接收到请求时,路径为/sayHi的请求就会调用sayHi这个方法的代码;

2. 路由映射:

当用户访问一个URL时,将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射;

2.2 @RequestMapping注解使用

@RequestMapping注解既可以修饰类,也可以修饰方法;

2.2.1 仅修饰方法

当前类没有@RequestMapping修饰,故而URL只需方法路径:

@RequestMapping功能如下:

2.2.2 修饰类与方法

访问地址为:类的路径+方法路径

现将.java文件修改为:

package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/Hi")
@RestController
public class HelloController {@RequestMapping("/sayHi")public String sayHi(){return "Hi, SpringBoot";}@RequestMapping("/sayHello")public String sayHello(){return "Hello ,SpringBoot";}
}

重新启动服务器,此时要填写的URL为:

注:对于注解,可以不以 / 开头,但在开发过程中建议采用标准写法,以 / 开头;

2.3 关于POST请求与GET请求

2.3.1 GET请求

 使用浏览器访问:

使用Fiddler抓包,查看请求详情:

可见@RequestMapping支持GET请求;

2.3.2 POST请求

使用postman构造一个POST请求并发送:

得到的响应为:

可见@RequestMapping也支持POST请求;

综上:@RequestMapping既支持GET请求,也支持POST请求

注:并且,@RequestMapping是支持所有的方法,包括PUT,DELETE等等,

关于HTTP请求方法,可以查看本专栏HTTP请求首行一文,链接如下:

【JavaEE】_HTTP请求首行-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63299495/article/details/136115813

2.3.3 限制请求方法

如果服务器需要限制客户端发送的请求的方法,也可以使用@RequestMapping注解method属性进行限制;

现假设限定客户端请求必须使用GET请求:

.java文件内容如下:

package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/Hi")
@RestController
public class HelloController {@RequestMapping(value = "/sayHi",method = RequestMethod.GET)public String sayHi(){return "Hi, SpringBoot";}@RequestMapping("/sayHello")public String sayHello(){return "Hello ,SpringBoot";}
}

构造一个POST请求并发送: 

得到的响应为:

状态码为405,表示方法不允许;

关于响应状态码,可以查看本专栏HTTP响应一文,链接如下:

【JavaEE】_HTTP响应-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63299495/article/details/136141244注:对于@RequestMapping注解,如果没有写属性名时,默认属性为value/path,即路径;

如果有多个属性,则需加上属性名;

后续将介绍Spring MVC项目关于请求与响应。

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

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

相关文章

TCP为什么要三次握手?

TCP三次握手协议是为了在不可靠的互联网环境中可靠地建立起一个连接,三次握手可以确保两端的发送和接收能力都是正常的。 那么,为什么是三次而不是二次或四次握手呢? 为什么不是二次握手? 如果是二次握手,即客户端发…

Qt5.9.9交叉编译(带sqlite3、OpenSSL)

1、交叉编译工具链 这里ARM平台是ARM CortexA9的,一般交叉编译工具链demo板厂商都会提供,若未提供或想更换新版本的交叉编译工具链可参考以下方式获取。 1.1 下载适用于ARM CortexA9的交叉编译工具链 Linaro Releases下载gcc4的最新版xxxx-i686_arm-li…

蓝桥杯-单片机组基础7-存储器映射扩展与PWM脉冲调制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章:戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写,代码可直接在比赛开发板上使用。 型号:国信天长4T开发板(绿板),芯片:IAP15F2K6…

蓝桥杯练习系统(算法训练)ALGO-993 RP大冒险

资源限制 内存限制:64.0MB C/C时间限制:200ms Java时间限制:600ms Python时间限制:1.0s 问题描述 请尽情使用各种各样的函数来测试你的RP吧~~~ 输入格式 一个数N表示测点编号。 输出格式 一个0~9的数。 样例输入 0 样…

设计模式-结构型模式-外观模式

外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。[DP] 首先,定义子系统的各个组件接口和具体实现类: // 子系统组件接…

Linux:gcc的基本知识

gcc 是一个将C语言文件变成可执行文件的工具。 在Linux中,如果需要将一个C语言文件变得可以执行,那么除了这个文件本身的内容是C语言编写的内容外,还需要gcc这个编译工具进行编译才行。 gcc 使用的格式方法:gcc 要编译的文件 //在该代码下…

云天励飞战略投资神州云海,布局机器人市场

日前,AI上市企业云天励飞(688343.SH)完成了对深圳市神州云海智能科技有限公司(以下简称“神州云海”)的B轮战略投资。 公开资料显示,自2015年于深圳创立以来,神州云海始终聚焦人工智能与服务机器人广阔的应用市场,依托自主的核心算法能力,深耕机器人硬件本体研发,整合上下游产…

Linux系统——LAMP架构

目录 一、LAMP架构组成 1.LAMP定义 2.各组件的主要作用 3.CGI和FastCGI 3.1CGI 3.3CGI和FastCGI比较 4.PHP 4.1PHP简介 4.2PHP的Opcode语言 4.3PHP设置 二、LAMP架构实现 1.编译安装Apache httpd服务 2.编译安装Mysql 3.编译安装PHP 4.安装论坛 5.搭建博客 W…

C++基于多设计模式下的同步异步日志系统day2

📟作者主页:慢热的陕西人 🌴专栏链接:C基于多设计模式下的同步&异步日志系统 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要内容实现了日志代码设计的实…

前端学习第三天-css基础

1. CSS简介 从HTML被发明开始,样式就以各种形式存在。不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制。最初的HTML只包含很少的显示属性。 随着HTML的成长,为了满足页面设计者的要求,HTML添加了很多显示功能。但是随着这些功能…

nginx出现 “414 request-uri too large”

nginx出现 “414 request-uri too large” 1.修改传参方式 POST 2.字段能变成后端获取就自己获取,不用前端传 3.修改nginx配置,添加client_header_buffer_size 512k;large_client_header_buffers 4 512k;配置

机器学习 -- 梯度下降算法加深

梯度下降算法 在机器学习中,梯度下降算法常用于最小化代价函数(或损失函数),以此来优化模型的参数。代价函数衡量的是模型预测值与实际值之间的差异。通过最小化这个函数,我们可以找到模型预测最准确的参数。 代价函…

qt 基于百度API的人脸识别

百度云官网:点击跳转 一、创建应用 跳转进去,可以看到以下界面: 点击红色圈内的“去创建”,创建自己的项目。可以看到以下界面: 输入“应用名称”,并勾选“人脸对比”,还要到页面的最后输入“应…

WPF 滑动条样式

效果图&#xff1a; 浅色&#xff1a; 深色&#xff1a; 滑动条部分代码&#xff1a; <Style x:Key"RepeatButtonTransparent" TargetType"{x:Type RepeatButton}"><Setter Property"OverridesDefaultStyle" Value"true"/&g…

MariaDB MaxScale实现mysql8读写分离

目录 1.MaxScale 是干什么的&#xff1f; 2.MaxScale 实验环境 3.实现数据库主从复制 4.创建用户 1) 创建监控用户 2) 创建路由用户 5.docker 安装MaxScale 6.配置maxscale 使用 maxctrl list servers 命令查看运行状态 查看注册服务 使用 maxctrl list listeners Read-…

k8s单机部署zookeeper

&#xff08;作者&#xff1a;陈玓玏&#xff09; 拉取镜像&#xff1a;docker pull zookeeper&#xff1b;编辑yaml&#xff1a; apiVersion: v1 kind: Service metadata:name: zookeeperlabels:app: zookeeper spec:ports:- name: clientport: 2181protocol: TCPtargetP…

H.266参考软件VTM各版本的性能差异

VTM&#xff08;VVC Test Model&#xff09;&#xff0c;是H.266视频编码标准的参考软件&#xff0c;即是VVC spec.的一种参考实现&#xff0c;代码里包括了H.266的软件编码器和软件解码器实现&#xff0c;代码地址如下&#xff1a; https://vcgit.hhi.fraunhofer.de/jvet/VVCS…

S1---FPGA硬件板级原理图实战导学

视频链接 FPGA板级实战导学01_哔哩哔哩_bilibili FPGA硬件板级原理图实战导学 【硬件电路设计的方法和技巧-哔哩哔哩】硬件电路设计的方法和技巧01_哔哩哔哩_bilibili&#xff08;40min&#xff09; 【高速板级硬件电路设计-哔哩哔哩】 高速板级硬件电路设计1_哔哩哔哩_bil…

外包干了3个月,技术倒退明显...

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

【软考】UML中的图之通信图

目录 1. 说明2. 图示3. 特性4. 例题4.1 例题1 1. 说明 1.通信图强调收发消息的对象的结构组织2.早期版本叫做协作图3.通信图强调参加交互的对象和组织4.首先将参加交互的对象作为图的顶点&#xff0c;然后把连接这些对象的链表示为图的弧&#xff0c;最后用对象发送和接收的消…