目录
@RequestMapping()大家都知道可以写到类上,也可以写到方法上,用来匹配请求path
请求路径-value属性:
一般用法:
@RequestMapping("/web/index") 匹配 /web/index
@RequestMapping({"/web/index","web/index"}) 匹配 /web/index和web/index
@RequestMapping("/web/inde?") 匹配 /web/index、/web/indea,...
@RequestMapping("/web/*") 匹配 /web/index、/web/indea,但是不匹配/web/a/a
@RequestMapping("/web/**") 匹配 /web/index、/web/indea,也匹配/web/a/a
骚操作:
@RequestMapping({"/{[app|web]}/{[queryList|del|save}"})
匹配:/app/del、/app/save、/app/queryList
/web/del、/web/save、/web/queryList
这样写即达到了多个匹配的效果,又方便书写,又不像*那样进入不想进的请求
@RequestMapping() 支持正则表达式,有更多的写法
如:
@RequestMapping(value="/get/{id:\\d+}"),这样的话只能get后面是数字
限制请求方式-method属性:
- @RequestMapping的method属性是通过限制当前请求的请求方式来匹配请求;
- 浏览器向服务器发送请求,请求方式有很多GET、HEAD、POST、PUT、PATCH、DELETE、OPTIONS、TRACE。可以使用 method 属性来限制请求方式。
如:
@RequestMapping(value = "/testRequest",method = RequestMethod.GET)
限制只能get请求
限制请求参数-params属性:
@RequestMapping的params属性是一个字符串类型的数组,可以通过下面四种表达是来设置匹配关系
“param”:要求请求映射的请求必须为包含 param的请求参数
“!param”:要求请求映射的请求是不能包含param的请求参数
“param=value”:要求请求映射的请求必须包含 param 的请求参数,且 param 参数的值必须为 value
“param!=value”: 要求请求映射的请求是必须包含 param 的请求参数,其值不能为 value。
限制请求头-headers属性:
@RequestMapping的headers属性是一个字符串类型的数组,可以通过下面四种表达是来设置匹配关系
“header”:要求请求映射的请求必须为包含 header的请求头信息
“!header”:要求请求映射的请求必须为不包含 header的请求头信息
“header=value”:要求请求映射的请求必须为包含 header的请求头信息,并且header的值必须为value
“header!=value”:要求请求映射的请求必须为包含 header的请求头信息,并且header的值必须不是value