将6个radio的value传到servlet   然后遍历出来
 可是顺序不是Q1Q2Q3Q4Q5Q6 而是Q5Q6Q1Q2Q3Q4
如果增加到10个radio 遍历出来是Q5Q6Q7Q8Q1Q2Q3Q4Q9Q10
请教为什么<!DOCTYPE html>
<html>
  <head>
    <title>homework.html</title>

    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">  </head>
  
  <body>
    <form action="servlet/Check" method="POST">
      <p>
        1.帐户是根据————开设的,用来来系统的记载各项经济业务的一种工具和手段。
        <p></p>
        <input type="radio" name="Q1" value="A">A 资金运动
        <input type="radio" name="Q1" value="B">B 会计对象
        <input type="radio" name="Q1" value="C">C 会计科目
        <input type="radio" name="Q1" value="D">D 财务状况
      </p>
      <hr>
      <p>
        2.我国的会计年度采用:
        <p></p>
        <input type="radio" name="Q2" value="A">A 历年制
        <input type="radio" name="Q2" value="B">B 四月制
        <input type="radio" name="Q2" value="C">C 七月制
        <input type="radio" name="Q2" value="D">D 特殊制
      </p>
      <hr>
      <p>
        3.总分类帐户对其所属的明细分类帐户起着____作用。
        <p></p>
        <input type="radio" name="Q3" value="A">A 平行核算
        <input type="radio" name="Q3" value="B">B 补充说明
        <input type="radio" name="Q3" value="C">C 统奴、控制
        <input type="radio" name="Q3" value="D">D 相互补充
      </p>
      <hr>
      <p>
        4.借贷记帐法的双重性质帐户,其性质要根据————来决定 
        <p></p>
        <input type="radio" name="Q4" value="A">A 借贷发生额
        <input type="radio" name="Q4" value="B">B 借方发生额
        <input type="radio" name="Q4" value="C">C 贷方发生额
        <input type="radio" name="Q4" value="D">D 期末余额
      </p>
      <hr>
      <p>
        5.下列凭证中不能作为编制记帐凭证依据的是:
        <p></p>
        <input type="radio" name="Q5" value="A">A 货单
        <input type="radio" name="Q5" value="B">B 发票
        <input type="radio" name="Q5" value="C">C 发货单
        <input type="radio" name="Q5" value="D">D 购销合同
      </p>
      <hr>
      <p>
        6.会计科目是对____的内容构成及其具体内容进行分类核算的项目和标志。
        <p></p>
        <input type="radio" name="Q6" value="A">A 会计对象
        <input type="radio" name="Q6" value="B">B 会计要素
        <input type="radio" name="Q6" value="C">C 会计主体
        <input type="radio" name="Q6" value="D">D 会计方法
      </p>
      <hr>
      <input type="submit" value="完成提交" />
    </form>
  </body>
</html>
package com;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Check extends HttpServlet { @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter(); Map<String, String[]> map = request.getParameterMap();

Set keySet = map.keySet();
Iterator it = keySet.iterator();
while (it.hasNext()) {             //遍历输出的name是Q5Q6Q1Q2Q3Q4
String key = (String) it.next();
out.write(key);
}
}}servlet 遍历mapiterator

解决方案 »

  1.   

    Set是个无序集合,对应的有序的是treeset,不过我也没有试过,你可以找一下相关资料
      

  2.   

    request.getParameterValue("") 这个是有序的。。
      

  3.   


    才刚知道getParameterNames() 获得的是无序的
      

  4.   

    HTTP协议里并没有定义浏览器实现一定要按顺序获取form里出现的表单。只能自己把表单名按照你想要的顺序定义。 比如 a1 a2 a3 .这样。然后自己取name时排序获取。SortedSet temp = new SortedSet();
    Enumeration enumeration = request.getParameterNames();
    while (enumeration.hasMoreElements()) 
    {
            temp.add((String)enumeration.nextElement());
    }
      

  5.   

    SortedSet temp = new TreeSet();
    看来只能先取了再自定义排序了