springMVC-@RequestMapping

基本介绍

@RequestMapping注解可以指定控制器/处理器的某个方法的请求的url,

示例 (结合springMVC基本原理理解)

@Controller
public class UserHandler {@RequestMapping(value = "/login")public String login() {System.out.println("登录了");return "/loginOK";}
}

细节一、

@RequestMapping不仅可以修饰方法, 还可以修饰类

当同时修饰类和方法时,jsp请求的url 就是/类请求值/方法请求值

@Controller
@RequestMapping(value =  "user")
public class UserHandler {@RequestMapping(value = "/login")public String login() {System.out.println("登录了");return "loginOK";}
}
<html>
<head><title>Title</title>
</head>
<body>
<h1>登录</h1>
<form action="user/login" method="post"><p>用户名:<input type="text" name="username"></p><p>密码:<input type="password" name="password"></p><p>登录:<input type="submit" name="登录"></p>
</form>
</body>
</html>

细节二、

@RequestMapping还可以指定请求的方式(post/get/put/delete..)

@Controller
@RequestMapping(value =  "user")
public class UserHandler {@RequestMapping(value = "/login", method = RequestMethod.GET)public String login() {System.out.println("登录了");return "loginOK";}
}

相应地, 前端form表单的请求方式也必须改为 method = get

细节三、 

@RequestMapping 还可以指定params和headers(了解)

(1)param1:表示请求必须包含名为param1的请求参数
(2)!=param1:表示请求不能包含名为param1的请求参数
(3)param1!=value1:表示请求包含名为param1的请求参数,但其值不能为value1
(4){“param1=value1”,“param2”}:请求必须包含名为param1和param2的两个请求参数,且param1参数的值必须为value1

示例

params属性指定请求的URL必须包含bookid

@RequestMapping (value="/test1", params="bookid")
public String test1(){
System. out.printIn("test1.……… ").
return"ok";
}

请求url中带一个名为bookid的参数 

<a href="user/test1?bookid=100">test1方法</a><hr/>

细节四、

@RequestMaping 支持Ant风格资源地址(了解)

(1)?:匹配文件名中的一个字符

(2)*:匹配文件名中的任意字符

(3)**:**匹配多层路径

Ant风格的url地址举例
/user/*/createUser:匹配/user/aaa/createUser、/user/bbb/createUser等URL

/user/**/createUser:匹配/user/createUser、/user/aaa/bbb/createUser等

URL/user/createUser??:匹配/user/createUseraa、/user/createUserbb等URL

@RequestlMapping(value="/test2/**"){
public String test2()
System. out.printIn("test2.……. ");
return "ok";
}
<hr><h1>演示Ant风格的请求资源方式</h1>
<a href="user/test2/aa">发送消息1</a><br>
<a href="user/test2/bb/cc/dd">发送消息2</a><br>

细节五、

@RequestMapping 还可以配合@PathVariable 映射URL绑定的占位符。

<!--使用PathVariable方式的url--><hr/>
<a href="user/test3/zhangshan/180">test3方法PathVariable</a><br>
<hr/>
//使用@PathVariable 映射URL 绑定的占位符,这样就不需要在url带上参数名了@RequestMapping(value="/test3/{name}/{id}")public String test3(@PathVariable("name") String name, @PathVariable("id") String id){
{
System.out.println("name = " + name + "--id--" + id);
return "ok";
}

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

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

相关文章

说说你对闭包的理解?闭包使⽤场景

作用链域闭包 闭包的特性&#xff1a;说说你对闭包的理解使用闭包的注意点总结 扩展 循环中使用闭包解决 var 定义函数的问题 解决办法有三种 作用链域 JavaScript 的作用域链&#xff08;Scope Chain&#xff09;是指在代码中访问变量时的查找路径。 当 JavaScript 引擎在执…

ubuntu20.04禁用自动更新(禁用更新、禁用自动升级、禁用apt更新、禁用apt升级、禁用软件更新、禁用系统更新)

想要禁用Ubuntu 20.04的所有自动升级&#xff0c;只需要修改两个文件&#xff1a; /etc/apt/apt.conf.d/10periodic&#xff1a; 这个文件控制APT的周期性任务。你需要编辑这个文件并设置所有选项为"0"&#xff0c;这将禁止任何定期的任务。 你可以使用以下命令快速完…

springCloud项目打包如何把jar放到指定目录下

springCloud项目打包如何把jar发放到指定目录下 maven-antrun-plugin springCloud微服务打包jar&#xff0c;模块过多&#xff1b;我的项目模块结构如下&#xff1a; 我把实体类相关的单独抽离一个模块在service-api下服务单独写在service某块下&#xff0c; 每个模块的jar都…

如何使用jQuery获取当前网址路径

如何使用jQuery获取当前网址路径概述在前端开发中&#xff0c;经常需要获取当前网址的路径&#xff0c;通过使用jQuery库&#xff0c;我们可以轻松地实现这个功能。本文将逐步介绍如何使用jQuery获取当前网址路径。流程步骤以下是实现该功能的步骤&#xff1a;步骤 描述…

人工智能导论复习资料

题型 1、简答题&#xff08;5题&#xff09; 2、设计题 3、综合题 4、论述题&#xff08;10分&#xff09; 考点 第一章 1、人工智能的定义、发展&#xff1b; 2、人工智能的学派、认知观及其间的关系&#xff1b; 3、人工智能要素及系统分类&#xff1b; 4、人工智能的研究、…

