### 1. 接收请求参数
#### 1.1. 【不推荐】 通过HttpServletRequest获取请求参数
假设存在:
<form action="handle_login.do" method="POST"> <div>请输入用户名</div> <div><input name="username" /></div> <div>请输入密码</div> <div><input name="password" /></div> <div><input type="submit" value="登录" /></div> </form>
则在控制器中:
@RequestMapping("handle_login.do") public String handleLogin() { // 暂不关心后续的页面 return null; }当需要处理请求时,可以在方法的参数中添加`HttpServletRequest`,然后,在方法体中,通过该参数获取请求参数:
@RequestMapping("handle_login.do") public String handleLogin( HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("username=" + username); System.out.println("password=" + password); // 暂不关心后续的页面 return null; }注意:Spring MVC框架默认使用的编码是ISO-8859-1,是不支持中文的,解决方案再议。
#### 1.2. 【推荐】 直接使用同名参数
在Spring MVC中,也可以直接将请求参数声明为处理请求的方法的参数,例如:
@RequestMapping("handle_reg.do") public String handleReg( String username, String password, Integer age, String phone, String email) { System.out.println("username=" + username); System.out.println("password=" + password); System.out.println("age=" + age); System.out.println("phone=" + phone); System.out.println("email=" + email); // 暂不关心后续的页面 return null; }使用这种做法时,需要保证请求参数的名称与方法参数名称是一致的!如果不一致,则无法获取到对应的参数,且服务器端会视为“客户端并没有提交名为xxx的参数,则值为null。”
这种做法虽然简便,但是,不适合处理请求参数过多的请求,如果某个请求中有10个或更多参数,则处理请求的方法也需要添加这么多参数,是不合适的!
#### 1.3. 【推荐】 通过对象接收请求参数
如果请求参数过多,可以将请求参数封装在某个类型中:

