<%! int i=0%>
具体作用是什莫?
在哪里经常用到?
我刚接触JSP还请大家不吝赐教!

解决方案 »

  1.   

    楼主学习方法不太好,应该自己思考&找资料先!!
    http://topic.csdn.net/t/20030102/16/1320844.html
      

  2.   

    这个等用于类的static变量和方法
    <%! int i=0%> 等同于private static int i=0;注意是类一级的,不是doGet. doPost方法一级的
      

  3.   

    <%! int i=0%> 
    jsp中的脚本元素,在jsp文件中声明一个变量并初始化为0,此时你在整个jsp页面中就可以使用这个变量了。它相当于java类中的一个实例变量
      

  4.   

    用JSP挺长时间了,还真没用过这个,惭愧...
      

  5.   

    经测试<%! int i=0;%>不等同于  private static int i=0; 而是int i=0;to 楼主:
    首先每个JSP在运行之前都会编译成一个servlet,这个你可以通过Tomcat下边的work文件夹一直找到.比如说你项目名为a,JSP文件为b.jsp,那么你去到work下边的你的目录下边去找到b_jsp.java,这里就是一个JSP对应的Servlet文件.你会发现,JSP文件里普通的内容都是在那个
     public void _jspService(HttpServletRequest request, HttpServletResponse response)
            throws java.io.IOException, ServletException {
    //jsp文件的代码
    }
    这个方法里边.
    而其中的一些
    <%! int i=0;%>
    这里的多了一个!就会定义成类的属性.
    为什么要这样?
    因为还可以在JSP里定义方法
    <%!
    public int getC()
    {
     return i;
    }
    %>这时候就写Servlet一样的了.
      

  6.   

    我用的时候结果就相当于一个,页面刷新时,其值可以累加,而并不会还原,如果定义为<%int i=0;%>此时页面刷新是就会还原为0。
      

  7.   

    你去用一句
    out.println(this);
    你就会发现为什么像是static一样的了.
      

  8.   

      我下周才开始学习   JSP  
      

  9.   

    晕啊,难道楼主因为是等同于static的????
    主要是因为在一段时间内这个JSP只创建了一个对像.多个浏览器都访问都是同一个对像,所以结果像是stati的,实际不是.
      

  10.   

    不好意思,现在JSP的书看得很少,其内部具体运作我不太了解!你如果有时间能不能具体说一下!
      

  11.   

    不是全局变量,主要是因为这个JSP在运行的时候只创建了一个对像,多个浏览器去访问的时候都是同一个对像.所以每个页面访问的时候都会像是同一个对像,如果你是用Tocmat服务器,你写一个JSP然后就定义那么一个变量,访问它之后你去Tomcat的work目录下边去找到你的项目里的这个JSP文件对应的java文件,因为JSP就是Servlet,所以一个JSP会对应着一个java文件,一般是JSP文件名_jsp.java.你去看看那个java代码就知道是不是全局的了.