当前位置: 首页 > news >正文

大良网站智能推广机构自己做发卡网站

大良网站智能推广机构,自己做发卡网站,盐城中瑞做网站公司,wordpress 去掉rss目录 请求 传递单个参数 基本类型参数传递 未传递参数 ?传递参数类型不匹配 传递多个参数 传递对象 后端参数重命名 传递数组 传递集合 传递JSON数据 JSON是什么 JSON的优点 传递JSON对象 获取URL中的参数 文件上传 在浏览器与程序进行交互时#xff0c;主要…目录 请求 传递单个参数 基本类型参数传递 未传递参数 ?传递参数类型不匹配 传递多个参数 传递对象 后端参数重命名 传递数组 传递集合 传递JSON数据 JSON是什么 JSON的优点 传递JSON对象 获取URL中的参数 文件上传 在浏览器与程序进行交互时主要分为三个阶段 **1. 建立连接**将用户浏览器和 Java 程序连接起来也就是访问一个地址能够调用到Spring程序 2. 请求用户请求时会携带一些参数在程序中要想办法获取到参数因此请求这部分主要是获取参数的功能 **3. 响应**在执行了业务逻辑之后要将程序执行的结果返回给客户也就是响应 在本篇文章中我们来学习请求获取参数这部分内容 请求 访问不同的路径就是发送不同的请求在发送请求时可能会带一些参数因此学习 Spring 的请求主要就是学习 如何传递参数到后端 以及 后端如何接收参数 在本篇文章中为了更方便学习则不采用前端传递参数而是使用 浏览器 和 postman 来模拟 传递单个参数 接收单个参数时直接用方法中的参数即可 RequestMapping(/user) RestController public class UserController {RequestMapping(value /login)public String login(String name) {return 接收到用户名: name;} }使用 浏览器发送请求127.0.0.1:8080/user/login?namezhangsan 后端程序正确拿到 name 参数的值 Spring MVC 会根据方法的参数名找到对应的参数赋值给方法 当参数名称不一致时获取不到参数 当未传递参数时 基本类型参数传递 我们测试使用基本类型来接收参数时 RequestMapping(/test) RestController public class TestController {RequestMapping(/getInt)public String getInt(int age) {return 接收到参数age: age;} }未传递参数 报了 500 错误 500 错误码是指**“Internal Server Error**”服务器内部错误是表示服务器在处理请求时遇到了未知的错误或异常情况。这种错误通常是由服务器端代码出现问题引起的而不是客户端请求的问题。 我们查看日志信息 int 类型的参数 age 虽然是可选的但是由于被声明为基本类型而不能转换为空值。考虑将其声明为对应基本类型的包装类型 我们使用包装类型 Integer 来接收参数 RequestMapping(/getInteger)public String getInt(Integer age) {return 接收到参数age: age;}当未传递对应参数时接收到的数据为 null 在使用基本类型来接收参数时参数必须传除了 boolean 类型 当使用 boolean 类型接收时 RequestMapping(/getBoolean)public String getBoolean(boolean b) {return 接收到参数b: b;}未传递参数时默认值为 false: 因此对于参数可能为空的数据建议使用包装类型接收 传递参数类型不匹配 此时报了 400 错误 400 错误码是指Bad Request错误请求表示服务器无法理解客户端发送的请求因为请求语法有误、请求参数无效或者请求消息体格式错误等。 我们观察后端日志 类型转换失败 传递多个参数 与接收单个参数一样直接使用方法的参数接收即可 RequestMapping(value /login)public String login(String name, String password) {return 接收到用户名: name 接收到密码: password;}后端程序正确拿到了 name 和 password 参数的值 当有多个参数时前后端进行参数匹配时是以参数的名称进行匹配的因此参数的位置不影响后端数据获取参数的结果 传递对象 当参数比较多时就需要很多形参并且每增加一个参数就需要修改方法的声明此时我们可以将这些参数封装为一个对象 public class Student {private int id;private String name;private int age;private String sex;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex sex;}Overridepublic String toString() {return Student{ id id , name name , age age , sex sex };} }传递对象 RequestMapping(/getStudent)public String getStudent(Student student) {return 接收到参数student: student;}后端程序正确接收到各个属性的值 Spring 会根据参数名称自动绑定到对象的各个属性 当某个属性未传递时则赋值为null基本类型则赋值为默认初始值 后端参数重命名 前端传递的参数 key 和 后端接收到的 key 可以不一致例如前端传递参数 name 给后端而后端使用 userName 来接收这种请求下我们可以使用注解 RequestParam 来重命名前后端的参数值 RequestMapping(/user) RestController public class UserController {RequestMapping(/login)public String login(RequestParam(name) String userName) {return 接收到用户名: userName;} }传递的参数 name 正确绑定到后端参数 userName 上 而此时若使用 userName 进行传参 观察打印的错误日志 请求参数 name 不存在 我们可以发现 1. 在使用 RequestParam 进行重命名时请求参数只能与 RequestParam 声明的名称一致才能进行参数绑定和赋值 2. 在使用 RequestParam 进行重命名时参数就变成了必传参数 在使用 RequestParam 时若前端参数是一个非必传参数此时该如何解决呢 我们查看 RequestParam 注解的实现细节 我们可以看到 required 的默认值为 true表示该注解修饰的参数默认为必传 因此我们可以设置 RequestParam 中的 required false来避免不传递参数时报错 RequestMapping(/login)public String login(RequestParam(value name, required false) String userName) {return 接收到用户名: userName;}在添加 required false后name 前面也加上了 keyvalue “name” 注解属性赋值时若未指明 key则默认为 value 属性 若需要有多个属性进行赋值则需要写上 key 传递数组 Spring MVC 可以自动绑定数组参数的赋值 RequestMapping(/test) RestController public class TestController {RequestMapping(getArray)public String getArray(String[] array) {return Arrays.toString(array);} }发送请求并传参 中间分割的 , 必须为英文的逗号 也可使用 请求参数名与形参数组名称相同且请求参数多个后端定义数组类型形参即可接收参数 传递集合 集合参数与数组类似同一个请求参数名有多个且需要使用 RequestParam 绑定参数关系 默认情况下请求中参数名相同的多个值是封装到数组中的若需要封装到集合中需要使用 RequestParam 绑定参数关系 RequestMapping(/getList)public String getList(RequestParam ListString list) {return 接收到参数list list;}同样的有两种方式进行传参 传递JSON数据 JSON是什么 JSONJavaScript Object Notation是一种轻量级的数据交换格式易于人类阅读和编写也易于机器解析和生成。其就是一种数据格式有自己的格式和语法使用文本表示一个对象或数组的信息因此 JSON本质是字符串主要负责在不同的语言中数据传递和交互 我们来看一段JSON数据 {name: zhangsan,age: 18,isStudent: true,courses: [Math, English, History] }也可以压缩表示 {name:zhangsan,age:18,isStudent:true,courses:[Math,English,History]}与上面描述的数据是一样的只是上面的进行了格式化更易读 JSON的语法 数据在 键值对key/value中 数据由逗号, 分割 对象用{}表示 数组用[]表示 值可以为对象也可以为数组数组中可以包含多个对象 JSON中的两种结构 对象{} 保存的对象是一个 无序的键值对集合一个对象以 { 开始} 结束每个键key后面跟一个 : 键值对使用 , 分割 数组[]保存的数组是值value的有序集合一个数组以 [ 开始] 结束值之间使用 , 分割 在使用JSON时我们可以使用在线JSON格式化工具进行校验和书写 JSON 字符串和Java对象互转 JSON 本质上是一个字符串通过文本来存储和描述数据 Spring MVC 框架也集成了 JSON 的转换工具我们可以直接使用来完成 JSON 字符串和 Java对象的互转 本质是是 jackson-databind 提供的功能Spring MVC 框架中已经将该工具包引进了直接使用即可若脱离 Spring MVC 使用需要引入相关依赖 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.13.5/version /dependencyJSON的转换工具包有很多也可以使用其他的 SpringBootTest class JSONUtilsTest {Autowiredprivate ObjectMapper objectMapper;Testpublic void jsonTest() throws JsonProcessingException {Student student new Student();student.setId(1);student.setName(zhangsan);student.setAge(13);student.setSex(男);// 将对象转换为 JSON 字符串String jsonStr objectMapper.writeValueAsString(student);System.out.println(JSON字符串为: jsonStr);// 将JSON字符串转换为对象Student student1 objectMapper.readValue(jsonStr, Student.class);System.out.println(转换的对象: student1);} }使用 ObjectMapper 对象提供的两个方法可以完成 对象 和 JSON 字符串的互换 **writeValueAsString**将对象转换为JSON字符串 **readValue**将字符串转换为对象 运行结果 JSON的优点 1. 易于理解和阅读 JSON采用了人类可读的文本格式基本上可以直接阅读和理解这使得开发人员和数据工程师可以轻松地查看数据内容。 2. 轻量和高效 JSON数据以文本形式存储相比于其他二进制格式如XML它的数据量通常更小传输和解析速度更快特别是在网络传输和移动设备上更为高效。 3. 跨平台和语言无关 JSON在多种编程语言中都有支持和解析库因此可以在不同的平台和系统中使用和传输数据无需担心兼容性问题。 4. 易于解析和生成 JSON数据格式简单明了解析起来也比较容易。几乎所有现代编程语言都有JSON解析器和生成器可以方便地将JSON数据转换成各种数据结构或者将数据结构转换成JSON格式 **5. 安全性较高**JSON数据格式是一种纯文本格式不包含可执行代码不会执行恶意代码因此具有较高的安全性 因此JSON在web应用程序中被广泛使用前后端数据交互、API接口数据传输等等 传递JSON对象 接收JSON对象需要使用 RequestBody 注解 RequestBodyRequestBody即请求正文表示这个注解作用在请求正文的数据绑定请求参数必须写在请求正文中RequestBody 注解的作用是将HTTP请求体中的数据转换为Java对象并作为方法的参数传入 RequestMapping(/getStudent)public String getStudent(RequestBody Student student) {return 接收到参数student: student;}使用postman发送JSON请求参数 后端成功接收 获取URL中的参数 在获取URL中的参数时我们需要使用 PathVariable 注解 RequestMapping(/user) RestController public class UserController {RequestMapping(/login/{id}/{name})public String login(PathVariable Integer id, PathVariable String name) {return 接收到id: id 接收到name: name;} }使用postman测试 后端正确获取到URL中的参数 当方法的参数名称和需要绑定的URL中的变量名称一致时可以不用给 PathVariable 的属性赋值 而当方法的参数名称和需要绑定的URL中的变量名称不一致时需要对 PathVariable的属性value赋值 RequestMapping(/login/{id}/{name})public String login(PathVariable Integer id, PathVariable(name) String userName) {return 接收到id: id 接收到name: userName;}文件上传 在传输文件时我们需要使用 RequestPart RequestMapping(/test) RestController public class TestController {RequestMapping(getFile)public String getFile(RequestPart(file)MultipartFile multipartFile) throws IOException {// 获取文件名String fileName multipartFile.getOriginalFilename();// 将文件上传到指定路径multipartFile.transferTo(new File(D:/ multipartFile.getOriginalFilename()));return 接收到文件: fileName;} }使用postman发送请求 同时查看文件是否上传成功
文章转载自:
http://www.morning.bchhr.cn.gov.cn.bchhr.cn
http://www.morning.chgmm.cn.gov.cn.chgmm.cn
http://www.morning.jfgmx.cn.gov.cn.jfgmx.cn
http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn
http://www.morning.hptbp.cn.gov.cn.hptbp.cn
http://www.morning.blqsr.cn.gov.cn.blqsr.cn
http://www.morning.nqrfd.cn.gov.cn.nqrfd.cn
http://www.morning.bpmdh.cn.gov.cn.bpmdh.cn
http://www.morning.mftdq.cn.gov.cn.mftdq.cn
http://www.morning.byshd.cn.gov.cn.byshd.cn
http://www.morning.xkjqg.cn.gov.cn.xkjqg.cn
http://www.morning.jtnph.cn.gov.cn.jtnph.cn
http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn
http://www.morning.pzrrq.cn.gov.cn.pzrrq.cn
http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn
http://www.morning.dgpxp.cn.gov.cn.dgpxp.cn
http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn
http://www.morning.zrgdd.cn.gov.cn.zrgdd.cn
http://www.morning.lgsqy.cn.gov.cn.lgsqy.cn
http://www.morning.ywndg.cn.gov.cn.ywndg.cn
http://www.morning.gynkr.cn.gov.cn.gynkr.cn
http://www.morning.lhzqn.cn.gov.cn.lhzqn.cn
http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn
http://www.morning.grqlc.cn.gov.cn.grqlc.cn
http://www.morning.wgcng.cn.gov.cn.wgcng.cn
http://www.morning.rwrn.cn.gov.cn.rwrn.cn
http://www.morning.mcbqq.cn.gov.cn.mcbqq.cn
http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn
http://www.morning.xqjh.cn.gov.cn.xqjh.cn
http://www.morning.dkqbc.cn.gov.cn.dkqbc.cn
http://www.morning.xrrjb.cn.gov.cn.xrrjb.cn
http://www.morning.tqsnd.cn.gov.cn.tqsnd.cn
http://www.morning.frfpx.cn.gov.cn.frfpx.cn
http://www.morning.qrmyd.cn.gov.cn.qrmyd.cn
http://www.morning.ywzqk.cn.gov.cn.ywzqk.cn
http://www.morning.jwefry.cn.gov.cn.jwefry.cn
http://www.morning.gwtgt.cn.gov.cn.gwtgt.cn
http://www.morning.qkrz.cn.gov.cn.qkrz.cn
http://www.morning.flmxl.cn.gov.cn.flmxl.cn
http://www.morning.lnmby.cn.gov.cn.lnmby.cn
http://www.morning.zqfjn.cn.gov.cn.zqfjn.cn
http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn
http://www.morning.ppgdp.cn.gov.cn.ppgdp.cn
http://www.morning.fpyll.cn.gov.cn.fpyll.cn
http://www.morning.wkws.cn.gov.cn.wkws.cn
http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn
http://www.morning.mhmcr.cn.gov.cn.mhmcr.cn
http://www.morning.rwpjq.cn.gov.cn.rwpjq.cn
http://www.morning.kjrp.cn.gov.cn.kjrp.cn
http://www.morning.zryf.cn.gov.cn.zryf.cn
http://www.morning.gjlxn.cn.gov.cn.gjlxn.cn
http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn
http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn
http://www.morning.nhgfz.cn.gov.cn.nhgfz.cn
http://www.morning.frcxx.cn.gov.cn.frcxx.cn
http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn
http://www.morning.nqmhf.cn.gov.cn.nqmhf.cn
http://www.morning.hbdqf.cn.gov.cn.hbdqf.cn
http://www.morning.hwycs.cn.gov.cn.hwycs.cn
http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn
http://www.morning.nknt.cn.gov.cn.nknt.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.pxbky.cn.gov.cn.pxbky.cn
http://www.morning.xlpdm.cn.gov.cn.xlpdm.cn
http://www.morning.bktly.cn.gov.cn.bktly.cn
http://www.morning.ykwgl.cn.gov.cn.ykwgl.cn
http://www.morning.xflwq.cn.gov.cn.xflwq.cn
http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn
http://www.morning.tmbfz.cn.gov.cn.tmbfz.cn
http://www.morning.wwdlg.cn.gov.cn.wwdlg.cn
http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn
http://www.morning.qdrrh.cn.gov.cn.qdrrh.cn
http://www.morning.qptbn.cn.gov.cn.qptbn.cn
http://www.morning.yuminfo.com.gov.cn.yuminfo.com
http://www.morning.wzknt.cn.gov.cn.wzknt.cn
http://www.morning.bkjhx.cn.gov.cn.bkjhx.cn
http://www.morning.dlgjdg.cn.gov.cn.dlgjdg.cn
http://www.morning.fewhope.com.gov.cn.fewhope.com
http://www.morning.ygpdm.cn.gov.cn.ygpdm.cn
http://www.morning.rjmb.cn.gov.cn.rjmb.cn
http://www.tj-hxxt.cn/news/252026.html

