Java servlet : request.getParameter() returns a parameter from the query string in a POST request
java, parameters, post, servlets
Solution
Check the javadoc for the `getParameter` method:
https://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/ServletRequest.html#getParameter%28java.lang.String%29
Like it is stated, you are sending 2 parameters on the request with the same name, one from the query string and another on the body.
Now it is up to you to either validate that no parameter is coming from the query string or read directly values from the request body.
Problem
I'm currently developing a Servlet that runs under Glassfish 4. I implemented the `doPost()` method and I need to ensure that the parameters are passed using the `POST` body, and not in the query string. I wrote a test implementation to check it: ``` protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); response.getOutputStream().print(name); } ``` If I call my page with `POST` with this url: ``` http://localhost:8080/myservlet/testservlet ``` and pass `name=Nico` into the post body, the value Nico is returned, and it's okay. Now if I call it this way: ``` http://localhost:8080/myservlet/testservlet?name=Robert ``` and I still pass `name=Nico` in the `POST` body, Robert is returned, and the name=Nico is ignored. I just would like to avoid parameters to be passed in the URL. Is there a way to explicitly retrieve parameters from the `POST` body instead of body + query string?