不要試圖將 Servlet 硬塞進 Struts2。Struts2 的 Action 是多例(每請求一個實例),而 Servlet 是單例(容器啟動時初始化一次),生命週期完全不同。
@PostConstruct 或 init-method 中,Spring 容器啟動時自動執行一次。contextInitialized,在 Web 應用啟動時執行全域初始化(如載入配置、建立連線池)。ServletContext → context-param → listener → filter → servlet
若確實需要 Servlet,直接在 web.xml 宣告並設定 load-on-startup 即可,Struts2 透過 Filter 攔截請求,兩者共存無衝突。