SpringMVC 获取请求参数 的几种方式

本文详细介绍了SpringMVC中如何处理不同类型的参数,包括基本类型、POJO、数组以及通过@RequestParam和@PathVariable注解实现的显式绑定。同时,讨论了RESTful风格的HTTP操作和URL占位符的使用。

一、获取基本类型参数

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配
http://localhost:8080/zhuyuanjie_springmvc1/quick?username=zhangsan&age=12
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(String username,int age) throws IOException {
    System.out.println(username);
    System.out.println(age);
}

 二、获取POJO类型参数

Controller中的业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配

http://localhost:8080/zhuyuanjie_springmvc1/quick?username=zhangsan&age=12 

public class User {
    private String username;
    private int age;
    getter/setter…
}
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(User user) throws IOException {
    System.out.println(user);
}

三、获取数组类型参数

Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配
http://localhost:8080/zhuyuanjie_springmvc1/quick?strs=111&strs=222&strs=333
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(String[] strs) throws IOException {
    System.out.println(Arrays.asList(strs));
}

 四、参数绑定注解 @requestParam

当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定
<form action="${pageContext.request.contextPath}/quick" method="post">
        <input type="text" name="name"><br>
        <input type="submit" value="提交"><br>
</form>
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(@RequestParam("name") String username) throws 
IOException {
    System.out.println(username);
}

 注解@RequestParam还有如下参数可以使用:

  • value:与请求参数名称
  • required:此在指定的请求参数是否必须包括,默认是true,提交时如果没有此参数则报错
  • defaultValue:当没有指定请求参数时,则使用指定的默认值赋值
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(@RequestParam(value="name",required = 
false,defaultValue = "zhuyuanjie") String username) throws IOException {
    System.out.println(username);
}

五、获得Restful风格的参数

Restful风格的请求是使用“url+请求方式”表示一次请求目的的,HTTP 协议里面四个表示操作方式的动词如下:
  • GET:用于获取资源
  • POST:用于新建资源
  • PUT:用于更新资源
  • DELETE:用于删除资源
例如:
  • /user/1 GET : 得到 id = 1 的 user
  • /user/1 DELETE: 删除 id = 1 的 user
  • /user/1 PUT: 更新 id = 1 的 user
  • /user POST: 新增 user

六、使用URL占位符

上述url地址/user/1中的1就是要获得的请求参数,在SpringMVC中可以使用占位符进行参数绑定。地址 /user/1 可以写成 /user/{id},占位符 {id} 对应的就是1的值。在业务方法中我们可以使用@PathVariable注解进行占位符的匹配获取工作
 
http://localhost:8080/zhuyuanjie_springmvc1/quick19/zhangsan
@RequestMapping("/quick/{name}")
@ResponseBody
public void quickMethod(@PathVariable(value = "name",required = true) String name){
    System.out.println(name);
}

七、通过Servlet相关API

SpringMVC支持使用原始ServletAPI对象作为控制器方法的参数进行注入,常用的对象如下:
  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
@RequestMapping("/quick")
@ResponseBody
public void quickMethod(HttpServletRequest request,HttpServletResponse response,HttpSession session){
    System.out.println(request);
    System.out.println(response);
    System.out.println(session);
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值