常用接收请求参数的几种方法,超详细一看就会

目录

1.使用Java Servlet API中的HttpServletRequest对象来手动获取请求参数

2.使用@PathVariable注解来处理请求

3.使用@RequestParam注解来处理请求

4.总结


1.使用Java Servlet API中的HttpServletRequest对象来手动获取请求参数

@RequestMapping("/one")
    public void one(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("Hello");
        System.out.println(request.getParameter("name"));
    }

代码解释:

  • @RequestMapping("/one"):定义了请求映射,当HTTP请求的URL路径为/one时,会调用此方法。

  • HttpServletRequest request:注入了请求对象,可以通过这个对象访问请求的信息,比如参数、头信息等。

  • HttpServletResponse response:注入了响应对象,可以通过这个对象构造响应,比如设置状态码、发送响应体等。

  • request.getParameter("name"):通过请求对象的getParameter方法获取名为"name"的请求参数的值。

getParameter()方法主要用于获取客户端请求中的参数值。若请求中没有提供该参数,则返回null。例如在一个HTML表单中的输入框<input type="text" name="username">,那么在服务端就可以使用getParameter("username")来获取用户在这个输入框中所输入的值。

2.使用@PathVariable注解来处理请求

该注解是一个用于处理RESTful Web服务中动态路径变量的注解;使用该注解可以将URL中的动态部分绑定到方法参数上。

@RequestMapping("/two/{name}/{score}")
    public void pathValue(@PathVariable("name") String name, @PathVariable("score")String score){
        System.out.println("name:"+name);
        System.out.println("score:"+score);
    }

当客户端访问"/two/awei/100"这样的URL时,awei就会被绑定到方法参数name上,100就会被绑定到方法参数score上,然后方法体返回相应的结果。同时要确保路径变量名称和方法参数上该注解中指定的名称一致,否则无法正确绑定。

补充:该注解中还有一个required参数,该参数是一个布尔值,用于说明路径变量是否是必需的。默认情况下该参数值为true,表示如果请求参数中缺少了对应的路径变量,则会抛出异常。例如:

@GetMapping("/category/{categoryId}")
public Category getCategoryById(@PathVariable(value = "categoryId", required = false) Integer id) {
    // 处理逻辑
}

在上述代码中,注意required的值为false,表明其并不是必需的,即当请求的URL中没有categoryId路径变量时,方法参数id将会被赋值为null,而不是抛出异常处理。

3.使用@RequestParam注解来处理请求

该注解允许从HTTP请求中提取特定的参数,并将其绑定到方法的参数上,在URL中以"?key=value"形式出现。

@RequestMapping("/three")
    public void urlParam(@RequestParam("id") String id,@RequestParam("score") String score){
        System.out.println("id:"+id);
        System.out.println("score:"+score);
    }

这个方法用于处理包含"id"和"score"参数的请求。例如,如果发送一个GET请求到/three?id=1&score=75,控制台则会输出:

id:123
score:75

补充:由于@RequestParam的参数默认是必需的,如果请求中缺少这些参数,方法将不会被调用,而是会返回一个错误响应,通常是400 Bad Request。如果你希望参数是可选的,可以在@RequestParam注解中设置required属性为false,并且提供一个defaultValue参数值(默认值)。例如:

@RequestParam(value = "score", required = false, defaultValue = "0")
String score

这样的话,如果请求中没有提供score参数,那么score变量就会默认为0。

4.总结

上述三种方法为常用的接收请求参数的方法,尤其是SpringMVC中两个注解的使用,其余方法还有:使用@CookieValue注解、使用@RequestHeader注解、使用@RequestBody注解等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值