springMVC中接收请求参数&&数据转发

 ### 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. 【推荐】 通过对象接收请求参数

如果请求参数过多,可以将请求参数封装在某个类型中:

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信