繁体   English   中英

使用Java Servlet访问post变量

[英]Accessing post variables using Java Servlets

什么是PHP的$_POST的Java等价物? 在网上搜索了一个小时后,我仍然离我更近了。

这是一个简单的例子。 我对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");
    ....
    ....
  }
}

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

POST变量应该可以通过请求对象访问: HttpRequest.getParameterMap() 例外情况是表单是否发送多部分MIME数据(FORM具有enctype =“multipart / form-data” )。 在这种情况下,您需要使用MIME解析器解析字节流。 您可以编写自己的或使用现有的Apache Commons File Upload 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包含请求参数名称作为键,param值作为键。

Map params = servReq.getParameterMap();

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

String userId=servReq.getParameter("user_id");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM