Posted on 2008-07-17 16:54
xan 閱讀(140)
評論(0) 編輯 收藏 所屬分類:
Java
Struts 框架的核心組件是 ActionServlet。象所有的servlets, 它生存在容器中, 比如Tomcat, Resin, 或者 WebLogic 等。當容器啟動時,讀入部署描述符 (web.xml),告訴容器要裝入哪些個servlet。
一個標準的servlet 設定是 servlet mapping。 容器使用這個設定來決定哪個請求將被送到哪個servlet
當一個請求隨著符合Servlet 上下文的路徑組件提交時,容器將其轉發(fā)給ActionServlet。不匹配的請求則不轉發(fā)到ActionServlet。比如,匹配*.jsp 的請求將直接轉發(fā)給容器的 JSP 服務,比如Jasper(如果你使用Tomcat 或者WebSphere 的話)。在應用中可以有其他的servlet來處理其他格式的請求路徑。不匹配所有servlet mapping 的請求將直接送給容器默認的
web server。
Action 是一個控制器類,不應該用來處理業(yè)務的核心邏輯。
Action 完成后,它返回一個ActionForward。如果 ActionForward 為null, ActionServlet假定響應產(chǎn)生了,但不做任何事情。否則, ActionServlet 讀入 ActionForward ,重定向或者轉發(fā)請求到相應的資源。
Struts不僅是線程安全(thread-safe)而且是線程依賴(thread-dependent)的.
Struts 使用輕量的Action 對象,而不是各個單獨的servlet,來對請求處理響應。 Struts 實例化每個Action 類一次,并允許其他請求通過原有的對象線程化。這種核心策略節(jié)省了資源,并提供最大的吞吐性。一個正確設計的應用將通過使用一個單獨的Action 來路由各種相關操作來發(fā)揮這種特征。
編寫Action時要注意不要在不同方法之間共享屬性值,因為action是多線程的,每個應用的每個Action類只有一個實例.