1. 程式人生 > >servlet為什麼不是執行緒安全的?

servlet為什麼不是執行緒安全的?

因為servlet是多執行緒的,而servlet的生命週期又web容器進行管理(Tomcat)。當客服端對servlet第一次進行請求時候,伺服器(tomcat)會對根據web.xml檔案進行例項化這個serlvet(所以web.xml中不能出現任何錯誤)。當用戶再對該serlvet進行請求時候,不會再對該serlvet進行例項了。這裡都是共享一個servlet物件(為單例模式)。這樣會導致出現的狀況是,多個執行緒進行請求同一個serlvet時候,只要對serlvet的例項變數進行操作時候,這時候會導致了該例項變數時候,會出現資料不一致的狀況。這樣會導致一系列的安全問題。