【SpringMVC篇】探索请求映射路径,Get请求与Post请求

news2024/9/21 2:33:15

🎊专栏【SpringMVC】
🍔喜欢的诗句:天行健,君子以自强不息。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

  • 🌺请求映射路径
    • ⭐报错原因
    • ⭐解决方法
  • 🌺请求与响应
    • 🎄Get请求
    • 🎄Post请求
      • 🎈乱码处理

在这里插入图片描述

请求映射是SpringMVC框架进行请求调度的重要基础。通过请求映射,SpringMVC可以将不同的请求映射到指定的控制器进行处理。所以学习使用请求映射是精通SpringMVC的重要一步。

本文将详细介绍SpringMVC中的请求映射实现。包括路径匹配、请求方法区分、参数绑定等方面。同时,还将说明Get和Post请求的细节区别。希望通过本文的学习,大家可以熟练使用SpringMVC的请求映射功能,更好地进行Web接口开发。
本文还会讲解GET与POST的区别,包括参数传递机制、幂等性等。以及如何处理字符编码问题。这些都是实际应用中需要注意的问题。

与传统Servlet开发相比,SpringMVC让接口开发变得简单高效。我们也不再需要面对繁杂的doGet/doPost处理。通过@RequestMapping一个注解就能优雅地处理请求映射。让我们一起来领略SpringMVC里请求映射的优雅之美!

🌺请求映射路径

我们继续沿用上一篇文章入门案例的代码

新创建一个BookController类

package com.example.controller;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class BookController {
    @RequestMapping("/save")
    @ResponseBody
    public String save(){
        System.out.println("book save ...");
        return "{'module':'book save'}";
    }
}

运行代码后,发现报错了

在这里插入图片描述

⭐报错原因

在开发的时候,每个人设置的请求路径是不一样的,这样子会造成冲突

⭐解决方法

设置模块名作为请求路径前缀
在这里插入图片描述
在这里插入图片描述
我们会看到,SpringMVC通过DispatcherServlet前端控制器解析请求,根据请求方法、路径、参数等映射至处理方法。透过@RequestMapping我们可以轻松实现RESTful接口。结合路径变量、请求参数等,Requests都可以被精确解析。

🌺请求与响应

🎄Get请求

我们创建一个新的springmvc项目,按照下面的结构进行建立
在这里插入图片描述

写入代码
在这里插入图片描述
运行postman

在这里插入图片描述

运行成功

🎄Post请求

在这里插入图片描述
运行成功
在这里插入图片描述

🎈乱码处理

比如我们传进去汉字,就会产生乱码,如下图所示
在这里插入图片描述
在这里插入图片描述
但是我们应该这么去解决呢

解决方法

我们可以用过滤器来处理

在ServletCofig中加入这段代码

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }

在这里插入图片描述
再次运行,成功了
在这里插入图片描述

通过本文,我们已经掌握了SpringMVC强大的请求映射功能,可以对接口请求进行灵活的路径映射和方法绑定。同时也理解了Get和Post请求的细节区别。

SpringMVC中还有很多高级主题,如矩阵变量、媒体类型处理、CORS跨域等。希望读者能继续深入学习和实践SpringMVC,将其作为Web项目的首选框架。

SpringMVC请求映射的功能远不止这些。它还支持类级别的映射,通配符、正则表达式等高级映射方式;支持按请求参数、请求头映射等等。这些我们都可以在以后的学习中继续深入了解。

如果大家在工作中遇到SpringMVC映射方面的问题,或者想讨论更多高级用法,请在评论区与我留言讨论。我们会一起把SpringMVC 用起来!学习编程最重要的就是动手实践,希望大家也要多动手练习。

在这里插入图片描述

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

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

相关文章

OpenCV实现答题卡自动打分!

目录 1,主要原理以及函数介绍 全部代码,以 2 , 实现过程 3,结果展示 1,主要原理以及函数介绍 ap argparse.ArgumentParser() 创建一个ArgumentParser对象,并将其赋值给变量ap。这个对象可以接受我们的脚…

基于springboot实现教师人事档案管理系统项目【项目源码+论文说明】

基于springboot实现教师人事档案管理系统演示 摘要 教师人事档案管理系统理工作是一种繁琐的,务求准确迅速的信息检索工作。随着计算机信息技术的飞速发展,人类进入信息时代,社会的竞争越来越激烈,教师人事档案就越显示出其不可或…

JAVA开发者全家桶工具

一、前言 作为JAVA开发者,编码的时间其实只占平时工作的时间不到30%。作为项目管理和团队协作,平时处理的杂事其实很多,当然也是开发工作的一部分,比如写文档,任务管理,代码review、程序部署等等。这一节介…

墨西哥专线正清和双清包税有什么区别?

在国际贸易中,物流运输是一个至关重要的环节。对于从中国发往墨西哥的商品,物流公司通常会提供不同的运输方式和服务,如正清和双清包税等。那么,这两种方式有何不同呢? 首先,我们来看什么是“正清”和“双清”。 “正…

docker 登录本地仓库harbor问题

