MVC注解
@RequestMapping映射请求
就是告诉SpringMVC,这个方法用来处理什么请求;
这个/是可以省略,即使省略了,也是默认从当前项目下开始;习惯加上比较好 /hello
类定义处:为当前类所有的方法的请求地址指定一个基准路径
方法处:提供进一步的细分映射信息。(类定义处的URL)
若类定义处未标注,则方法处标记的URL相对于WEB应用的根目录
@RequestMappering的其他属性
method:限定请求方式
HTTP协议中的所有请求方式:
【GET】,HEAD,【POST】,PUT,PATCH,DELETE,OPTIONS
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
- method=RequestMethod.POST:只接受这种类型的请求,默认是什么都可以
不是规定的方式报错:4xx:都是客户端错误
405 - Request method ‘GET’ not supported - params:规定请求参数
params和headers支持简单的表达式 - headers:规定请求头,也和params一样,能写表达式
headers={}
@PathVariable 映射URL绑定的占位符
//路径上可以有占位符;占位符语法就是可以在任意路径的地方写一个变量名
@RequestMapping("/user/{id}")
public String pathVariableTest(@PathVariable("id")String id){
System.out.println("路径上的占位符"+id);
return "success";
}
http://localhost:8080/springMVC/user/pengpeng
路径上的占位符只能占一层路径
如何获取请求带来的各种信息
1)默认方式获取请求参数
直接给方法入参上写一个和请求参数名相同的变量。这个变量就来接收请求参数的值。
带:有值;没带:null。
2)@RequestParam
- 参数默认是必须带的
- @RequestParam(“user”)String username
相当于:username = request.getParameter(“user”) - http://localhost:8080/springMVC/head?user=pengpeng
- 属性
(1)value:指定要获取的参数的key
(2)required:这个参数是否必须的,boolean型
@RequestParam(“user”,required=false)
(3) defaultValue:默认值,没带默认就是null;
@RequestParam(“user”,required=false,defaultValue=“111”)
3)@RequestHeader
- 获取请求头中某个key的值;
- request.getHeader(“User-Agent”);
相当于:@RequestHeader(“User-Agent”)String userAgent
userAgent = request.getHeader(“User-Agent”); - 如果请求头中没有这个值就会报错
- 属性
(1)value() 2)requeired() (3) defaultValue()
4)@CookieValue
- 获取某个cookie的值
- 以前的操作获取某个cookie
cookie[] cookies = request.getCookies();
for(Cookie c:cookies){
if(c.getName().equals(“JESSIONID”)){
String cv = c.getValue();
}
} - @CookieValue(“JESSIONID”)
tring cv = c.getValue();
}
} - @CookieValue(“JESSIONID”)