Data Type Request Process
表单数据
- application/x-www-form-urlencoded : enctype未指定属性时的默认值
multipart/form-data
:当表单包含type=file
的 input元素时使用此值text/plain
:出现于 HTML5,用于调试。这个值可被 button、input type=”submit” 或 input type = “image”元素上的formenctype
属性覆盖- 纯文本内容传输
- 自定义数据传输格式
- 跨域请求时的预检请求(CORS preflight)
处理方式
application/x-www-form-urlencoded :
- 在 JavaEE 中,可以使用
HttpServletRequest.getParameter()
方法来获取application/x-www-form-urlencoded
类型的数据 - Spring 中,可以使用
@RequestParam
注解来接收application/x-www-form-urlencoded
类型的数据。
multipart/form-data :
- JavaEE 并没有提供直接处理
multipart/form-data
的方法,但可以使用第三方库来处理,比如 Apache Commons FileUpload 或 Servlet 3.0 的@MultipartConfig
注解。 - Spring 提供了更便捷的方式处理
multipart/form-data
类型的数据,通过使用@RequestPart
或@RequestParam
注解来接收上传的文件或数据
例子
|
|
text/plain
:
- JavaEE 使用
request.getReader()
获取请求体的读取器,然后读取并拼接文本数据。 - 在 Spring 中,你可以使用
@RequestBody
注解来接收text/plain
类型的数据
例子
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
JSON
前端可以通过 JavaScript 的 JSON.stringify()
方法将数据转换为 JSON 格式发送给后端
处理方式
- 在 Spring 中,通常使用
@RequestBody
注解来处理 JSON 数据 - 在 JavaEE 中,使用外部库比如Jackson等来处理Json数据,类似处理text/plain,用外部库将在请求体读取到的JSON转换为实例对象
查询参数
Query Parameters(查询参数): 这些参数通常附加在 URL 的末尾,以键值对的形式出现(例如 ?key1=value1&key2=value2
)
处理方式
- JavaEE : 可以使用
HttpServletRequest.getParameter()
方法来获取 - Spring : 可以使用
@RequestParam("paramName")
注解来获取查询参数
HTTP Header
处理方式
- JavaEE : 可以使用
HttpServletRequest.getHeader()
方法来获取 - Spring : 可以使用
@RequestHeader("headerName")
注解来获取Http Header数据据
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment