【问题标题】:See POST parameters in Java EE eclipse debugging请参阅 Java EE eclipse 调试中的 POST 参数
【发布时间】:2010-03-01 13:26:23
【问题描述】:

我在调试 Java EE 方面没有经验(我是一个 javascript 专家),我需要查看哪些 HTTP POST 参数到达服务器端。我在表单指向其操作的 jsp 文件中放置了一个断点,现在我在调试变量窗口中找不到 POST 内容。

他们在哪里?如何在调试中查找 POST?

[我会使用wireshark,但它通过https]

【问题讨论】:

    标签: java post debugging


    【解决方案1】:

    在 jsp 中,您可以使用 request 对象并调用其方法 getParameterNames ()getParameter (String name)。也可以调用request.getMethod ()确保从POST请求中获取参数。

    <%
       if (request.getMethod().equals("POST")) {
          for (String paramName : request.getParameterNames ()) {
              String value = request.getParameter (paramName);
          }
       }
    %>
    

    【讨论】:

    • java 说 request.getParameterNames() 不能迭代
    【解决方案2】:

    在断点中,只需检查JspContext 实例的HttpServletRequest 属性,然后检查其parameterMap 属性。

    或者按照穷人的方式在 JSP 中打印它们:

    <c:forEach items="${param}" var="p">
        Param: ${p.key}=
        <c:forEach items="${p.value}" var="v" varStatus="loop">
            ${v}${loop.last ? '<br>' : ','}
        </c:forEach>
    </c:forEach>
    

    也就是说,您通常会在 servlet 类中对它们感兴趣,而不是在 JSP 中。这表明您正在使用 scriptlets 在 JSP 文件中执行一些业务逻辑。这被认为是不好的做法。不要这样做,在为时已晚之前将原始 Java 代码移动到真正的 Java 类中。仅使用 JSP 进行演示。您可以使用 JSTL 之类的标记库来控制页面流,并使用 EL 访问后端数据。

    【讨论】:

    • “这被认为是不好的做法” - 不,这被称为“不是我的代码”:D 感谢答案。我现在不会检查它,因为我使用了一种解决方法,现在已经结束了;)
    【解决方案3】:

    在调试模式下:见 请求 -> 请求 -> coyoteRequest -> 参数 -> paramHashValues

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 2015-03-07
      • 2012-06-17
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      相关资源
      最近更新 更多