SpringMVC(三)映射请求参数和请求头
2018-07-05 本文已影响0人
leeqico
一、请求处理方法签名
Spring MVC 通过分析处理方法的签名,将HTTP 请求信息绑定到处理方法的相应入参中。
Spring MVC 对控制器处理方法签名的限制是很宽松的,几乎可以按喜欢的任何方式对方法进行签名。
必要时可以对方法及方法入参标注相应的注解(@PathVariable、@RequestParam、@RequestHeader 等)、SpringMVC 框架会将HTTP 请求的信息绑定到相应的方法入参中,并根据方法的返回值类型做出相应的后续处理。
二、使用@RequestParam 绑定请求参数值
在处理方法入参处使用@RequestParam 可以把请求参数传递给请求方法
value:参数名
required:是否必须。默认为true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常
![](https://img.haomeiwen.com/i2058461/f8fe1bd2803b7116.png)
![](https://img.haomeiwen.com/i2058461/47ee662fa15ecb50.png)
三、使用@RequestHeader 绑定请求报头的属性值
请求头包含了若干个属性,服务器可据此获知客户端的信息,通过@RequestHeader 即可将请求头中的属性值绑定到处理方法的入参中
![](https://img.haomeiwen.com/i2058461/6f54112849634b4a.png)
四、使用@CookieValue 绑定请求中的Cookie 值
@CookieValue 可让处理方法入参绑定某个Cookie 值
![](https://img.haomeiwen.com/i2058461/2285fda165511a36.png)
五、使用POJO 对象绑定请求参数值
Spring MVC 会按请求参数名和POJO 属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。
如:dept.deptId、dept.address.tel 等
![](https://img.haomeiwen.com/i2058461/089b7c9fda5944b0.png)
![](https://img.haomeiwen.com/i2058461/6e18a19d3cf2bc92.png)
![](https://img.haomeiwen.com/i2058461/481bcbd105b2289e.png)
![](https://img.haomeiwen.com/i2058461/2c13398e2c83d16b.png)
六、使用Servlet API 作为入参
MVC 的Handler 方法可以接受ServletAPI 类型的参数
HttpServletRequest
HttpServletResponse
HttpSession
java.security.Principal
Locale
InputStream
OutputStream
Reader
Writer
![](https://img.haomeiwen.com/i2058461/47cc181287566309.png)