SpringBoot 处理请求参数与restful风格

SpringBoot 处理请求参数与restful风格,第1张

SpringBoot 处理请求参数与restful风格 一、普通请求 1.获取单个参数

使用注解@RequestParam指定要获取参数的名称
注:加上这个注解后客户端就必须要传入这个指定名称的参数,否则就会报错

    @RequestMapping("/m1")
    public String method1(@RequestParam("name")String username) {
        return username;
    }
2.当参数有多个时,可将它们封装成一个对象

注:对象的属性名必须与参数名称对应,即参数名为name,那么必须要有一个名为name的属性才能将它获取

    @RequestMapping("/m2")
    public User method2(User user) {
        return user;
    }
3.若传入的多个参数的名称相同,则使用数组或集合接收
    @RequestMapping("/m3")
    public String[] method3(@RequestParam("hobby")String[] hobbys) {
        return hobbys;
    }
    @RequestMapping("/m4")
    public ArrayList method4(@RequestParam("num")ArrayList nums) {
        return nums;
    }
二、Rest请求

虽然请求路径都为“/user”,但若请求方式不同,则执行的方法也不同

   @GetMapping("/user")
    public String method1() {
        return "获取用户";
    }

    @PostMapping("/user")
    public String method2() {
        return "保存用户";
    }
开启表单的隐藏方法

需先开启一个过滤器,这个过滤器会拦截所有请求,如果是post请求且“_method”参数的值为“delete”、“put”、“patch”时,过滤器会生成一个request的包装类并重写里面的getMethod方法,然后放行这个request的包装对象。

spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true   
 
获取路径变量 
    @GetMapping("/p1/{v1}/p2/{v2}")
    public String method5(@PathVariable("v1")String v1, @PathVariable("v2")String v2, String v3) {
        return "v1 = " + v1 + "; v2 = " + v2 + "; v3 = " + v3;
    }

路径变量可以与参数混合使用

获取cookie
    @GetMapping("/getcookie")
    public void method6(HttpServletResponse res, HttpServletRequest req) throws IOException {
        cookie cookie = new cookie("cookie1","hello");
        res.addcookie(cookie);
        res.sendRedirect(req.getContextPath() + "/getcookie2");
    }

    @GetMapping("/getcookie2")
    public String method7(@cookievalue("cookie1")String val) {
    // 获取cookie的值
        return val;
    }
    @GetMapping("/getcookie3")
    public String method8(@cookievalue("cookie1")cookie val) {
    // 获取整个cookie
        return val.getValue();
    }
获取请求头
    @GetMapping("/host")
    public String method9(@RequestHeader("Host")String host) {
        return host;
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4659185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存