我有一个Java servlet,当我向它发送POST请求时,一切都很好。事情是,如果发送一个GET请求,我想使相同的过程,如果它是一个POST请求,当我运行request. getparametermap()有大小= 0。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
LinkedList<String> lErr = new LinkedList<String>();
System.out.printf("Request size: %d%n", request.getContentLength());
System.out.printf("Request method: %s%n", request.getMethod());
Map map = request.getParameterMap();
System.out.printf("ParameterMap size: %d%n", map.size());
}
有什么问题吗?
POST和GET请求的请求体中都有数据。我使用form-data发送它,因为getParameterMap()不仅支持查询字符串,而且还支持。POST请求工作正常
正如Joao和其他一些人指出的那样,我被告知做这件事的方式是错误的。GET请求忽略它们的主体,因此参数映射值来自查询字符串而不是主体。因此,如果在GET请求中没有通过querystring而是通过form-data传递,则参数映射的大小将为0。谢谢大家!
事情将开始正确地使用doGet()
方法,而不仅仅是将参数传递给doPost()
。
我太专注于任务了,甚至不能好好思考。