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

vohkndzv  于 2023-11-19  发布在  其他
关注(0)|答案(2)|浏览(134)

我有一个Web客户端(JavaScript),它向运行在TOMCAT 8.5上的Servlet发送请求。
该请求是使用$HTTP(req)发送的,当检查req的内容时(即在Chrome中,只需将光标移动到它的顶部),它显示:

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

字符串
备注:
1.编码字符串的长度大约是200个字符,尽管我也尝试过使用较短的字符串,
1.我也尝试了JSON而不是text,但同样的问题仍然存在。
servlet(用于调试目的)检查它是否接收到任何参数,如果没有找到参数,它将返回默认响应。
我还在serlet中的doGET方法中添加了以下代码:

  1. System.out.println("[DBG] - Printing all received parameters...");
  2. Enumeration<String> parameterNames = request.getParameterNames();
  3. while (parameterNames.hasMoreElements()) {
  4. String paramName = parameterNames.nextElement();
  5. System.out.println("[DBG] - Received parameter name is: " + paramName);
  6. String[] paramValues = request.getParameterValues(paramName);
  7. for (int i = 0; i < paramValues.length; i++) {
  8. String paramValue = paramValues[i];
  9. System.out.println("[DBG] - Received parameter value is: " + paramValue);
  10. }
  11. }
  12. System.out.println("[DBG] - End Printing all received parameters.");


它被期望打印它接收的任何参数,而不管名称。
到目前为止,我总是得到默认的响应(这意味着没有收到参数),并打印到控制台显示:

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


这意味着没有收到任何参数。
我做错什么了?

编辑(在收到答案后)

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

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

hmtdttj4

hmtdttj41#

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

j2datikz

j2datikz2#

我找到了解决方案。我没有将参数作为字符串附加到header的data:字段中,而是设置:

  1. params:{request:'{<stringifyed JSON>}'}

字符串
现在,参数正在到达SERVLET。

相关问题