1、报错如下: 添加目标harbor 仓库的hosts vim /etc/hosts 2、报错如下: 添加修改/etc/docker/daemon.json文件中的 insecure-registries vim /etc/docker/daemon.json 然后 systemctl daemon-reload systemctl restart docker再次登录

【Hello Algorithm】暴力递归到动态规划(二)

暴力递归到动态规划(二) 背包问题递归版本动态规划 数字字符串改字母字符串递归版本动态规划 字符串贴纸递归版本动态规划 **特别需要注意的是 我们使用数组之前一定要进行初始化 不然很有可能会遇到一些意想不到的错误 比如说在Linux平台上 new出来的in…

易点易动让企业实现低值易耗品的智能化采购管理

对于企业而言,低值易耗品的采购和管理是一项重要的任务。然而,传统的采购管理方式往往繁琐且耗时,容易导致资源浪费和效率低下。为了解决这些问题,我们推出了易点易动采购管理系统,它以其高效、便捷和智能化的特点&…

怎样提取视频中的音频?分享一个一学就会的方法~

每次遇到视频中有好听的背景音乐都会想要保存下来,用于自己的视频创作。于是怎样单独提取视频中的音频部分就成了难题,今天教大家一个简单实用的视频提取音频办法,看完记得点赞收藏哦~ 第一步:打开【音分轨】APP&#…

论文精读-Semi-Supervised Classification with Graph Convolutional Networks

Semi-Supervised Classification with Graph Convolutional Networks 目录 Semi-Supervised Classification with Graph Convolutional Networks一、摘要介绍二、图上的快速近似卷积2.1 谱图卷积 (主要参考链接:[https://www.jianshu.com/p/35212baf6671…

100G SWDM4与100G BIDI SR光模块最新解决方案

随着数据中心和云计算网络的快速发展,高速度、高效率的数据传输需求不断增长。在这种背景下,100G SWDM4(短波分复用技术)和100G BIDI光模块作为两种先进的光模块技术,得到了广泛应用。下面我们来看看这两种光模块的应用…

基于Springboot实现垃圾分类网站管理系统项目【项目源码+论文说明】

基于Springboot实现垃圾分类网站管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述垃…

Fiddler抓包常用功能介绍

Fiddler中常用的功能如下: 停止抓包清空会话窗内容过滤请求解码设置断点 一. 停止抓包 二. 清空会话窗 方法一,工具栏工具: 方法二,命令行形式: 当然,命令行工具也还支持其他命令的输入,这里不…

CDN:加速型与高防型的不同

网络世界中的 CDN,也就是内容分发网络(Content Delivery Network),是当今互联网体验的潜在改变者。它的作用原理可不止于让网页快一点,让我们深入了解一下。 CDN基本原理是通过在世界各地分布的节点服务器,…

视频剪辑达人秘籍:快进时光,精准调整多个视频的播放速度!

在创作视频的过程中,有时候我们可能需要将多个视频进行剪辑和调整,以展现所需的效果和节奏。而其中一个常见的需求就是快进视频,让观众更快地体验内容,提升观影体验。不用担心,我们将教你如何在众多视频中将视频播放速…

2023年【G2电站锅炉司炉】考试资料及G2电站锅炉司炉新版试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年G2电站锅炉司炉考试资料为正在备考G2电站锅炉司炉操作证的学员准备的理论考试专题,每个月更新的G2电站锅炉司炉新版试题祝您顺利通过G2电站锅炉司炉考试。 1、【多选题】《中华人民共和国特种设备安…

微信小程序点击事件bindtap传参

微信小程序点击事件bindtap传参 错误写法正确写法 微信小程序bindtap点击事件如何传参 错误写法 wxml页面 <view class"fix-add" bind:tap"goPage(/family_pages/form_electricity/form_electricity)"><van-icon name"add" /> <…

PMP证书烂大街?过来人理性分析

&#xff08;1&#xff09;究竟是不是智商税&#xff1f; “PMP证书是智商税&#xff0c;报名费这么贵&#xff0c;考了又没啥用” “又不像软考能评职称&#xff0c;地方补贴待遇好&#xff01;考了干嘛&#xff1f;” “考了就能年薪50W&#xff1f;就能当项目经理&#x…

【面试经典150 | 哈希表】有效的字母异位词

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;排序方法二&#xff1a;哈希数组 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于…

上海-华为全联接大会|竹云受邀参加华为云ROMAConnect行业生态联盟成立联合发布会

2023年9月22日&#xff0c;在上海举办的华为全联接大会上&#xff0c;竹云作为华为云全方位合作伙伴代表&#xff0c;受邀参加华为云ROMAConnect行业生态联盟成立联合发布会。华为云PaaS服务产品部副部长张甲磊以及联盟主要成员企业出席发布仪式&#xff0c;共同见证华为云ROMA…

项目结构目录说明--treer的使用

模块化项在模块比较多的时候&#xff0c;需要整理一份各模块的说明&#xff0c;怎么能够直观的和项目对比看比较清晰呢&#xff0c;有没有一种直观体现方式呢&#xff0c;有的&#xff0c;请看本篇文章足够。 效果图&#xff1a; 需要treer即可实现。 安装treer 在项目跟目录…