生活随笔
收集整理的这篇文章主要介绍了
03-SpringMVC-获得用户请求数据
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
一、处理requet uri 部分:@PathVariable
1、测试
@RequestMapping("/testPathVariable/{id}")public String testPathVariable(@PathVariable("id") Integer id){System.out.println("PathVariable "+id);return "success";}
<a href="requestData/testPathVariable/2">测试 @PathVariable</a>
2、总结
@Controller@RequestMapping("/owners/{ownerId}")public class RelativePathUriTemplateController { @RequestMapping("/pets/{petId}") public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) { // implementation omitted }}
那么它对应的请求:/owers/1/pets/2
二、处理request header部分@RequestHeader, @CookieValue
1、@RequestHeader
1.1 知识点
1.2 测试
@RequestMapping("/testRequestHeader")public String testRequestHeader(@RequestHeader(value="Accept-Language") String al){System.out.println("Accept-Language:"+al);return "success";}
<a href="requestData/testRequestHeader">测试@RequestHeader</a>
2、使用@CookieValue绑定请求中的Cookie值
2.1、知识点
2.2 测试
@RequestMapping("/testCookieValue")public String testCookieValue(@CookieValue(value="JSESSIONID") String jSession){System.out.println("JSESSIONID:"+jSession);return "success";}
<a href="requestData/testCookieValue">测试@CookieValue</a>
三、处理request body部分的注解:@RequestParam, 使用POJO对象绑定请求参数值;
1、使用@RequestParam绑定请求参数值
1.1 知识点
1.2、测试
@RequestMapping("/testRequestParam")public String testRequestParam(@RequestParam(value="userName",required=false) String userName,@RequestParam(value="age",defaultValue="20") int age,@RequestParam(value="password") String password){System.out.println("userName:"+userName);System.out.println("age:"+age);System.out.println("password:"+password);return "success";}
<a href="requestData/testRequestParam">测试@RequestParam(没有传值)</a><br><a href="requestData/testRequestParam?userName=imentors&password=123456">测试@RequestParam(传值)</a>
2、使用POJO对象绑定请求参数值
2.1、 知识点
2.2 、测试
public class Address {private String province;private String city;@Overridepublic String toString() {return "Address [province=" + province + ", city=" + city + "]";}}public class User {private String username;private String password;private String email;private int age;@Overridepublic String toString() {return "User [username=" + username + ", password=" + password+ ", email=" + email + ", age=" + age + ", address=" + address+ "]";}}
@RequestMapping("/testPojo")public String testPojo(User user){System.out.println("testPOJO:"+user);return "success";}
<form action="requestData/testPojo" method="post"> username:<input type="text" name="username"/> <br/> password:<input type="password" name="password"/> <br/> email:<input type="text" name="email"/> <br/> age:<input type="text" name="age"/> <br/> city:<input type="text" name="address.city"/> <br/> province:<input type="text" name="address.province"/> <br/> <input type="submit" value="提交"/> </form>
2.3 总结
如果请求的表单参数中不存在pojo对象中的某个域名称的项目,则绑定后pojo该属性为null。
如果请求的表单参数中存在pojo对象中没有包含的域的项目,则绑定后该参数丢失。
如果表单项目的数据会自动从String转换为相应pojo的域类型。但如果类型无法转换,则报错。如果我输入age为dafsdfa,那么报错。
四、使用servlet api对象作为入参
1、使用servlet api对象作为入参
1.1、知识点
使用servlet api类作为入参时,spring mvc会自动将web层对应的servlet API对象传递给处理方法入参,处理方法入参可同时使用其它符合要求的入参,位置顺序无特殊要求。
如果处理方法自行使用HttpServletResponse返回响应,则处理方法返回值需设置成void.
Spring mvc在org.springframework.web.context.request包下提供了若干个可代理Servlet原生API类的接口
1.2 测试
@RequestMapping("/testServletApi")public String testServletApi(HttpServletRequest request,HttpServletResponse response){System.out.println("testServletAPI:"+request+","+response);return "success";}
<a href="requestData/testServletApi">测试ServletApi</a>
1.3 总结
可以使用Servlet原生的Api作为目标方法的参数,具体支持以下类型
HttpServletRequest
HttpServletResponse
HttpSession
Java.security.Principal
InputStream
OutputStream
Reader
Writer
关注我们
师享空间的宗旨是分享知识,传播价值。关注我们,及时获得更多信息。
捐赠我们 如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
转载于:https://blog.51cto.com/imentors/1720552
总结
以上是生活随笔为你收集整理的03-SpringMVC-获得用户请求数据的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。