@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系
RequestMapping标识一个类:设置映射请求的请求路径的初始信息
RequestMapping标识一个方法:设置映射请求请求路径的具体信息
如果类上加了@RequestMapping("/test")那么无论方法的RequestMapping标注的是什么,访问的都是test路径下的方法的RequestMapping标注的路径
@RequestMapping注解value属性作用:通过请求的路径匹配请求
value属性是数组类型,即当前浏览器所发送请求的请求路径匹配value属性中的任何一个值则当前请求就会被注解所标识的方法进行处理(只使用value时value=可省略不写)
method属性作用:通过请求的请求方式匹配请求
method属性是RequestNethod类型的数组,即当前浏览器所发送请求的请求方式匹配method属性中的任何一种请求方式,如@RequestMapping(value="/test",method=RequestMethod.GET)非GET请求报405
params作用:通过请求的请求参数匹配请求,即浏览器发送的请求的请求参数必须满足params属性到的设置params可以使用四种表达式;
"param":表示当前所匹配请求的请求参数中必须携带param参数
" ! param":表示当前所匹配请求的请求参数中一定不能携带param参数
"param=value":表示当前所匹配请求的请求参数中必须携带param参数且值必须为value
"param!=value":表示当前所匹配请求的请求参数中可以不携带param,若携带值一定不能是value
params是数组类型,但其中的内容必须同时满足
@RequestMapping注解的headers属性通过请求的请求头信息匹配请求映射,用法同params
@RequestMapping支持ani风格目录:
?:任意的单个字符(不包括?)
*:任意个数的任意字符(不包括?和/>
:任意层数的任意目录,注意使用方式只能写在双斜线中
占位符如果数据为id:
@RequestMapping("/test/rest/{id}")
public string testRest(@Pathvariable("id" ) Integer id){
system.out.print1n("id: "+id);
return "success";
}
获取请求参数的方式:1、通过servletAPI获取
只需要在控制器方法的形参位置设置HttpservletRequest类型的形参就可以在控制器方法中使用request对象获取请求参数
2、通过控制器方法的形参获取
只需要在控制器方法的形参位置,设置一孙形参,形参的名字和请求参数的名字一致即可
若不一致使用@RequestParam("")绑定请求参数
@Requestparam注解的三个属性: value, required,defaultvaLuevalue:设置和形参绑定的请求参数的名字
required:设置是否必须传输value所对应的请求参数
默认值为true,表示value所对应的请求参数必须传输,否则页面报错:400 - Required string parameter 'xxx' is not present
若设置为false,则表示value所对应的请求参数不是必须传输,若为传输,则形参值为null
defaultvalue:设置当没有传输value所对应的请求参数时,为形参设置的默认值,此时和required属性值无关
@RequestHgader:将请求头信息和控制器方法的形参绑定@cookievalue:将cookie数据和控制器方法的形参绑定用法同上