请参阅Java EE eclipse调试中的POST参数

时间:2010-03-01 13:26:23

标签: java post debugging

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

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

[我使用wireshark,但它在https上]

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

在断点中,只需检查HttpServletRequest实例的JspContext属性,然后检查其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中。这表明您正在使用 scriptlet 在JSP文件中执行一些业务逻辑。这被认为是不好的做法。不要这样做并将原始Java代码移动到真正的Java类之前为时已晚。仅使用JSP进行演示。您可以使用像JSTL这样的taglib来控制页面流并使用EL来访问后端数据。

答案 2 :(得分:1)

在调试模式下:参见 请求 - &gt;请求 - &gt; coyoteRequest - &gt;参数 - &gt; paramHashValues