java.util.Iterator iter = request.getParameterMap().entrySet().iterator();
        while (iter.hasNext()) {
            java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
            String key = entry.getKey().toString();
            String val = request.getParameter(key); // 这里能成功输出VAL值
            out.print(key + " = " + val + "<br>");
        }        java.util.Iterator iter = request.getParameterMap().entrySet().iterator();
        while (iter.hasNext()) {
            java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
            String key = entry.getKey().toString();
            String val = entry.getValue().toString();// 这里怎么变成内存中的地址了
            out.print(key + " = " + val + "<br>");
        }如果用上面那方法 会存在效率问题吗?

解决方案 »

  1.   

    是什么情况 你要用getParameterMap()方法啊 如果没有必要就最好别用了
     String val = request.getParameter(key); // 这里能成功输出VAL值
    String val = entry.getValue().toString();// 这里怎么变成内存中的地址了这两个肯定不一样的啊 一个是request取的KEY 一个是entry 这个entry不是request.getParameter()
      

  2.   

     entry.getValue() 返回的是数组,所以你转换成String 输出的就是地址了。
    要转换成String[] 因为像一些checkbox元素等都是同名的(即name一样)
    比如有3个选中的checkbox 那么获取的是String[3]个值。
      

  3.   

    request.getParameterMap()返回的值,是一个Map类型的,记录着所提交的请求中请求参数和请求参数值的映射关系。它的返回值有个特别之处——只能读。不像普通的map数据一样可以修改。这是因为服务器为了实现一定的安全规范,所作的限制,WebLogic,Tomcat,Resin,JBoss等服务器均实现了此规范。但是有必要在拿到此值做修改的话,要新建一个map对象,将返回值复制到此新map对象中进行修改,用新的map对象代替使用之前的返回值。
    关于 request.getParameter(key); 这个就是取值的
    entry.getValue().toString();这个就是取地址的没啥好说的,看一下api文档吧~
      

  4.   

    既然用了request.getParameterMap() 就不要再用request.getParameter(key)了。 java.util.Iterator iter = request.getParameterMap().entrySet().iterator();
            while (iter.hasNext()) {
                java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
                String key = entry.getKey().toString();
                String[] val = (String[])entry.getValue();// 这里怎么变成内存中的地址了
                for(int i=0;i<val.length;i++)
                out.print(key + " = " + val[i] + "<br>");
            }
      

  5.   

    我想获取FROM里面所有表单应为太多了,不想一个个request.getParameter()
    去获取
      

  6.   


    <input type="checkbox" name="isGzip" value="1">如果没有勾上的话String key = entry.getKey().toString();这个 key 里面没有 isGzip怎样在没有勾上的情况下key 也有 isGzip
      

  7.   


    没勾上的是不会提交的action的,它不会在request里。
    可以用js把这些值放到一个隐藏字段里,逗号分割,后台获取后解析。
      

  8.   


    UP+不管前台传的几个,这个方法就是返回数组
    Map<String,String[]> pm = request.getParameterMap();
      

  9.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="ru">
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <script type="text/javascript">

    window.onload = function(){
     alert(getInputVal('chk'));    
    }

    function getInputVal(name)
    {
    var chks = document.getElementsByName(name);
    var array = new Array();

    for(i=0;i<chks.length;i++)
    {
    array[array.length]=chks[i].value;
    }
    return array.join(',');

    }
    </script>
    </head>
    <body>
     <form action="#"> <input type="checkbox" name="chk" value="1" />1
    <input type="checkbox" name="chk" value="2" />2
    <input type="checkbox" name="chk" value="3" />3
    <input type="checkbox" name="chk" value="4" />4
    <input type="checkbox" name="chk" value="5" />5
    <br>
      <input type="text" name="test" id="test" onfocus="this.value=getInputVal('chk')" />
     </form>
    </body>
    </html>