private IJdbcManager jdbcManager;
    
private ISnGen snGen;
    
private ISeedGen seedGen;

@Override
    public void init(ServletConfig config) throws ServletException
    {
        jdbcManager = getJdbcManager(config);
        snGen = getSnGen(config);
        seedGen = getSeedGen(config);
    }servlet不是单例多线程的吗?
N个客户端发起请求,那上面的几个成员变量的值就会被不停的赋值吧
这样会导致数据混乱,对吧?

解决方案 »

  1.   

    靠,不会吧,这可是我老大写的代码啊
    再说只要tomcat一启动
    init()方法只会被调用一次后期再多的请求应该也不会改变那些成员变量的值了吧
      

  2.   

    如果是init里,只会初始化的时候执行一次,如果要是doPost、doGet等等里,就会出现LZ你说那种情况
      

  3.   

    错了,init是在第一个用户首次访问的时候开始实例化servlet然后再开始执行的
    仅此一次
      

  4.   

    init()  destroy() 在一个生命周期只执行一次
      

  5.   

    还是错了, tomcat启动就实例化了servlet,但并没有执行init方法
    这个init方法是第一个用户首次访问的时候执行的,以后别的客户机再访问也不执行了
      

  6.   

      在servlet中是禁止使用成员变量的,除非有特殊的要求才会在servlet中定义。
      在servlet中定义成员变量是非常危险的。
      

  7.   

    servlet的生命周期,原来面试官爱问这个还是有意义的。
      

  8.   

    你也错,如果设置了load-on-startup参数,在应用启动的时候,自然会加载,而不是等到第一个request