gpt4 book ai didi

java - 如何按照发送顺序获取 getParameterValues 的值?

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:56 24 4
gpt4 key购买 nike

我通过 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_名字,然后1_姓氏,然后2_用户名,因为我想将此数据插入数据库中。这里0,1,2...我写只是为了表明我想要按这个顺序值。

最佳答案

试试这个

Enumeration<String> enumParamNames = request.getParameterNames();

Enumeration转换为List以便对它们进行排序。

List<String> listParamNames = Collections.list(enumParamNames);

排序前,paramNames 将如下所示

[5_国家/地区、4_密码、1_姓氏、0_名字、2_用户名、3_电子邮件]

通过Collections.sort(listParamNames);对列表进行排序

排序后的 paramNames 将如下所示

[0_名字、1_姓氏、2_用户名、3_电子邮件、4_密码、5_国家]

现在您可以使用listParamNames循环来获取关联的param值

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_名字 - abc

1_姓氏 - xyz

等等......

关于java - 如何按照发送顺序获取 getParameterValues 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26906939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com