下面是一段Jascript和一个Form,我想在点击链接时把dwonrcord()中的参数传给Servlet.但是Servlet:downrecord打印出来的参数downid是null.
<jscritp>
function downrecord(i)
{  
   var s="?downid="+i;
   document.forms[1].action=document.forms[1].action+s;
   document.forms[1].submit(); } 
</jscript>
form:
<form name="download" action="/downrecord">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td >
·<a href="/download/abc.rar" onClick="downrecord(1)">abc<br>                            </td>
...
</table>
</form>
servlet:
...
   public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException {
    
       System.out.println("downid is: "+request.getParameter("downid")); 
    }
...

解决方案 »

  1.   

    这样试试:
    <jscritp>
    function downrecord(i)
    {
    var s="?downid="+i;
    document.forms[1].action="/downrecord"+s;
    document.forms[1].submit();}
    </jscript>
    form:
    <form name="download" >
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td >
    ·<a href="/download/abc.rar" onClick="downrecord(1)">abc<br> </td>
    ...
    </table>
    </form>
      

  2.   

    form的method应该为GET吧!
    不知道你为什么要这样写....实在是找麻烦....
      

  3.   

    form里有downid么?
    简单的
    <form name='a'>
        <input type="text" name="downid" size="10">
    </form><script>
        function onCheck() {
            var downid = document.a.downid.value;
            ……
        }
    </script>
      

  4.   

    <a href="/download?downid=abc.rar" onClick="downrecord(1)">abc<br>
      

  5.   

    document.forms[1].action=document.forms[1].action+s;
       document.forms[1].submit();
    =============================应该是forms[0]
      

  6.   

    form的method应该为GET吧!
    不知道你为什么要这样写....实在是找麻烦....
    何意?....
    我不想用数据库统计下载数量,因为下载文件少,想用Servlet实现下载数量统计.
      

  7.   

    forms[1]没错,因为还有一个Form.如果这个错的话,Servlet就不会执行.但执行结果是没有打印出id来.
      

  8.   

    要么就是form里根本没有downid组件
      

  9.   

    function downrecord(i)
    {  
       var s="?downid="+i;
       document.forms[1].action=document.forms[1].action+s;
       document.forms[1].submit(); }
    这里设置form的action有问题,带参数设置提交后参数丢失
      

  10.   

    llyleo522(leo) :你好,那怎么设置才能不丢失参数,在form里加个<input hidden>吗?
      

  11.   

    可以阿,form里没有组件只能这样了吧
      

  12.   

    如果form里没有其他组件,你干脆不要用submit()了,这样你想传什么就传什么,比较灵活
      

  13.   

    如果你在提交数据的时候设置的是POST方式,那么getParameter方法是从HTTP请求的内容里获取参数类容的,如果你是用GET方式,那么getParameter方法是从HTTP链接里获取参数的。所以,如果你要提交数据,要么在Form里提交数据,要么就把提交的数据全部加到链接里。
      

  14.   

    这里与用POST还是GET没什么关系,
    是连接和submit在这里不能同时应用
      

  15.   

    是form就用post,用input来传递参数。
    是链接就用GET,用?xxx=xxx来传参数想在form中改action的url来用?xxx=xxx来传递参数,当然是多此一举了。
    虽然不能说这样就是错的..........