各位大虾,在JSP的服务器中,被声明为 static 的方法、变量、(不管有多少个客户端访问)在服务器端是不是只有一个实例运行?还是服务器端为个客户端各生成一个实例运行?
小弟现在 也在学JSP,这个问题让各位大虾见笑了。恳望各位大虾指点指点。

解决方案 »

  1.   

    只有一个实例,java和jsp在这方面的行为是一样的
      

  2.   

    不是,因为整个jsp环境下是一个session,所以最好使用application,response等特定指令
      

  3.   

    简单来说只有一个;
    复杂来说也有例外的,3言2语说不清楚,谨慎使用为好,能不用尽量不用;
    例如采用分布集群服务器咯,服务器不止个ClassLoad什么的
      

  4.   

    static 的属性和方法属于类对象(class)的东西。
    所有的对象都共享一份类对象,所以当然只有一个。
    至于你说的在客户端还是服务器端主要看你拥有static的程序在那里运行,
    如果是服务器端 当然是在服务器。如果是applet在客户端运行的就肯定是进驻客户端的jvm里了
    PS: coding中尽量少用static 一是会破坏程序的封装性 二是可能会造成线程冲突。
      

  5.   

    同意 chnic(挠痒痒) ( )
      

  6.   

    同意chinc的看法.主要还是看楼主的static用在什么地方了.
      

  7.   

    小弟是想用被声明为static的方法来统计访问流量
      

  8.   

    用不着静态变量吧,声明一个成员级的变量就可以。<%! int i=0; %>
    <% i++; %>不过,webapp重启之后,会重新置成0
      

  9.   

    to 楼上jsp里强烈不建议使用<%! int i=0; %>
    你这样会有线程的冲突问题的。
    如果并发5W个人访问这个页面 你觉得这个i 会是50000么?
      

  10.   

    各位大哥,我是要用数据库作访问量统计的呀,怎么能用
    <%! int i=0; %>
    <% i++; %>
    之类的呢?
    我将对数据库的操作封装了static类型的方法。