这一次让我心烦意乱,现在我觉得我知道它是什么。
我有这个使用POST提交值的基本表单。
<form action="./change" method="post">
<p class="fieldName">Username (your email address):</p>
<input type="text" name="thetaname"/>
<p class="fieldName">Password:</p>
<input type="password" name="thetaword"/>
<p class="fieldName">Confirm Password:</p>
<input type="password" name="confirm"/>
<input type="hidden" name="authkey" value="djj"/>
<p class="errorMsg"></p>
<br><br>
<input type="submit" value="Submit"/>
</form>
并提交到最初创建表单的同一位置。问题似乎是表单最初是在URL上使用GET参数创建的,表单是POST。当我查看日志时,看起来GET参数包含在帖子中,我的Spring应用程序变得混乱。
我正在使用GET作为原件,因为我正在通过电子邮件发送给用户的链接。我在提交时使用POST,因为我想确保密码和内容都是加密的。
我在Spring启动前运行NGINX,它从提交中返回一个空字符串。
GET仅在我的方法中列为GET,在我的控制器中仅在我的方法上作为POST列出。
想法?
答案 0 :(得分:0)
我不能说我完全理解你的问题,但这可能会有所帮助;
如果您使用Java作为服务器端技术,请将action属性更改为(action =&#34;更改&#34;)not(action =&#34; ./ change&#34;)。
答案 1 :(得分:0)
我假设您的控制器位于Servlet容器中。在这种情况下,Servlet将把url查询参数和POST参数结合在一起。您始终可以通过getParameterValues
获取所有这些内容。另见这篇文章:
How do I separate out query string params from POST data in a java servlet
答案 2 :(得分:0)
如果不是答案,我终于找到了解决办法。我只是将第二个更改重命名为change2并发布到change2。这似乎工作正常。