@RequestParam 用来请求request中的参数,至关于request.getParameter() 其中有三个属性:
一、value用来指定要取得参数的key
二、required 所取的参数是否必须存在,若是true表示必须存在,若不存在则抛出异常
三、default 指定该value的默认值java
类实现代码:spring
@RequestMapping("/requestParam") public String requestParam( @RequestParam(value = "id", required = false) Integer id) { System.out.println("the id is:" + id); return SUCCESS; }
测试请求代码api
<a href="paramSelect/requestParam?id=10">RequestParam 测试</a>
用来获取request头中的信息,其中参数的使用方法同@RequestParammarkdown
类实现代码cookie
@RequestMapping("/requestHeader") public String requestHeader( @RequestHeader(value = "User-Agent", required = true, defaultValue = "") String ua) { System.out.println("the User-Agent is:" + ua); return SUCCESS; }
测试请求代码mvc
<a href="paramSelect/requestHeader">RequestHeader 测试</a>
用来获取cookie中的参数,属性使用同@RequestParmaapp
类实现代码:ide
@RequestMapping("/cookieValue") public String cookieValue(@CookieValue(value = "JSESSIONID") String jid) { System.out.println("JSESSIONID is:" + jid); return SUCCESS; }
测试请求代码:post
<a href="paramSelect/cookieValue">CookieValue 测试</a>
一、能够把一个javabean看成请求参数传入,要求表单中的属性名称与javabean中的成员变量能一一对应,则springmvc会自动匹配测试
二、传入参数能够级联,如User中有一个birthday变量为Birthday类型,也可自动匹配
类实现代码
@RequestMapping("/postBean") public String postBean(User user) { System.err.println(user); return SUCCESS; }
User类:
public class User { private String username; private String password; private Birthday birthday; public User() { } public User(String username, String password, Birthday birthday) { super(); this.username = username; this.password = password; this.birthday = birthday; } @Override public String toString() { return "User [username=" + username + ", password=" + password + ", birthday=" + birthday + "]"; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getpassword() { return password; } public void setpassword(String password) { this.password = password; } public Birthday getBirthday() { return birthday; } public void setBirthday(Birthday birthday) { this.birthday = birthday; } }
Birthday类
public class Birthday { private int month; private int year; public Birthday() { } public Birthday(int month, int year) { super(); this.month = month; this.year = year; } @Override public String toString() { return "Birthday [month=" + month + ", year=" + year + "]"; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } }
请求测试代码:
<form action="paramSelect/postBean" method="post"> 用户名:<input type="text" name="username"> <br> 密码:<input type="password" name="password"> <br> 出生月:<input type="text" name="birthday.month"> <br> 出生年:<input type="text" name="birthday.year"> <br> <input type="submit" value="submit"> </form>
在请求参数中能够放入servlet中的api,springmvc会自动适配并传入对应参数
可获取的类型包括以下:
• HttpServletRequest • HttpServletResponse • HttpSession • java.security.Principal • Locale • InputStream • OutputStream • Reader • Writer
类实现代码
@RequestMapping("/servletTest") public void servletTest(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getWriter(); System.out.println("Test success"); out.println("Test success"); }
测试请求方法:
<a href="paramSelect/servletTest">Servlet API 测试</a>