欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

SpringMVC获取请求数据

时间:2023-07-08
SpringMVC 获取请求数据

获取请求参数获取基本数据类型获取POJO数据类型获取数组数据类型获取集合数据类型访问静态资源请求数据乱码问题参数绑定注解@requestParam获取Restful风格的参数(@PathVariable注解进行占位符的匹配获取工作)自定义类型转换器获取Servlet相关API获取请求头

@RequestHeader@cookievalue 文件上传

文件上传客户端三要素单文件上传原理单文件上传步骤上传至本地磁盘多文件上传 总结 获取请求参数

客户端请求参数的格式时键值对的形式 :name=value&age=value…服务端获取请求参数,有时需要进行数据的封装,SpringMVC可以接收如下类型的参数 基本参数类型POJO类型的参数(简单的java Bean)数组类型参数集合类型参数 获取基本数据类型

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。

获取POJO数据类型

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。

获取数组数据类型

Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配。

获取集合数据类型

获得集合参数时,要将集合参数包装到一个POJO中才可以。

当使用ajax提交时,可以指定contentType为json形式,那么在方法参数位置使用@RequestBody可以直接接收集合数据而无需使用POJO进行包装。

封装的对象文件

ajax请求

引入外部静态资源

访问静态资源

两种写法

请求数据乱码问题

当post请求时,数据会出现乱码,我们可以设置一个过滤器来进行编码的过滤。

遇到了问题,百度了一大圈,首先你的filter字符编码过滤器肯定是要放在所有filter前面的但是我设置了之后对POST请求的中文乱码仍然没解决,随后百度了一圈具体有几种说法 第一:对照你的filter是否书写正确,关键是/*第二:修改你的Tomcat服务器项目目录的service.xml大概在70行的位置加入你的编码格式第三:也是我解决我的问题的方法IDEA:SpringMVC配置乱码过滤器、Tomcat配置sever.xml……依然无法解决中文乱码,你可以试试这个办法 参数绑定注解@requestParam

当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定。

注解@RequestParam还有如下参数可以使用:

value:与请求参数名称required:此在指定的请求参数是否必须包括,默认是true,提交时如果没有此参数则报错defaultValue:当没有指定请求参数时,则使用指定的默认值赋值
获取Restful风格的参数(@PathVariable注解进行占位符的匹配获取工作)

Restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等。Restful风格的请求是使用“url+请求方式”表示一次请求目的的,HTTP 协议里面四个表示操作方式的动词如下: GET:用于获取资源POST:用于新建资源PUT:用于更新资源DELETE:用于删除资源

自定义类型转换器

SpringMVC 默认已经提供了一些常用的类型转换器,例如客户端提交的字符串转换成int型进行参数设置。但是不是所有的数据类型都提供了转换器,没有提供的就需要自定义转换器,例如:日期类型的数据就需要自定义转换器。自定义类型转换器的开发步骤:
① 定义转换器类实现Converter接口
② 在配置文件中声明转换器
③ 在中引用转换器

注册注解
日期转换工具

获取Servlet相关API

SpringMVC支持使用原始ServletAPI对象作为控制器方法的参数进行注入,常用的对象如下:
1、HttpServletRequest
2、HttpServletResponse
3、HttpSession

获取请求头 @RequestHeader

使用@RequestHeader可以获得请求头信息,相当于web阶段学习的request.getHeader(name)@RequestHeader注解的属性如下: value:请求头的名称required:是否必须携带此请求头 @cookievalue

使用@cookievalue可以获得指定cookie的值@cookievalue注解的属性如下: value:指定cookie的名称required:是否必须携带此cookie

文件上传 文件上传客户端三要素

1、表单项type = ”file“2、表单提交方式是POST3、表单的enctype属性是多部份表单形式,及enctype = ”multipart/form-data“

单文件上传原理
单文件上传步骤

导入fileupload和io坐标

配置文件上传解析器

编写文件上传代码

上传至本地磁盘 多文件上传
总结

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。