servlet的生存周期是由web容器负责的。。。
大致分为 实例化,初始化(init),处理请求(service),销毁(destroy)四步。
这里需要注意的是 一旦servlet被实例化后,一个实例可以处理多个请求(单例)。。。此时就不得不考虑线程安全的问题。。。
对于servlet来说,它的共享资源 就是 “实例变量”。。。
解决方法大致有以下几种。。。。
1。servlet中避免使用 “实例变量”,需要的地方全部用“局部变量”。。。。
2。通过同步机制 对实例变量操作进行互斥操作。。。
synchronized(this){ ....}
Lock lock = new ReentrantLock(); lock.lock();....... lock.unlock();
3。强制没个请求实例化一个servlet。
建造一个 实现SingleThreadModel接口的servlet。。。