如何将请求参数提取到名称值集合中

时间:2016-12-23 07:32:34

标签: java parsing http-request-parameters

我有一个请求参数,如

  

usrInfo:FNAME =名字&安培; L-NAME =名字&安培;公司=安培; addressLine1 = wewqe&安培; addressLine2 = wqewqe&安培;城市= qweqwe&安培;国家=美国+美国

我想提取每个名字的值。

我已经编写了下面的方法,但是当它的相应名称对没有值时它会失败。

private String getRequestParamavalue(SlingHttpServletRequest request, String requestParameter, String requestParamName) {

        String reqParamValue = null;

        if (StringUtils.isNotBlank(request.getParameter(requestParameter))) {

            String[] reqParams = request.getParameter(requestParameter).split("&");
            Map<String, String> requestParamMap = new HashMap<>();
            String value;
            for (String param : reqParams) {
                String name = param.split("=")[0];
                value = StringUtils.isEmpty(param.split("=")[1]) ? "" : param.split("=")[1];
                requestParamMap.put(name, value);
            }

            reqParamValue = requestParamMap.get(requestParamName);

        }

        return reqParamValue;

    }

请给我一个建议。感谢。

2 个答案:

答案 0 :(得分:0)

@Kali试试这个

        for (String param : reqParams) {
            String name = param.split("=")[0];
            value = param.split("=").length == 1 ? "" : param.split("=")[1];
            requestParamMap.put(name, value);
        }

答案 1 :(得分:0)

为什么不简单地执行request.getParameter(requestParamName),HTTPServlet Parent类会为您解析。

相关问题