springmvc里面的get请求,参数获取-问答-阿里云开发者社区-阿里云

开发者社区> a123456678> 正文

springmvc里面的get请求,参数获取

2016-03-18 13:59:38 4547 1

springmvc处理如下接口:

http://localhost:8080/webgis/vehicle/data/vehicledetail?type=1&params=13812345678
后台Controller代码:

@RequestMapping(value="/data/vehicledetail", method=RequestMethod.GET)
    public String vehicledetail(HttpServletRequest request) throws SystemException {
         Map<String, Object> resultMap = new HashMap<String, Object>();
        <span></span> <span></span>String qs = request.getQueryString();
     Map<String,Object> params = super.parseReqParam(request);
         ............
}
获取参数方法代码:
public Map<String,Object> parseReqParam(HttpServletRequest request){
        // 取消对请求串的UTF-8编码,防止不同浏览器中发送请求时进行默认编码处理导致的转码失败
        Map<String, Object> map = null;
        try {
            byte[] buffer = new byte[512];
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            InputStream in = request.getInputStream();
            for (int len = 0; (len = in.read(buffer)) > 0;) {
                baos.write(buffer, 0, len);
            }
            String content = new String(baos.toByteArray(), DEFAULT_ENCODING);
            if(StringUtils.isNotBlank(content)){
                ObjectMapper mapper = new ObjectMapper();
                map = mapper.readValue(content, Map.class);
            }
             
            baos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return  map;
    }


此时,获取参数的方法返还NULL.
但是Controller修改如下代码之后是可以获取到参数type的值:

public String vehicledetail(@RequestParam("type") Integer type, HttpServletRequest request) throws SystemException {

同时如果直接用如下代码:String qs = request.getQueryString();
也可以获取get请求后面的queryString的内容。

这里有几个问题想请了解这块知识的朋友帮忙详细解答一下:

1、request.getInputStream()这个流是http请求哪个部分?

2、为什么request.getParamerter("参数名")不能获取get后面queryString的内容呢?

请不吝赐教,谢谢。

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:06:31

    equest.getInputStream()获取的是Http请求包的包体,GET方式请求一般不包含包体,请求参数是通过URL传递的,所以会返回null。相对应的POST方式通常请求参数是以请求包体的方式传递的。

    问题2,没见你代码里面哪里调用了request.getParamerter(),不过应该是可以使用的

    0 0
相关问答

8

回答

短视频SDK如何做到视频原始比例裁剪?

樰篱 2017-09-13 17:35:01 39332浏览量 回答数 8

11

回答

阿里云渲染云计算基本介绍

christina 2011-07-18 15:47:57 22613浏览量 回答数 11

19

回答

iWeekly:3年不宕机的云计算之旅

徐小幺 2014-06-09 17:37:43 20725浏览量 回答数 19

39

回答

多媒体工具已做好,就等你来投票! 多媒体工具比赛投票

否极泰来 2015-05-27 10:23:24 26632浏览量 回答数 39

3

回答

请问在服务器里桌面颜色怎么设置为32位色,请高手指教!万分感激!

展悦未来 2016-03-25 08:23:21 25676浏览量 回答数 3

6

回答

No.1 mts tools(基于OSS、MTS的客户端工具)

否极泰来 2015-05-27 10:59:45 15793浏览量 回答数 6

30

回答

OSS大学堂 OSS产品技术互动第一期-OSS的介绍及控制台操作(3.23-3.27)

否极泰来 2015-03-20 16:13:57 30387浏览量 回答数 30

12

回答

想拿OSS存储当视频服务器,可行吗?

shijunlin 2012-07-26 14:53:34 29581浏览量 回答数 12

10

回答

短信接口SignatureDoesNotMatch

chenym_hi 2016-11-12 23:23:09 16274浏览量 回答数 10

21

回答

分享一个长期维护的 OSS WordPress 插件

mushi 2017-03-26 15:25:49 15726浏览量 回答数 21
+关注
0
文章
14879
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载