我通过HttpPost方法将注册表单数据发送到Servlet,并通过getParameterValues获取此数据。
获取数据没问题,但我按随机顺序获取数据。我希望在servlet中我按照它们的发送顺序获取数据。我尝试通过在互联网上阅读来解决这个问题,但没有什我在这里发布我的servlet代码。
response.setContentType("text/html");
ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
Enumeration paramNames = request.getParameterNames();
String params[] = new String[7];
int i=0;
while(paramNames.hasMoreElements())
{
String paramName = (String) paramNames.nextElement();
System.out.println(paramName);
String[] paramValues = request.getParameterValues(paramName);
params[i] = paramValues[0];
System.out.println(params[i]);
i++;
}
我得到像这样的输出
5_Country
United States
4_Password
zxcbbnm
1_Lastname
xyz
0_Firstname
abc
3_Email
abc@xyz.com
6_Mobile
1471471471
2_Username
abcd
我首先想要0_Firstname然后是1_Lastname然后是2_Username,因为我想在数据库中插入这些数据。这里0,1,2 ......我写的只是为了表明我想按此顺序获得价值。
答案 0 :(得分:1)
试试这个
Enumeration<String> enumParamNames = request.getParameterNames();
将Enumeration
转换为List
以便对其进行排序。
List<String> listParamNames = Collections.list(enumParamNames);
在排序
之前,paramNames将如下所示 [5_Country, 4_Password, 1_Lastname, 0_Firstname, 2_Username, 3_Email]
按Collections.sort(listParamNames);
已排序的paramNames将如下所示
[0_Firstname, 1_Lastname, 2_Username, 3_Email, 4_Password, 5_Country]
现在,您可以使用listParamNames
循环以获取关联的param value
for(String paramName : listParamNames)
{
System.out.println(paramName);
System.out.print("\t");
/* Instead of using getParameterValues() which will get you String array, in your case no need for that. You need only one `Value`, so you go with `getParameter` */
System.out.print(request.getParameter(paramName));
}
<强>输出:强>
0_Firstname - abc
1_Lastname - xyz
etc....
答案 1 :(得分:0)
您不会使用request.getParameterNames();
按顺序获取参数名称。
您可以使用
String [] parameterNames = new String[]{"param1","param2","param3"};
for(String param : parameterNames){
System.out.println(param);
}
其中parameterNames
获得您想要参数的序列。
您甚至可以配置它并从配置文件中读取序列。
OR
您可以使用
request.getQueryString() to get the QueryString, while using GET Method
OR
您可以使用
request.getInputStream() to get the QueryString, while using POST Method
and parse the raw data to get the Query string.
获取查询字符串后,您可以按照自己的方式进行拆分和使用。