2017-01-01 854 views
1

我的问题是当我试图访问POST变量与request.getParameter("name")时,它完美地工作。但在某些情况下,当我的应用程序发出POST请求时,我还需要从查询字符串中获取GET参数。Servlet在doPost方法中获取GET和POST的参数

据我所看到的,与getParameter,你只能访问当前请求的参数,但是,在我的病情,正如我所说,我也需要获取内部doPost方法GET参数。

有没有办法取GET参数不解析查询字符串?

+0

其实它就像是:'POST A/B Q = 1 postParam = postVal ' –

+1

混合POST GET仅仅是一个非常糟糕的主意 – fabfas

+0

@ErolKESKİN读我的答案请告诉我,如果它是有道理的? –

回答

1

getParameter()方法可以返回(如果可能)GET和POST参数,因为它可以在GETPOST之间透明地工作。您不需要做任何明确的工作来获取GET参数。您可以使用getParameter来查询参数和POST参数。

但是你应该这样做吗? - 这被认为是一个糟糕的设计实践,特别是如果有敏感信息要发送。

这个答案请看:

+0

但是,如果我必须?我知道这不是设计请求的最佳想法,但我必须这样做。据我可以看到我应该解析查询字符串的GET参数和获取POST/PUT/DELETE参数'getParameter'我是吧? –

+0

不,你不需要做任何明确的工作来获取GET参数。你可以为查询参数和POST参数使用'getParameter'。 – GurV

+0

感谢您的回答。 –

1

我觉得你在这里有一个困惑。您可以根据请求的类型使用相同的getParameter(..)来检索所有请求参数(在GET或POST或其他中)。如果是GET请求,则可以检索所有GET参数。如果它是POST请求,则可以检索所有POST参数。您使用getParameter(...)获取参数。而且你一次提出一个请求。如果您在html或JSP文件中发出POST请求,则使用doPost方法接收所有参数。此时,GET请求中没有任何内容。之后,您发出GET请求,您将在doGet方法中检索所有参数。此时,POST中没有任何内容。请记住,HTTP请求是无状态的。

+0

感谢您的回答。 –

2

如果在查询字符串和发布表单数据中具有相同名称的参数,请使用getParameterValues()

例子: -

String fromQuery = request.getParameterValues("name")[0]; 
String fromForm = request.getParameterValues("name")[1]; 
+0

感谢您的回答。 –

相关问题