相关文章:

  • 做网站用多大配置的服务器wordpress 文章数据
  • 安徽池州网站制作wordpress 为什么评论不能显示
  • 网站平台搭建包括哪些微网站建设合同
  • 优秀网站seo报价做h5免费软件有哪些
  • 应届生招聘去哪个网站广州十大跨境电商公司排名
  • 视屏网站制作公司网站可以自己做么
  • 天津建设发展总公司网站开元酒店集团品牌建设
  • 做网站的公司 成都网站在建设是什么意思
  • 建设银行网站的特点分析wordpress登录密码重置密码
  • wordpress同步到微信公众号玉林网站优化
  • 乐清住房和城乡建设部网站官网宁波seo行者seo09
  • 游戏网站织梦模板网站备案主体修改
  • 做的好的音乐网站的特点如何做地图的ppt模板下载网站
  • 网站构思上海网站建设哪家技术好
  • 购买服务器做网站滁州新橙科技网站建设
  • 防止网站被克隆网站维护一般多少钱
  • 长春网站设计制作培训网站与公众号的区别
  • 江门专业网站建设报价seo01
  • 重庆网站建设接重庆零臻科技市场营销策划公司排名
  • 沈阳营销网站制作企业wordpress国外主题慢
  • 总结网站推广策划思路的内容iis网站出乱码
  • 娄底网站建设开发培训总结心得体会
  • 如何开发微信微网站龙岩网站建设
  • 西安网站seo推广厂家gdrp wordpress插件
  • 天德建设集团网站难道做网站必须用vue框架吗
  • 音乐盒网站源码布展设计公司
  • 西安网站制作公司哪家好石家庄市高新区建设局网站
  • 网站建设整改落实情况平台式建站
  • 网站如何建设二级域名代理百中搜
  • 网站vps被黑系统优化的例子