首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 框架全景入門:起源、安裝、核心組件與優缺點

     編輯:Java 相關知識

一、Struts 起源與演進

  • 早期 JSP Model 1:JSP 直收請求,JavaBean 處理邏輯,View/Controller 混雜難維護。
  • Model 2 引入 Servlet 作為前端 Controller,集中處理登入、權限、國際化,轉發 JSP 渲染,符合 MVC。
  • 2000 年 Craig McClanahan 貢獻代碼給 Apache Jakarta,成為 Struts 1.0(2001.06 發布)。
  • Craig 兼任 Tomcat 4 架構師、JSF (JSR-127) 專家組長,Struts 成為 J2EE MVC 事實標準。

二、安裝部署

前置依賴

  • JDK 1.2+
  • Servlet 容器:Tomcat 3.1+ (推薦 4.0+)
  • Ant 1.1+ (源碼構建需)
  • Servlet API (servlet.jar)
  • XML Parser: Xerces (JAXP 兼容)
  • XSLT Processor: Xalan

二進制包部署

  1. 解壓發布包。
  2. struts.jar → WEB-INF/lib/
  3. struts.tld → WEB-INF/
  4. struts-config.xml → WEB-INF/
  5. web.xml 配置 ActionServlet、標籤庫、映射 *.do。
  6. JSP 頁面引入:<%@ taglib uri="/WEB-INF/struts.tld" prefix="struts" %>

三、核心組件包結構 (Struts 1.1)

包職責
org.apache.struts.action核心控制器:ActionServlet、Action、ActionForm、ActionMapping、ActionForward、DynaActionForm
org.apache.struts.actions特定適配器:DispatchAction、LookupDispatchAction 等
org.apache.struts.config配置文件映射:ActionConfig、FormBeanConfig 等
org.apache.struts.util工具類:連接池、MessageResources、RequestUtils 等
org.apache.struts.taglib標籤庫:Bean、HTML、Logic、Nested、Template
org.apache.struts.validator驗證框架:動態表單校驗

Struts 組件包關係圖

四、核心類與 MVC 對應

Struts 類MVC 角色
ActionServletController:接收請求、協調流程
ActionController 部分:業務邏輯入口、返回轉發
ActionFormModel 狀態數據:封裝表單輸入
ActionMappingController 配置:請求到 Action 映射
ActionForwardView 選擇:邏輯名到物理頁面

五、配置文件

  • struts-config.xml:控制器配置(映射、轉發、數據源、插件)。
  • ApplicationResources.properties:國際化資源包。

六、標籤庫描述符

  • struts-html.tld:HTML 表單標籤(<html:form>、<html:text> 等)。
  • struts-bean.tld:Bean 操作標籤(<bean:write>、<bean:message>)。
  • struts-logic.tld:邏輯控制標籤(<logic:iterate>、<logic:present>)。

七、錯誤處理

  • ActionErrors:錯誤集合。
  • ActionError:單條錯誤,持有消息鍵映射資源文件。
  • Action 中 saveErrors(request, errors),JSP 用 <html:errors/> 顯示。

八、優缺點評析

優點缺點
開源、社區成熟、文檔豐富學習曲線陡峭,Taglib 改變編寫習慣
Taglib 極大提升開發效率Controller 拆分為三類增加複雜度
頁面導航集中配置,維護清晰早期版本 Bug 多,升級遷移成本高
與 JSTL、Hibernate 等無縫整合Action 單例模式易寫出線程不安全代碼

九、總結

Struts 是基於 Web 的 MVC 經典實現,需 Servlet 2.2/JSP 1.1 容器。掌握 Struts 是 J2EE 開發者必修課,雖然現代框架(Spring MVC、Struts2)已取代,但其設計思想(前端控制器、命令模式、聲明式導航)仍具啟發價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved