【问题标题】:Accessing post variables using Java Servlets使用 Java Servlet 访问 post 变量
【发布时间】:2010-09-05 12:50:40
【问题描述】:

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

【问题讨论】:

    标签: java http servlets


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      POST 变量应该可以通过请求对象访问:HttpRequest.getParameterMap()。例外情况是表单发送多部分 MIME 数据(表单具有 enctype="multipart/form-data")。在这种情况下,您需要使用 MIME 解析器解析字节流。您可以自己编写或使用现有的,例如 Apache Commons File Upload API。

      【讨论】:

      • 注意:这个答案早于 Servlet 3.0 的发布和对multipate/form-data 的标准支持。请参阅Java EE 6 API 和/或this blog post
      【解决方案4】:

      前面的答案是正确的,但请记住在输入字段(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 属性。

      【讨论】:

        【解决方案5】:

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

        Map params = servReq.getParameterMap();
        

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

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

        【讨论】:

          猜你喜欢
          • 2010-11-21
          • 2021-08-23
          • 1970-01-01
          • 2013-03-25
          相关资源
          最近更新 更多