Servlet在doPost方法中获得GET和POST的参数
我的问题是,当我试图通过request.getParameter("name")
访问POST
变量时,它完美地工作。 但在某些情况下,当POST
请求到达我的应用程序时,我还需要从查询字符串中获取GET
参数。
就我所知,使用getParameter
,只能访问当前请求的参数,但正如我所说的,正如我所说的,我还需要在doPost
方法内获取GET
参数。
有没有一种方法来获取GET
参数而不解析查询字符串?
getParameter()
方法可以返回(如果可能的话)GET和POST参数,因为它可以在GET
和POST
之间透明地工作。 您不需要做任何明确的工作来获取GET参数。 您可以将getParameter
用于查询参数和POST参数。
但是,你应该这样做吗? - 这被认为是一个糟糕的设计实践,特别是如果有敏感信息要发送。
看看这个答案:
如果在查询字符串和发布的表单数据中具有相同名称的参数,请使用getParameterValues()
。
例:-
String fromQuery = request.getParameterValues("name")[0];
String fromForm = request.getParameterValues("name")[1];
我认为你在这里有一个困惑。 您可以根据请求的类型使用相同的getParameter(..)
来检索所有请求参数(在GET或POST或其他中)。 如果是GET请求,则可以检索所有GET参数。 如果它是POST请求,则可以检索所有POST参数。 您使用getParameter(...)
获取参数。 而且你一次提出一个请求。 如果您在html或JSP文件中发出POST请求,则使用doPost方法接收所有参数。 此时,GET请求中没有任何内容。 之后,您发出GET请求,您将在doGet方法中检索所有参数。 此时,POST中没有任何内容。 请记住,HTTP请求是无状态的。
上一篇: Servlet get GET and POST's parameters at the doPost method