@RequestParam跟@RequestBody的理解
@RequestParam
用来处理请求头Content-Type: 为 application/x-www-form-urlencoded编码的内容。(没有的话指定默认是这个)
get 中的值,和post中的值都会被Servlet接受到并转化到Request.getParameter()参数集中,所以@RequestParam可以获取的到。
RequestParam可以接受简单类型的属性,也可以接受对象类型。
Login.jsp
<form action="xxx/xxx/xxx" method="post">
用户名:<input type="text" name="username"><br>
密码: <input type="text" name="password"><br>
<input type="submit" value="登录">
</form>
LoginController.java
@RequestMapping(value="/XXXXXX", method = RequestMethod.POST)
public String XXXXX(@RequestParam(value="username") String userName, @RequestParam(value="password") String passWord){
System.out.println("username: " + userName);
System.out.println("password: " + passWord);
return "loginok";
}
@RequestBody
用来处理请求头Content-Type: 为 application/json编码的内容,明确的告诉服务器发送的内容是json。因为需要读取body中内容,所以只能接受post请求。
总结:
1.@RequestParam接受简单类型的属性
2.@RequestBody接受Json