java中,访问同一个servlet只会实例化一个serlvet对象(由tomcat实例化),多个用户访问同一个servlet,tomcat会给每个用户
分配一个线程,但是都是同一个实例一下是测试例子:
public class Test extends HttpServlet {
int a =5;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println(a);
a=10;
System.out.println(a);
}
}
第一次访问输出 5 10
第二次以后访问(另一台电脑,或者另一个浏览器上访问):10 10(说明访问的是同一个实例,之前的全局变量已经被第一次的改了,所以访问的
是同一个实例的话以后每次都是10),
所以serlvet全局变量存在一个线程安全问题,因为全集变量是所有线程共享的。 这 只是测试例子证明servlet是单例,注意全局变量的使用