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

news2024/11/15 4:52:45

目录

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.coloradmin.cn/o/1483528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【重温设计模式】装饰模式及其Java示例

装饰模式的介绍 在众多设计模式中,有一种叫做装饰模式,它以一种独特的方式赋予了代码更多的灵活性。 装饰模式是一种结构型设计模式,它允许我们在运行时动态地为对象添加新的行为。这就像是我们在装饰一个房间时,可以随意添加或更…

学习网络编程No.11【传输层协议之UDP】

引言: 北京时间:2023/11/20/9:17,昨天成功更文,上周实现了更文两篇,所以这周再接再厉。当然做题任在继续,而目前做题给我的感觉以套路和技巧偏多,还是那句话很多东西不经历你就是不懂&#xff…

C#入门:简单数据类型和强制类型转换

本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com 本期来讲讲 unity 的脚本语言 —C#,C# 的简单数据类型及范围和强制类型转化的方法。这可是 unity 游戏开发必备技能。 1. 简单数据类型 各个类型的范围: byte -> System.Byte (字节…

roslaunch 报错 numpy与python版本冲突

报错&#xff1a; File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 17, in <module> from . import multiarray File "/usr/lib/python3/dist-packages/numpy/core/multiarray.py", line 14, in <module> from . import…

蓝桥杯练习系统(算法训练)ALGO-992 士兵杀敌(二)

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 南将军手下有N个士兵&#xff0c;分别编号1到N&#xff0c;这些士兵的杀敌数都是已知的。   小工是南将军手下的军师&…

gif闪图如何在线生成?仅需三步在线制作gif闪图

Gif动态图片是一种通过连续播放的一系列图片来展示的。Gif动图的优势是体积小、传播速度快且不受限制。当我们想要将多张图片变成带有闪动效果的gif动图时应该怎么操作呢&#xff1f;这时候&#xff0c;只需要使用在线闪图制作&#xff08;https://www.gif.cn/&#xff09;网站…

【C++初阶】内存管理

目录 一.C语言中的动态内存管理方式 二.C中的内存管理方式 1.new/delete操作内置类型 2.new和delete操作自定义类型 3.浅识抛异常 &#xff08;内存申请失败&#xff09; 4.new和delete操作自定义类型 三.new和delete的实现原理 1.内置类型 2.自定义类型 一.C语…

全部免费!抖音,牛逼了!

相比于百度文心、清华智谱和讯飞星火这些在国内有一定市场知名度的AI工具&#xff0c;字节跳动多少显得有点低调了。 国内的AI工具用了不少&#xff0c;但要是说哪家最有前景&#xff0c;那最看好的还是字节跳动。 倒不是说字节的云雀大模型比上面这几个更牛逼&#xff0c;而…

uniapp_微信小程序_说下动态class(实用性很强)

// 以上图片为例,里面的参数是后端传给你的&#xff0c;你不知道有多少东西&#xff0c;更不可能一个一个改&#xff0c;所以引入动态class 代码实现 <view :class"{ pay: item.paymoneystatus 未支付,inpay: item.paymoneystatus 已支付}">{{item.paymon…

Python之Flask框架~四大内置对象

1.g global全局对象 g对象是专门用来保存用户的数据的 g对象在一次请求中的所有的代码的地方, 都是可以使用的 突破变量存储位置限制,为数据传递添加了新的方式,比如我们在before_request产生一个数据在后面需要使 用, 可以保存在g对象中, 在其他视图西数中就可以使用这个数据…

YOLOv6、YOLOv7、YOLOv8网络结构图(清晰版)

承接上一篇博客&#xff1a;YOLOv3、YOLOv4、YOLOv5、YOLOx的网络结构图(清晰版)_yolox网络结构图-CSDN博客 1. YOLOv6网络结构图 2. YOLOv7网络结构图 3. YOLOv8网络结构图

中文地址命名实体识别预测写入csv格式

模型训练参数 中文地址命名实体识别训练和预测 效果 输入数据 输出数据 脚本 import os import numpy as np import torch import json from utils import commonUtils, metricsUtils, decodeUtils, trainUtils import b

《Linux C编程实战》笔记:共享内存

共享内存是分配一块能被其他进程访问的内存。每个共享内存段在内核中维护一个内部数据结构shmid_ds(和消息队列、信号量一样)&#xff0c;该结构定义在头文件linux/shm.h中,这是我从源码里抄的 #include<linux/shm.h> struct shmid_ds {struct ipc_perm shm_perm; /* 操…

pytorch基础2-数据集与归一化

专题链接&#xff1a;https://blog.csdn.net/qq_33345365/category_12591348.html 本教程翻译自微软教程&#xff1a;https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次编辑&#xff1a;2024/3/2&#xff1b;最后编辑&#xff1a;2024/3/2 本教程…

swagger在java中的基本使用

自动生成接口文档&#xff0c;和在线接口测试的框架。 导入依赖 <!-- knife4j对swagger进行一个封装--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><versi…

StarCoder2本地部署上手体验:程序猿要下岗了吗?

StarCoder2简介 ServiceNow、Hugging Face 和 NVIDIA 于2月28日宣布发布 StarCoder2&#xff0c;这是一个用于代码生成的开放式大型语言模型系列&#xff0c;为性能、透明度和成本效益设定了新标准。StarCoder2 是与 BigCode 社区合作开发的&#xff0c;由ServiceNow和 Huggin…

labview数组精讲

题主经过写文章一段时间的发现,许多同学对该软件的理解和编程能力是不太一样的,有些知识相对一些同学较为简单,但是有些同学提问就比较困难。那么针对这个问题,题主打算出一期说白话系列的专栏,在该栏目中用最通俗的大白话和例子去让大家深刻了解这个软件的功能和摸透他的…

Py2neo查询neo4j周杰伦数据库中的节点、关系和路径教程

文章目录 py2neo介绍连接Neo4j数据库py2neo查询图数据库neo4j数据概览使用NodeMatcher查询节点使用RelationshipMatcher查询关系 通过执行Cypher语句查询 py2neo介绍 Neo4j是一款开源图数据库&#xff0c;Py2neo提供了使用Python语言访问Neo4j的接口。本文介绍了使用Py2neo的N…

钉钉机器人发送折线图卡片 工具类代码

钉钉机器人 “创建并投放卡片 接口 ” 可以 发送折线图、柱状图 官方文档&#xff1a;创建并投放卡片 - 钉钉开放平台 0依赖、1模板、2机器人放到内部应用、3放开这个权限 、4工具类、5调用工具类 拼接入参 卡片模板 自己看文档创建&#xff0c;卡片模板的id 有用 0、依赖…

vue2 设置keepAlive之后怎么刷新页面数据

场景&#xff1a;移动端有 A、B、C 三个页面&#xff0c;A、B 页面路由设置了keepAlive属性&#xff0c;有下面两个场景&#xff1a; 1、A 页面 --> B 页面&#xff0c;B 页面刷新。 2、C 页面 --> B页面&#xff0c;B 页面不刷新。 一、分为以下两个情况讨论&#xf…