Neal Hu created CXF-7071:
----------------------------

             Summary: HttpServletRequest.getParameter only get String from 
query not both posted form data
                 Key: CXF-7071
                 URL: https://issues.apache.org/jira/browse/CXF-7071
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 3.1.7
            Reporter: Neal Hu
             Fix For: 3.1.8


The http request:
 POST /dubbott-demo-provider/v1.0/users/beanparam HTTP/1.1
HOST: localhost:8080
accept: text/plain
content-type: application/x-www-form-urlencoded
content-length: 12

pageIndex=99

The resource method returns null:
{code:java}
    public String beanParam(@Context HttpServletRequest req, String ak) {
        String pageIndex = req.getParameter("pageIndex")    
        return pageIndex;
    }
{code}
>From the servlet 3.1 API doc:
String javax.servlet.ServletRequest.getParameter(String name)

Returns the value of a request parameter as a String, or null if the parameter 
does not exist. Request parameters are extra information sent with the request. 
For HTTP servlets, parameters are contained in the query string or posted form 
data.

if we add below servlet filter:
{code:java}
        public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException, ServletException {
                System.out.println(request.getParameter("pageIndex") );
                chain.doFilter(request, response);
        }
{code}
The output is "99" the response is the same "99".

As a conclusion the CXF HttpServletRequest doesn't comply the Servlet 3.1 API 
Spec.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to