IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> @RequestMapping小结 -> 正文阅读

[Java知识库]@RequestMapping小结

为什么我想去了解这个,最近学习crud,然后需要用到常用的两个注解
@PostMapping和@GetMapping
这些属于符合注解,他们的前身就是这次的主题。
接下来来了解一下@RequestMapping的用法和功能吧。

一、简介

@RequestMapping来映射请求

指定控制器可以处理哪些url请求;

相当于servlet在web.xml中配置

1、可以在方法和类的声明中使用

2、除了name外,其他属性可以定义多个属性值(下面分别介绍属性)

三、测试value和path

1、注解加在login方法上

这时的请求 URL 是相对于 Web 根目录

方法 login() 能处理的 URL 请求路径是基于 Web 应用的,也就是 http://localhost/SpringMVC/login

@Controller
public class UserController {
 
	@RequestMapping("/login")
	public String login() {
		return "success";
	}
}

2、注解在 UserController 类上

这时类的注解是相对于 Web 根目录,而方法上的是相对于类上的路径

能处理的 URL 请求路径则是 http://localhost/SpringMVC/user/login

@Controller
@RequestMapping("/user")
public class UserController {
 
	@RequestMapping("/login")
	public String login() {
		return "success";
	}
}

四、测试method

1简介

主要用来定义接收浏览器发来的何种请求。

实际应用中,很多人并没有按照这个规范做,因为使用GET/POST同样可以完成PUT和DELETE操作,甚至GET也可以完成POST操作,因为GET不需要用到表单,而POST却需要通过表单来发送。

2 method=RequestMethod.GET

@RequestMapping(value=“/login”,method=RequestMethod.GET) 来指定 login()方法 仅处理通过 GET 方式发来的请求

浏览器发来的请求不是GET的话,将收到浏览器返回的错误提示,也就是得通过链接的方式而不是表单的方式:

@Controller
@RequestMapping(path = "/user")
public class UserController {
 
	@RequestMapping(path = "/login", method=RequestMethod.GET)
	public String login() {
		return "success";
	}
}

3、method=RequestMethod.POST

同理

4 method() 方法返回的是 RequestMethod 数组

给 method 同时指定多个请求方式

@Controller
@RequestMapping(path = "/user")
public class UserController {
        // 该方法将同时接收通过GET和POST方式发来的请求
	@RequestMapping(path = "/login", method={RequestMethod.POST,RequestMethod.GET})
	public String login() {
		return "success";
	}
}

五 params属性

表示请求参数,也就是追加在URL上的键值对,多个请求参数以&隔开

使用 params 来限制请求参数,来实现进一步的过滤请求

@Controller
@RequestMapping(path = "/user")
public class UserController {
        
        // 该方法将接收 /user/login 发来的请求,且请求参数必须为 username=kolbe&password=123456
	@RequestMapping(path = "/login", params={"username=kolbe","password=123456"})
	public String login() {
		return "success";
	}
}

六、headers

@RequestMapping 中的 headers 属性,可以限制客户端发来的请求
这个我没遇到过,作为了解

@Controller
@RequestMapping(path = "/user")
public class UserController {
        // 表示只接收本机发来的请求
	@RequestMapping(path = "/login", headers="Host=localhost:8080")
	public String login() {
		return "success";
	}
}

七、带占位符的URL

@PathVariable 将 URL 中的占位符绑定到控制器的处理方法的参数中,占位符使用{}括起来

这个控制器中 show() 方法将可以接收 user/1、user/2、user/3等等的路径请求

@Controller
@RequestMapping(path = "/user")
public class UserController {
        
	@RequestMapping(value="/{id}", method=RequestMethod.GET)
	public String show(@PathVariable("id") Integer id) {
		return "success";
	}
}

八、REST 风格的 URL 请求

 请求路径        请求方法           作用
-/user/1        HTTP GET        得到id为1的user
-/user/1        HTTP DELETE     删除id为1的user
-/user/1        HTTP PUT        更新id为1的user
-/user          HTTP POST       新增user
	@RequestMapping(value="/{id}", method=RequestMethod.GET)
	public String show(@PathVariable("id") Integer id) {
		System.out.println("查看id为:" + id + "的user");
		return "success";
	}

上文来源

https://blog.csdn.net/renanrenan/article/details/84654362?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165104825816782248535182%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165104825816782248535182&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-84654362.142^v9^control,157^v4^control&utm_term=requestMapping&spm=1018.2226.3001.4187
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:33:07  更:2022-04-30 08:33:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:48:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码