一般来说是没问题的,不对,你得保证你的这个servlet只有一个(即在web.xml中只有一个servlet-mapping)

解决方案 »

  1.   

    可以,但不建议你这么做,servlet本身是一个单实例多线程的,
    如果你这么做,servlet就有点成为了单实例单线程了,对于性能是极不利的.你可以把synchronized放到getNewId方法里面,只同步你需要独占的部分代码
      

  2.   

    我想知道会不会影响到用户的访问,一个用户访问此时其它用户能否访问到这个servlet还是挂起来等待或是根本就不能访问
    另外我的web.xml中有两个servlet-mapping,会影响到映射的另一个servlet吗?
      

  3.   

    这样做
    public static Object onlyYou = new Object();public myFunction(){
       ...
       synchronized(onlyYou){
         userId = getNewId(uid);
       }
       ...
    }用onlyYou这个对象的机锁,onlyYou系统中只有一个