只针对post请求说明
比较常见的Content-Type 有
1.application/x-www-form-urlencoded 浏览器原生的form表单
形式:key1=value1&key2=value2
提交的数据放在body中,取值方式:request.getParameter()、request.getParameterMap()
2.application/json 消息主体是序列化json字符串
形式:{"name":"小明","password":"123456"}
controller 的入参使用@RequestBody修饰,说明是要使用json的格式接收。request.getInputStream(),request.getReader() 获取。
并且getInputStream获取参数后,request.getParameter() 再不能得到参数。
有一些特殊要求,需要getInputStream多次获取参数,需要重写httpServletRequestSwapper,生成一份拷贝的request对象,通过一个自定义的filter,将重写的request替换原来的request。
3.multipart/form-data
通常上传文件的时候使用,request.getInputStream(),request.getReader() 获取。
网友评论