springmvc获取请求参数

# 获取请求参数

## 【不推荐】通过HttpServletRequest


在处理请求的方法中,添加`HttpServletRequest`类型的参数,调用它的`getParameter(String)`方法即可获取散民提交的参数:

@RequestMapping("/handleReg.do")
public String handleReg(
HttpServletRequest request) {

String username
= request.getParameter("username");
String password
= request.getParameter("password");
int age
= Integer.parseInt(request.getParameter("age"));

System.out.println("username=" + username);
System.out.println("password=" + password);
System.out.println("age=" + age);

return null; // 暂不考虑后续的显示,所以返回null
}

## 【推荐】直接在方法中声明对应的参数

在处理请求的方法中,添加需要获取的参数即可:

@RequestMapping("/handleReg.do")
public String handleReg(
String username,
String password,
int age) {
System.out.println("username=" + username);
System.out.println("password=" + password);
System.out.println("age=" + age);

return null; // 暂不考虑后续的显示,所以返回null
}

需要注意: 自行添加的方法参数的名称应该与用户提交的名称是匹配的!如果无法协调,可以使用`@RequestParam`注解

public String handleReg(
@RequestParam("uname") 
String username) {
}

当使用了`@RequestParam`注解后,这个参数默认是必须的!即如果没有提交该参数,将导致程序出错,如果并不要求必须提交这个参数,还应该在`@RequestParam`中配置`required`属性:

public String handleReg(
@RequestParam(value="uname", required=true) 
String username) {
}

这种做法的优点是:方便,并且可以使Spring MVC框架自动处理数据类型的问题。

这种做法的缺点是:不便于接收大量参数。

## 【推荐】使用自定义数据类型

如果提交的数据较多,或者直接符合项目中某种数据类型,则可以在处理请求的方法中,添加自定义数据类型的参数,以便于接收用户提交的多项数据:

@RequestMapping("/handleReg.do")
public String handleReg(User user) {

System.out.println(user.getUsername());
System.out.println(user.getPassword());
System.out.println(user.getAge());

return null; // 暂不考虑后续的显示,所以返回null 
}

## 小结

不推荐使用`HttpServletRequest`获取参数,因为使用比较麻烦!另2种做法,都是非常好用的做法,根据实际情况进行选取即可!

注意:以上所有方法并不冲突,可以混合使用!

猜你喜欢

转载自blog.csdn.net/nishino_shou/article/details/80573889