servlet的生存週期是由web容器負責的。。。web
大體分爲 實例化,初始化(init),處理請求(service),銷燬(destroy)四步。安全
這裏須要注意的是 一旦servlet被實例化後,一個實例能夠處理多個請求(單例)。。。此時就不得不考慮線程安全的問題。。。this
對於servlet來講,它的共享資源 就是 「實例變量」。。。spa
解決方法大體有如下幾種。。。。線程
1。servlet中避免使用 「實例變量」,須要的地方所有用「局部變量」。。。。code
2。經過同步機制 對實例變量操做進行互斥操做。。。接口
synchronized(this){ ....}資源
Lock lock = new ReentrantLock(); lock.lock();....... lock.unlock();
同步
3。強制沒個請求實例化一個servlet。 servlet
建造一個 實現SingleThreadModel接口的servlet。。。