@RequestParam
- 作用:取得请求路径中的参数.
- 示例:使用@RequestParam入参取得请求参数
@RequestMapping("/testRequestParam")
public String testRequestParam(@RequestParam(value = "uname")String uname,@RequestParam(value="age")Integer age){
System.out.println("testRequestParam()方法开始执行: uname = " +uname+"age = "+age);
return "success";
}
RequestHeader注解
- @RequestHader注解用于取得请求头的信息,请求头信息包括请求的编码格式等信息.
- 使用浏览器的开发者信息可以看到每一个请求的请求头
-
在SpringMVC中要获取请求头信息只需要使用@RequestHeader注解即可
-
示例:获取请求头信息
private static final String SUCCESS = "success";
@RequestMapping("/testRequestHeader")
public String testRequestHeader(@RequestHeader(value="Accept-Encoding")String type){
System.out.println("编码格式 = type"+type);
return SUCCESS;
}
@CookieValue注解
- @CookieValue注解可以让方法绑定某个缓存值
- 示例:
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue(value = "sessionid",required = false) String id){
System.out.println("sessionid = "+id);
return SUCCESS;
}
使用POJO作为参数
- pojo就是一个普通的java类对象,在开发中页面中使用一个表单传输数据,往往会传送许多的请求参数,如果此时使用注解的方式一个一个的接收请求参数,太过麻烦.
- 示例:使用Pojo作为参数
- 定义一个User类用于接收表单参数
public class User {
private Integer uid;
private String uname;
private String password;
private UserAddress userAddress;
//gettter和setter方法
}
- User类的关联类UserAddress;
public class UserAddress {
private String city;
private String street;
//getter和setter方法
}
- 定义接收数据的方法—addUser()
@RequestMapping("/addUser")
public String addUser(User user){
System.out.println("addUser: user =" + user);
return SUCCESS ;
}
- 定义传输表单页面—user_add.jsp
<form method="post" action="addUser">
<div>
用户id:<input type="text" name="user.uid" id="user.uid"/>
</div>
<div>
用户名称:<input type="text" name="user.uname" id="user.uname"/>
</div>
<div>
用户密码:<input type="password" name="user.password" id="user.password"/>
</div>
<div>
城市:<input type="text" name="user.address.city" id="user.address.city"/>
</div>
<div>
街道:<input type="text" name="user.address.street" id="user.address.street"/>
</div>
<div>
<input type="submit" value="提交"/>
</div>
</form>
- 测试
- 后台输出的数据
使用Servlet原生API作为参数
- 可以使用的Servlet原生的API作为目标方法的参数具体支持以下类型
- 示例:使用Servlet原生API作为参数
@RequestMapping("/testServletApi")
public String testServletApi(HttpServletRequest request, HttpServletResponse response) throws IOException {
Enumeration<String> params = request.getParameterNames();
while(params.hasMoreElements()){
String param = params.nextElement();
String value = request.getParameter(param);
System.out.println(("参数名称 :" + param + " 参数内容 :" + value));
}
return SUCCESS;
}
- 后台输出