专门做正品的网站,国家世界新闻,网站建设 中企动力,昆明app制作的公司不积跬步#xff0c;无以至千里#xff1b;不积小流#xff0c;无以成江海。大家好#xff0c;我是闲鹤#xff0c;微信#xff1a;xxh_1459#xff0c;十多年开发、架构经验#xff0c;先后在华为、迅雷服役过#xff0c;也在高校从事教学3年#xff1b;目前已创业了…不积跬步无以至千里不积小流无以成江海。大家好我是闲鹤微信xxh_1459十多年开发、架构经验先后在华为、迅雷服役过也在高校从事教学3年目前已创业了7年多主要从事物联网/车联网相关领域和业务。喜欢交友、骑行、写毛笔字、弹吉他、折腾硬件和写代码。 导读
这是一系列关于 SpringBoot Web框架实战 的教程从项目的创建到一个完整的 web 框架包括异常处理、拦截器、context 上下文等从0开始到一个可以直接运用在生产环境中的web框架。而且所有源码均开源https://github.com/xiongxianhe/springboot 正文 上一遍《Spring Boot 返回 JSON》 中我们学习了如何从 Spring Boot 返回 json 数据这篇我们继续讨论Spring Boot 如何获取 HTTP 传递的参数。
从 HTTP 协议中我们可知传递参数的方式有这么几种 1. 在 uri 中通过拼接查询字符串传递这是我们常用的 HTTP GET 方式 2. 在 HTTP 中的 body 中传递由于 body 中传递数据的大小不限所以这种方式可以传递多种格式的数据如multipart/form-data、application/x-www-form-urlencode、application/json、application/xml、text/plain、text/html 等这类方式为 HTTP POST 方式。
下面我们讨论几种常用的方式
方式一在 controller 类的 action 方法中把所需要的参数作为 action 方法的参数(get/post) RequestMapping(/user/login)public String login(String name, String pwd) {String res you input: name: name ; pwd: pwd;return res;}
这种方式同时支持这种方式同时支持 get 和 post(仅支持 multipart/form-data、application/x-www-form-urlencode )
方式二在 controller 类的 action 方法中 通过 HttpServletRequest 作为 action 方法的参数(get/post)
RequestMapping(/user/login2)
public String login2(HttpServletRequest request) {String name request.getParameter(name);String pwd request.getParameter(pwd);return you input: name: name ; pwd: pwd;
}
这种方式同时支持这种方式同时支持 get 和 post(仅支持 multipart/form-data、application/x-www-form-urlencode )
方式三在 controller 类的 action 方法中 通过 bean 作为 action 方法的参数(get/post)
RequestMapping(/user/login3)
public String login3(User user) {return user.toString();
}
User.java 内容
package com.jdz.beans;public class User {private Integer uid;private String name;private String pwd;Overridepublic String toString() {return String.format(uid: %d name: %s pwd:%s, this.uid, this.name, this.pwd);}
}
这种方式同时支持这种方式同时支持 get 和 post(仅支持 multipart/form-data、application/x-www-form-urlencode )
方式四通过 PathVariable 获取 uri 路径中的参数(get)
RequestMapping(value /user/login4/{name}/{pwd}, method RequestMethod.GET)
public String login4(PathVariable String name, PathVariable String pwd) {return you input: name: name ; pwd: pwd;
}
请求方式
http://localhost:8080/user/login4/name-lg4/pwd-lg4
这种方式只适合 get 方法
方式五通过 RequestParam 注解(get/post)
RequestMapping(/user/login5)
public String login5(RequestParam(value name, required true) String name, RequestParam(pwd) String pwd) {return you input: name: name ; pwd: pwd;
}
这种方式同时支持这种方式同时支持 get 和 post(仅支持 multipart/form-data、application/x-www-form-urlencode )
方式六通过 RequestParam 注解并用 Map 来接收参数(get/post)
RequestMapping(/user/login6)
public String login6(RequestParam MapString, Object params) {return you input: name: params.get(name) ; pwd: params.get(pwd);
}
这种方式同时支持这种方式同时支持 get 和 post(仅支持 multipart/form-data、application/x-www-form-urlencode )
方式七通过 RequestBody 注解并用 Map 来接收参数json
RequestMapping(/user/login7)
public String login7(RequestBody MapString, Object params) {return you input: name: params.get(name) ; pwd: params.get(pwd);
}
这种方式适合 application/json 用于获取 json 格式
其他
在此基础上还有其他的方式上面主要列举了一些常用的用法每种用法可以根据实际场景进行选择使用。
源码https://github.com/xiongxianhe/springboot.git 系列文章【SpringBoot Web框架实战(开源)】001 使用 pom 方式创建 SpringBoot 第一个项目【SpringBoot Web框架实战教程(开源)】02 SpringBoot 返回 JSON 近期文章 # 车联网【自动化运维】不要相信人把所有的东西都交给机器去处理从华为无线网络框架说Dispatch服务百万级物联网框架设计高并发服务器之泄峰
# 硬件stm32驱动直流电机实现启动/加速/减速/倒车/停车等功能stm32 定时器输出比较(OC)与PWM的理解和应用stm32 定时器中断