SpringMVC之@RequestMapping注解

511 阅读2分钟

@RequestMapping注解的功能

从注解的名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。
SpringMVC接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。

@RequestMapping注解的位置

@RequestMapping标识一个类:设置映射请求的请求路径的初始信息。
@RequestMapping标识一个方法:设置映射请求请求路径的具体信息

image.png

多个控制器如果@RequestMapping匹配的请求地址和请求路径一样的话,SpringMVC会报错,因此我们一定要注意所有的控制器里面的RequestMapping所匹配到的请求地址是唯一的。

image.png

image.png

我们把@RequestMapping加到类上,是为了防止一个请求对应多个请求映射,比如我们的user类下面有个list模块,而order类下面也有个list模块,如果不在类上用@RequestMapping标识来区分这两个模块的话,那他们的请求地址就是一样的,上面我们知道,如果出现这种情况,springMVC就会报错。在这两个类上都添加这个注解,那么他们就得到了区分。

Value属性

image.png

image.png

只要请求地址满足value数组中的任意一个,请求映射都能匹配到对应的请求地址。

image.png

method属性

image.png

这里回顾一下get请求和post请求两个不同的小点:
get请求不安全但是传输数据较快,post请求安全但是传输数据较慢
get请求传输数据有限(大小限制),post请求传输的数据是可以无限制的
文件上传无法使用get

image.png

image.png

测试一下form表单是否能够发送put和delete请求方式的请求

image.png

image.png

当我们的请求方式不是post时,默认按照get请求方式请求,因此我们不能直接发送put和delete请求方式

params属性

image.png

image.png

params里面的参数必须全部匹配(满足)。而不像value属性,只需要满足一个。

Headers属性

image.png

image.png

浏览器的请求标头信息: image.png

SpringMVC支持ant风格的路径:

image.png

image.png

image.png

执行结果:

image.png

image.png

image.png

springMVC支持路径中的占位符

image.png

image.png

image.png

控制台运行结果:

image.png

注意当我们使用了占位符,那么请求路径必须匹配相应的目录:

image.png

如果不在请求地址匹配占位符响应的请求地址目录,则会出现404:

image.png