接收客户端提交的请求参数3种方法(第一种在Servlet使用,后面两在SpringMVC):1.使用HttpServletRequest请求接收参数;2.将请求参数设计为方法的参数;3.使用封装...

1.使用HttpServletRequest接收请求参数

在处理请求的方法的参数列表中,添加HttpServletRequest类型的参数,在处理请求的过程中,调用该参数对象的getParameter()方法即可获取请求参数:
String value = request.getParameter("value");

2.将请求参数设计为方法的参数

可以将客户端提交的请求参数直接声明为处理请求的方法的参数,并且,可以直接将参数声明为期望的数据类型,例如:

// 【处理注册请求】
@RequestMapping("handle_reg.do")
@ResponseBody
public String handleReg(String username, String password, Integer age, String phone, String email) {
    System.out.println("UserController.handleReg()");

    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 "Over";
}

使用这种做法时,必须保证客户端提交的请求参数与服务器端处理请求的方法的参数的名称是一致的!如果名称不一致,默认情况下,则服务器端处理请求的方法中,对应的参数将是null

如果服务器端决定不使用方法的参数名作为客户端应该提交的请求参数名称,还可以在方法的参数之前添加@RequestParam注解,以指定参数名,例如:

public String handleReg(@RequestParam("username") String aaaaa, String password)

按照以上代码中的注解,则客户端必须按照usernamepassword这2个名称来提交请求参数!

3. 使用封装的类型接收请求参数

可以事先自定义类,将需要接收的请求参数都声明为这个类的属性,同时,为这些属性生成Set / Get方法:

package cn.tedu.spring;

public class User {

	private String username;
	private String password;
	private Integer age;
	private String phone;
	private String email;

	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 Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Override
	public String toString() {
		return "User [username=" + username + ", password=" + password + ", age=" + age + ", phone=" + phone
				+ ", email=" + email + "]";
	}

}

然后,将自定义的数据类型声明为处理请求的方法的参数即可:

// 【处理注册请求】
@RequestMapping("handle_reg.do")
@ResponseBody
public String handleReg(User user) {
    System.out.println("UserController.handleReg()");

    System.out.println(user);

    return "Over";
}

使用这种做法,应该保证客户端提交的请求参数名称与以上User类中的属性名称相同,且User类中的各属性都有规范名称的Set / Get方法!

4. 小结

以上3种方式中,1是在任何情况下都不推荐使用的!

通常,当参数数量较少且固定(数量或意义)时,优先使用2的做法;

当参数数量较多或不固定时,优先使用3的做法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值