Accessing post variables using Java Servlets

JavaHttpServlets

Java Problem Overview


What is the Java equivalent of PHP's $_POST? After searching the web for an hour, I'm still nowhere closer.

Java Solutions


Solution 1 - Java

Here's a simple example. I didn't get fancy with the html or the servlet, but you should get the idea.

I hope this helps you out.

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

Now for the 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");
    ....
    ....
  }
}

Solution 2 - Java

Your HttpServletRequest object has a getParameter(String paramName) method that can be used to get parameter values. <http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)>

Solution 3 - Java

POST variables should be accessible via the request object: HttpRequest.getParameterMap(). The exception is if the form is sending multipart MIME data (the FORM has enctype="multipart/form-data"). In that case, you need to parse the byte stream with a MIME parser. You can write your own or use an existing one like the Apache Commons File Upload API.

Solution 4 - Java

The previous answers are correct but remember to use the name attribute in the input fields (html form) or you won't get anything. Example:

<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 -->

All this code is HTML valid, but using getParameter(java.lang.String) you will need the name attribute been set in all parameters you want to receive.

Solution 5 - Java

For getting all post parameters there is Map which contains request param name as key and param value as key.

Map params = servReq.getParameterMap();

And to get parameters with known name normal

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPatrickView Question on Stackoverflow
Solution 1 - JavaScArcher2View Answer on Stackoverflow
Solution 2 - JavaRyan AhearnView Answer on Stackoverflow
Solution 3 - JavaMcDowellView Answer on Stackoverflow
Solution 4 - Javahgc2002View Answer on Stackoverflow
Solution 5 - JavaSiddappa WalakeView Answer on Stackoverflow