@RequestMapping注解的功能
从注解的名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。
SpringMVC接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。
@RequestMapping注解的位置
@RequestMapping标识一个类:设置映射请求的请求路径的初始信息。
@RequestMapping标识一个方法:设置映射请求请求路径的具体信息
多个控制器如果@RequestMapping匹配的请求地址和请求路径一样的话,SpringMVC会报错,因此我们一定要注意所有的控制器里面的RequestMapping所匹配到的请求地址是唯一的。
我们把@RequestMapping加到类上,是为了防止一个请求对应多个请求映射,比如我们的user类下面有个list模块,而order类下面也有个list模块,如果不在类上用@RequestMapping标识来区分这两个模块的话,那他们的请求地址就是一样的,上面我们知道,如果出现这种情况,springMVC就会报错。在这两个类上都添加这个注解,那么他们就得到了区分。
Value属性
只要请求地址满足value数组中的任意一个,请求映射都能匹配到对应的请求地址。
method属性
这里回顾一下get请求和post请求两个不同的小点:
get请求不安全但是传输数据较快,post请求安全但是传输数据较慢
get请求传输数据有限(大小限制),post请求传输的数据是可以无限制的
文件上传无法使用get
测试一下form表单是否能够发送put和delete请求方式的请求
当我们的请求方式不是post时,默认按照get请求方式请求,因此我们不能直接发送put和delete请求方式
params属性
params里面的参数必须全部匹配(满足)。而不像value属性,只需要满足一个。
Headers属性
浏览器的请求标头信息:
SpringMVC支持ant风格的路径:
执行结果:
springMVC支持路径中的占位符
控制台运行结果:
注意当我们使用了占位符,那么请求路径必须匹配相应的目录:
如果不在请求地址匹配占位符响应的请求地址目录,则会出现404: