@RequestMapping理解和基本使用
@RequsetMapping理解
(个人理解):springMVC中的前端控制器(DispatchedServlet)将浏览器发送过来的请求去除(http:localhost:post/projectName)后与带@RequestMapping注解的类或者方法中的value值进行匹配,匹配成功后将返回值经过视图解析器加上前缀和后缀后生成一个路径,然后通过这个路径找到相应的文件通过请求转发的方式发送到浏览器。
@RequestMapping标识一个类:设置映射请求的请求路径的初始信息
@RequestMapping标识一个方法:设置映射请求请求路径的具体信息
@RequestMapping常用参数
1.value:与浏览器请求进行匹配的路径。
2.method:过滤浏览器请求,可以设置多种请求方法参数,只要浏览器请求方式满足参数中的一种则可以进一步操作否则就过滤掉该请求。默认不写则不需要经过这一步,所有请求皆可通过。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1xFnlRM4-1633707063746)(D:\学习资料\学习笔记\images\image-20211004213704875.png)]
3.params:过滤浏览器请求,只有浏览器请求与params参数内请求一致时才能继续解析请求否则过滤请求。
4.headers:过滤浏览器请求,只有浏览器请求头信息和headers内参数一直时才能继续解析请求否则过滤请求。
@RequstMapping性质
1.支持ant编程风格
? :表示任意的单个字符
*:表示任意的0个或多个字符
** :表示任意的一层或多层目录
注意:在使用 ** 时,只能使用 /**/xxx的方式
2.支持路径中的占位符
在浏览器的请求可以以路径分割符做划分设置参数,并在相应的@RequestMapping方法中相对应的value符
请求:http://localhost:8080/twice/target/7/
value:"/target/{id}"
此时id = 7 并通过@PathVariable(“id”)将之注入方法的参数列表之中
@RequestMapping( value = "/**/target/{id}", params = {"username", "password=123456"}, headers = {"host=localhost:8080"} ) public String target(@PathVariable("id") int id) { System.out.println("id: " + id); return "target"; }
tln("id: " + id);
return "target";
}