1.这是我的表单代码:
<form method="GET" action="Add">
first-name: <input type="text" name="first-name" value=""/><br/>
last-name: <input type="text" name="last-name" value=""/><br/>
email-id: <input type="text" name="email" value=""/><br/>
<input type="submit" name="submit" value="join now"/><br/>
</form>2.下面是servlet片段:
Enumeration<String> en=request.getParameterNames();
while(en.hasMoreElements()){
String param=en.nextElement();
PrintWriter pw=response.getWriter();
pw.print(param);
pw.println(request.getParameter(param));下面是输出:
first-namevishal
emaildrunkendeathison@gmail.com
submitjoin now
last-nameanand为什么没有按顺序获取呢?在名字之后必须是姓氏,然后是电子邮件和提交,对吧?
发布于 2013-01-12 19:14:44
这并不是servlet所特有的。所有服务器端技术将以与html表单数据由键-值对组成的方式相同的方式工作。如果你有任何逻辑期待命令的到来,你可能需要重新审视它。一般来说,你接收数据的顺序不会有任何不同,你接收的数据更重要。
发布于 2013-01-12 19:07:10
参数存储在HshMap (最有可能是一个HashMap)中,并且不能保证Map中项目的顺序。也就是说,项目是按其键的散列排序的。当您请求参数名称的枚举时,您可能得不到按照它们被插入到映射中的顺序返回它们。您不应该在servlet中依赖此顺序。
在此question中,有一些关于HashMap中项的顺序的讨论。
https://stackoverflow.com/questions/14292677
复制相似问题