【问题标题】:How do you represent all of the parameters (names & values) contained in a HttpServletRequest object as a single string?如何将 HttpServletRequest 对象中包含的所有参数(名称和值)表示为单个字符串?
【发布时间】:2011-07-11 23:58:23
【问题描述】:

有什么方法可以将HttpServletRequest 对象中包含的所有参数放入一个字符串中?

【问题讨论】:

    标签: java string http-request-parameters


    【解决方案1】:
    request.getQueryString(); // To get into a single string
    request.getParameterMap(); // to get into a map of key-value pairs
    

    【讨论】:

      【解决方案2】:

      有很多框架可以为你做这种事情。这在很大程度上取决于您使用的技术。我个人更喜欢Spring,原因很简单,它几乎涵盖了我需要做的所有事情。唯一的缺点是有很多东西要学:-)

      【讨论】:

        【解决方案3】:

        由于 getParameterMap() 返回一个Map<java.lang.String,java.lang.String[]>,这个乍一看很简单的问题变得复杂了,所以尝试toString() 返回值并没有得到想要的结果。

        如果您无论如何都需要将参数作为 JSON 字符串,或者不介意额外的依赖,这是一个使用 Jackson 的非常简单的解决方案:

        String asJson = new ObjectMapper().writeValueAsString(request.getParameterMap());
        

        parm1=abc&parm=cde&parm3=fgh&parm3=ijk
        

        它产生

        {"parm1":["abc"],"parm":["cde"],"parm3":["fgh","ijk"]}
        

        【讨论】:

        • 为什么 request.getQueryString() 不起作用?这就是 OP 的要求。
        • @rational 它可以工作,这取决于 OP 想要对输出字符串做什么,它可能就足够了。我只是想指出一个具有一些额外功能的替代解决方案,例如 json 结构化输出和多次出现的参数的分组表示。
        猜你喜欢
        • 2021-09-06
        • 1970-01-01
        • 2021-02-16
        • 1970-01-01
        • 2019-04-05
        • 1970-01-01
        • 2020-08-10
        • 1970-01-01
        • 2016-08-15
        相关资源
        最近更新 更多