PHP 的 Java 等价物是什么 $_POST?在网上搜索了一个小时后,我仍然距离目标还很远。

有帮助吗?

解决方案

你的 HttpServletRequest 对象有一个 getParameter(String paramName) 可用于获取参数值的方法。 http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)

其他提示

这是一个简单的例子。我对 html 或 servlet 不太感兴趣,但您应该明白了。

我希望这可以帮助你。

<html>
<body>
<form method="post" action="/myServlet">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" />
</form>
</body>
</html>

现在是 Servlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet {
  public void doPost(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {

    String userName = request.getParameter("username");
    String password = request.getParameter("password");
    ....
    ....
  }
}

POST 变量应该可以通过请求对象访问: HttpRequest.getParameterMap(). 。例外情况是,如果表单正在发送多部分 MIME 数据(表单有 enctype =“多部分/表单数据”)。在这种情况下,您需要使用 MIME 解析器来解析字节流。您可以自己编写或使用现有的,例如 Apache 共享文件上传 API。

前面的答案是正确的,但请记住在输入字段(html 表单)中使用 name 属性,否则您将不会得到任何结果。例子:

<input type="text" id="username" /> <!-- won't work --> <input type="text" name="username" /> <!-- will work --> <input type="text" name="username" id="username" /> <!-- will work too -->

所有这些代码都是 HTML 有效的,但使用 getParameter(java.lang.String) 时,您需要在要接收的所有参数中设置 name 属性。

为了获取所有 post 参数,有一个 Map,其中包含请求参数名称作为键,参数值作为键。

Map params = servReq.getParameterMap();

并正常获取已知名称的参数

String userId=servReq.getParameter("user_id");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top