Python轴承故障诊断 (七)基于EMD-CNN-LSTM的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN-LSTM的轴承故障诊断分类 3.1 训练数据、测试数据分组&#xff0c;数据分batch 3.…

Fanuc-Focas库函数库中控制机床轴的移动

在Fanuc-Focas库中控制机床轴的移动&#xff0c;通常需要通过调用库函数来实现。具体的函数和参数可能因不同的库版本和机床型号而有所不同&#xff0c;因此请参考相关的Fanuc-Focas文档或手册以获取准确的信息。 一般来说&#xff0c;控制机床轴的移动需要以下几个步骤&#…

canal环境部署

docker 部署canal同步数据 1 环境: 2 Mysql 配置 查看 binlog 是否启用 SHOW VARIABLES LIKE ‘%log_bin%’; 开启 binlog, 修改 my.cnf docker cp mysql:/etc/my.cnf /data/mysql/conf 拷贝文件到临时目录修改后再拷贝回去 # For advice on how to change settings please …

ArchLinux安装使用ifconfig

安装 sudo pacman -S net-tools 使用 ifconfig

【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火

​ &#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《网络安全之道 | 数字征程》⏰墨香寄清辞&#xff1a;千里传信如电光&#xff0c;密码奥妙似仙方。 挑战黑暗剑拔弩张&#xff0c;网络战场誓守长。 ​ 目录 &#x1f608;1. 初识…

Android studio 多渠道打包步骤

在Android Studio中&#xff0c;可以使用Gradle的多渠道打包功能来生成不同渠道的应用包。以下是多渠道打包的步骤&#xff1a; 在项目的build.gradle文件中&#xff0c;添加渠道相关的配置。在android节点下添加productFlavors块&#xff0c;定义不同的渠道&#xff0c;例如&…

渗透实验基础教程(完整版):

#江南的江 #每日鸡汤&#xff1a;影响我们人生的绝不仅仅是环境&#xff0c;其实是心态在控制个人的行动和思想。同时&#xff0c;心态也决定了一个人的视野事业和成就&#xff0c;甚至一生。 #初心和目标&#xff1a;成为网络安全达人。。。 渗透实验基础教程&#xff08;完整…

UniGuiApplication的客户端信息包括以下内容:

UniGuiApplication的客户端信息包括以下内容&#xff1a; UserAgent: 客户端的用户代理信息&#xff0c;用于识别客户端的浏览器类型和版本。Browser: 客户端的浏览器类型&#xff0c;如Chrome、Firefox、Safari等。Platform: 客户端的操作系统平台&#xff0c;如Windows、Mac…

自动驾驶技术:驶向未来的智能之路

导言 自动驾驶技术正引领着汽车产业向着更安全、高效、智能的未来演进。本文将深入研究自动驾驶技术的核心原理、关键技术、应用场景以及对交通、社会的深远影响。 1. 简介 自动驾驶技术是基于先进传感器、计算机视觉、机器学习等技术的创新&#xff0c;旨在实现汽车在不需要人…

关于后端返回给我们的对象或者数组为空时我们把空字符(“”)串变成横杠(“-”)

根据需求&#xff0c;我们分别把他写成两种方法&#xff0c;在我们项目中可以 直接调用该方法&#xff0c;方法如下&#xff1a; 1.把数组中为空的项替换成横杠 //把数组中为空的项替换成横杠 export function filtrateData(data) { data.forEach(obj > { Object.keys(obj)…

鸿蒙(HarmonyOS)应用开发——代理提醒(题目答案)

判断题 1.构造进度条模板通知&#xff0c;name字段当前需要固定配置为downloadTemplate。 正确(True) 2.给通知设置分发时间&#xff0c;需要设置showDeliveryTime为false。 错误(False) 3.OpenHarmony提供后台代理提醒功能&#xff0c;在应用退居后台或退出后&#xff0c…

服务监控-druid监控

一、概述 当前互联网和很多公司&#xff0c;日益都采用阿里数据库连接池druid&#xff0c;druid本身也有监控页面&#xff0c;但是我们自己也需要对监控信息进行采集 &#xff0c;接入自己的监控平台&#xff0c;因此需要能够查询的druid的监控信息 二、方案 方案一&#…

《深入理解计算机系统》学习(3):程序编译和处理器

编译过程 假设一个C程序有两个文件p1.c、p2.c&#xff0c;我们用Unix命令行编译这些代码&#xff1a; linux>gcc -o p p1.c p2.cgcc命令指的就是GCC C编译器&#xff0c;因为这是Linux上默认的编译器&#xff0c;gcc命令调用了一整套程序&#xff0c;将源代码转化为可执行…

Centos安装docker显示 No Package Docker-Ce Available

安装docker 查看当前系统内核 查看方式 uname -r显示如下 [root@test ~]# uname -r 3.10.0-1127.19.1.el7.x86_64重要提示: docker内核版本必须是3.10+以上的版本 1、卸载老版本的 docker 及其相关依赖 yum remove docker docker-common container-selinux docker-selin…

WEB 3D技术 简述React Hook/Class 组件中使用three.js方式

之前 已经讲过了 用vue结合three.js进行开发 那么 自然是少不了react 我们 还是先创建一个文件夹 终端执行 npm init vitelatest输入一下项目名称 然后技术选择 react 也不太清楚大家的基础 那就选择最简单的js 然后 我们就创建完成了 然后 我们用编辑器打开创建好的项目目…