Tomcat Servlet GET没有从Web客户端接收参数

时间:2017-03-16 08:46:04

标签: javascript java tomcat servlets

我有一个Web客户端(JavaScript)向在TOMCAT 8.5上运行的Servlet发送请求。

请求是使用$HTTP(req)发送的,当检查req的内容时(例如在Chrome中只是将光标移到其上方),它会显示:

data:"request=%7B%....." 
headers: Object
  Content-Type: "application/text ; charset=UTF8"
method: "GET"
timeout: 10000
url: "http://localhost:8080/MyServlet/Dispatcher"

注意:

  1. 编码字符串的长度约为200个字符,但我也尝试使用较短的字符串,

  2. 我也尝试了JSON而不是text,但仍存在同样的问题。

  3. servlet(用于调试目的)检查它是否收到任何参数,如果没有找到参数,则返回默认响应。

    我还在doGET方法中的serlet中添加了以下代码:

        System.out.println("[DBG] - Printing all received parameters..."); 
        Enumeration<String> parameterNames = request.getParameterNames(); 
        while (parameterNames.hasMoreElements()) { 
            String paramName = parameterNames.nextElement(); 
            System.out.println("[DBG] -       Received parameter name is: " + paramName); 
            String[] paramValues = request.getParameterValues(paramName); 
            for (int i = 0; i < paramValues.length; i++) { 
                String paramValue = paramValues[i]; 
                System.out.println("[DBG] -       Received parameter value is: " + paramValue); 
            }
        } 
        System.out.println("[DBG] - End Printing all received parameters."); 
    

    无论名称如何,都应该打印它收到的任何参数。

    到目前为止,我总是回到默认响应(意思是,没有收到参数)和打印到控制台显示:

    [DBG] - Printing all received parameters...
    [DBG] - End Printing all received parameters.
    

    同样,意味着没有收到任何参数。

    我在这里做错了什么?

    感谢。

    修改 [收到回复后]

    在servlet中,我尝试使用以下声明获取参数的值:

    String  Web_Request = request.getParameter("request")   ;
    

2 个答案:

答案 0 :(得分:1)

如果这是GET请求,则忽略正文(上下文中的数据)。如果你想作为请求参数发送,你必须将它附加到网址并尝试获取值request.getParameter("request"),该值应该返回你要添加的字符串。

答案 1 :(得分:0)

我找到了解决方案。我没有将参数作为附加到标题的params:{request:'{<stringifyed JSON>}'} 字段的字符串传递,而是设置:

$

现在,参数已到达SERVLET。