我的问题是当我试图访问POST
变量与request.getParameter("name")
时,它完美地工作。但在某些情况下,当我的应用程序发出POST
请求时,我还需要从查询字符串中获取GET
参数。Servlet在doPost方法中获取GET和POST的参数
据我所看到的,与getParameter
,你只能访问当前请求的参数,但是,在我的病情,正如我所说,我也需要获取内部doPost
方法GET
参数。
有没有办法取GET
参数不解析查询字符串?
我的问题是当我试图访问POST
变量与request.getParameter("name")
时,它完美地工作。但在某些情况下,当我的应用程序发出POST
请求时,我还需要从查询字符串中获取GET
参数。Servlet在doPost方法中获取GET和POST的参数
据我所看到的,与getParameter
,你只能访问当前请求的参数,但是,在我的病情,正如我所说,我也需要获取内部doPost
方法GET
参数。
有没有办法取GET
参数不解析查询字符串?
getParameter()
方法可以返回(如果可能)GET和POST参数,因为它可以在GET
和POST
之间透明地工作。您不需要做任何明确的工作来获取GET参数。您可以使用getParameter
来查询参数和POST参数。
但是你应该这样做吗? - 这被认为是一个糟糕的设计实践,特别是如果有敏感信息要发送。
这个答案请看:
但是,如果我必须?我知道这不是设计请求的最佳想法,但我必须这样做。据我可以看到我应该解析查询字符串的GET参数和获取POST/PUT/DELETE参数'getParameter'我是吧? –
不,你不需要做任何明确的工作来获取GET参数。你可以为查询参数和POST参数使用'getParameter'。 – GurV
感谢您的回答。 –
我觉得你在这里有一个困惑。您可以根据请求的类型使用相同的getParameter(..)
来检索所有请求参数(在GET或POST或其他中)。如果是GET请求,则可以检索所有GET参数。如果它是POST请求,则可以检索所有POST参数。您使用getParameter(...)
获取参数。而且你一次提出一个请求。如果您在html或JSP文件中发出POST请求,则使用doPost方法接收所有参数。此时,GET请求中没有任何内容。之后,您发出GET请求,您将在doGet方法中检索所有参数。此时,POST中没有任何内容。请记住,HTTP请求是无状态的。
感谢您的回答。 –
如果在查询字符串和发布表单数据中具有相同名称的参数,请使用getParameterValues()
。
例子: -
String fromQuery = request.getParameterValues("name")[0];
String fromForm = request.getParameterValues("name")[1];
感谢您的回答。 –
其实它就像是:'POST A/B Q = 1 postParam = postVal ' –
混合POST GET仅仅是一个非常糟糕的主意 – fabfas
@ErolKESKİN读我的答案请告诉我,如果它是有道理的? –