首页 > 其他分享 >SpringMVC接收参数的几种方法

SpringMVC接收参数的几种方法

时间:2024-07-01 22:58:01浏览次数:24  
标签:String SpringMVC public 几种 uname user new 接收 hello

1.方式一:获取地址栏参数

        形式一:@PathVariable
    // http://127.0.0.1:8080/user/123/roles/222
    @RequestMapping(value = "/user/{userId}/roles/{roleId}", method = RequestMethod.GET)
    @ResponseBody
    public String hello(@PathVariable("userId") String userId, @PathVariable("roleId") String roleId) {
        return "User Id : " + userId + " Role Id : " + roleId;
    }
       形式二:@RequestParam
    // http://127.0.0.1:8080/hello?uname=lisi
    @RequestMapping("/hello")
    @ResponseBody
    //将接收前端uname的值给name
    public String hello(@RequestParam("uname") String name) {
        return "Hello " + name;
    }
        形式三:HttpServletRequest
    // http://127.0.0.1:8080/hello?name=lisi
    @RequestMapping("/hello")
    @ResponseBody
    public void hello(HttpServletRequest request, HttpServletResponse response) {
        String uname = request.getParameter("name");
        System.out.println("hello " + uname);
    }

2.方式二:获取请求体参数

        形式一:使用@RequestBody将 JSON 字符串转为一个对象
    @RequestMapping("/hello")
    @ResponseBody
    public void hello(@RequestBody User user) {
        System.out.println("user: " + user.getName() + ", age: " + user.getAge());
    }
        形式二:key/value
    @RequestMapping("/hello")
    @ResponseBody
    public void hello(HttpServletRequest request, HttpServletResponse response) {
        String uname = request.getParameter("name");
        System.out.println("hello " + uname);
    }
        形式三:json
    @RequestMapping("/hello")
    @ResponseBody
    public void hello(HttpServletRequest req) {
        try {
            ObjectMapper om = new ObjectMapper();
            User user = om.readValue(req.getInputStream(), User.class);
            System.out.println(user.getName());
            System.out.println(user.getAge());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    @RequestMapping("/hello")
    @ResponseBody
    public void hello(HttpServletRequest req) {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(req.getInputStream()));
            String json = reader.readLine();
            reader.close();
            User user = new ObjectMapper().readValue(json, User.class);
            System.out.println("hello " + user.getName() + ", you are " + user.getAge() + " years old.");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

        注意这里BufferedReaderreadLine()方法来读取请求体。这可能会导致问题,因为readLine()方法会读取一行文本,而不是整个JSON对象。

        而不能使用

        解决方法是使用StringBuilder

    @RequestMapping("/hello")
    @ResponseBody
    public void hello(HttpServletRequest req) {
        try {
            StringBuilder sb = new StringBuilder();
            String line;
            BufferedReader reader = new BufferedReader(new InputStreamReader(req.getInputStream()));
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
            reader.close();
            String json = sb.toString();
            User user = new ObjectMapper().readValue(json, User.class);
            System.out.println("hello " + user.getName() + ", you are " + user.getAge() + " years old.");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

3.方式三:获取请求头参数

    @RequestMapping("/hello")
    @ResponseBody
    public void hello(HttpServletRequest req) {
        String uname = req.getHeader("name");
        System.out.println("hello " + uname);
    }

标签:String,SpringMVC,public,几种,uname,user,new,接收,hello
From: https://blog.csdn.net/weixin_52153645/article/details/139809407

相关文章

  • 【数据结构】常见的几种数据结构
    常见的数据结构:数组、链表、队列、栈、、堆、二叉树、B树、哈希表、图数组因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来。根据索引查找元素,时间复杂度是\(O(1)\)。动态数组动态数组具体代码实现importjava.util.Arrays;importjava.util.Ite......
  • SpringMVC中的注解配置
    目录13、注解配置springmvc13.1、创建初始化的类,代替web.xml13.2、使用流程声明一个类来继承AbstractAnnotationConfigDispatcherServletInitializer,并且实现他的抽象方法实现配置SpringConfig的java文件实现SpringMvcConfig的java文件13.3、实例代码1.继承AbstractAnnotationConf......
  • Qml接收QList<QVariantMap> 数据
    Q_PROPERTY(QList<QVariantMap>mediaSourceListREADgetMediaSourceListWRITEsetMediaSourceListNOTIFYsigMediaSourceListChanged)voidTESTCPP::setMediaSourceList(QList<QVariantMap>mediaSourceList){m_mediaSourceList.clear();#if1/......
  • SpringMVC的数据获取问题
    在传统的javaweb中我们获取数据是通过HttpServletRequest中的getParameter或者getHeader等方法来获取相关的信息。由此我们引出了以下问题:在SpringMVC中应该如何获取请求提交的数据呢?在SpringMVC中又应该如何获取请求头信息呢?在SpringMVC中又应该如何获取客户端提交的Cookie......
  • Facebook几种常见的广告账户类型|Facebook代理kai户
    众所周知,Facebook是中国企业出海推广绕不开也是最重要的广告平台之一,为了满足不同广告主的需求,Facebook提供了多种广告账户类型。那么市面上各种不同的账户类型,怎样找到合适的呢,今天我们一起来了解一下吧~一、个人广告账户个人广告账户是最基本的Facebook广告账户类型,适用于......
  • Gin框架的几种热加载方法
    原文参考:https://cloud.tencent.com/developer/article/2043002什么是热加载如果你是一名python开发者,应该很熟悉这个。我们在Flask或者Django框架下开发都是支持实时加载的,当我们对代码进行修改时,程序能够自动重新加载并执行,这在我们开发中是非常便利的,可以快速进行代码测试,......
  • SpringMVC-02-什么是SpringMVC
    1、概述SpringMVC是SpringFramework的Web开发部分,是基于Java实现MVC的轻量级Web框架。官方文档:https://docs.spring.io/spring-framework/docs/4.3.24.RELEASE/spring-framework-reference/html/中文官方文档:https://www.w3cschool.cn/spring_mvc_documentation_linesh_t......
  • SpringMVC配置文件的位置和命名
    配置web.xml文件时我们需要配置SpringMVC框架的配置文件,该文件有两种配置方式。第一种是默认配置,第二种是带配置参数的配置。1.1默认配置方式SpringMVC框架有它自己的配置文件,该配置文件的名字默认为:-servlet.xml,默认存放的位置是WEB-INF目录下。如果采用这种方式意味着文件的......
  • 适用于 Android 的 几种短信恢复应用程序
    Android设备上的短信丢失可能由于多种原因而丢失,例如意外删除、恢复出厂设置、系统崩溃或病毒攻击。是否有应用程序可以恢复Android上已删除的短信?幸运的是,有几款短信恢复应用程序可以扫描您的Android手机并从内存或SIM卡中检索已删除的短信。然而,并非所有短信恢复应用......
  • springmvc的视图
    目录6、springmvc的视图6.1、ThymeleafView6.2、转发视图6.3、重定向视图6.4、视图控制器view-contronller6、springmvc的视图SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户,SpringMVC视图的种类很多,默认有转发视图和重定向视图当工程引入jstl的......