我没有调试Java EE的经验(我更喜欢javascript人),我需要查看HTTP POST参数到服务器端的情况。我在表单指向其操作的jsp文件中放置了一个断点,现在我在调试变量窗口中找不到POST内容。
他们在哪里?如何在调试中查找POST?
[我使用wireshark,但它在https上]
答案 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