<%! %> 只是声明, <% %>是一个程序段。 后者可以完成前者的作用

解决方案 »

  1.   

    jsp是线程执行的(每个客户一个线程),在<%! %>中的代码一般只初始化一次,对所有的线程都是可见的,所以不应该在<% %>中对<%! %>中的数据进行修改,二:最简单的方法是设定一个<input type="hidden">,提交之前修改它的值
      

  2.   

    1,使用<%! %>定义的变量编译成servlet后成为servlet的私有成员变量,在<% %>中定义的变量编译成servlet后成为service()方法的一个本地变量,而service()方法中的本地变量只能每响应一次请求就重建一次
    2,<input type=button id=a onclick=sub(id)>
      <input type=button id=b onclick=sub(id)>
    <script>
    function sub(id)
    {
      if(id==a)
       {
       }
      if(id==b)
       {
       }
    }
    </script>
      

  3.   

    同意用hidden变量
    <input type=button id=a onclick=suba()>
    <input type=button id=b onclick=subb()>
    <input type="hidden" name="sign">
    <script>
    function suba()
    {
       document.forms[0].sign.value="a";
    }
    function suba()
    {
       document.forms[0].sign.value="b";
    }
    </script>
    在提交后的页面用
    if(request.getParameter("sign") == "a")
    {
    }
    if(request.getParameter("sign") == "b")
    {
    }