2011-04-07 47 views

回答

3

,每一個servlet需要通過這種方式來工作,但某些應用程序服務器是通過對ActionServlet的創建多個對象時比「N」請求在時間快到了,違反規範的J2EE規範要求,以看到的ActionServlet只有一個對象在任何時候,它都被製成SingleTon Class。
不僅是Actionservlet,還包括您所有的Action classes are singleton

+0

它實際上是否違反規範?還是應用服務器只是做了一些他們不需要做**的事情? (從而允許程序員無意中違反了規範。) – 2011-04-07 06:57:40

+0

@Stephen - servlet 2.4規範說 - 「對於不在分佈式環境中託管的servlet(默認),servlet容器必須每個servlet聲明只使用一個實例。但是,對於實現SingleThreadModel接口的servlet ,servlet容器可能會實例化多個實例以處理沉重的請求負載,並將請求 序列化到特定實例。 – Premraj 2011-04-07 08:09:42

0

由於我知道動作Servlet類不是單例類。爲什麼因爲一個類遵循一些規則,如創建私有構造函數,私有靜態變量和重載克隆方法,如果一個類創建上述規則,那麼該類是Singleton類。但如果你看到actionServlet類的源文件沒有私有構造函數並且沒有靜態變量,所以沒有重載克隆方法..所以ActionServlet類不是單類CLASS ... 注意:如果一個類是Singleton類,那麼只有我們只能創建一個對象。但是隻創建一個對象類不是單例類.....即使ActionServlet類只通過web容器創建了一個對象,但該類不是一個Singleton類。這就是Web容器.web容器的問題。

---讓如果我的回答正確與否不相識..

--Thanks

相關問題