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

Struts 實戰操作手冊:從安裝到 MVC 架構解析

     編輯:Java 相關知識

前言

Struts 於 2000 年 3 月推出,基於 Java Servlet/JSP 技術,是開源的 MVC Web 應用框架。本手冊記錄安裝配置、核心組件運作流程與實戰分析,供開發者快速上手。

一、系統環境與版本

  • 作業系統:Windows XP SP1
  • Web 伺服器:Tomcat 5.0.14
  • Struts 版本:jakarta-struts-20031118 (1.1 系列)

二、安裝與範例驗證

  1. 解壓至 E:\mylib\jakarta-struts,包含 lib 與 webapps 目錄。
  2. 將 struts-example.war 複製至 Tomcat webapps,啟動 Tomcat 自動解壓。
  3. 瀏覽器訪問 https://localhost:8080/struts-example,若出現歡迎頁面即安裝成功。

三、核心架構解析

1. MVC 在 Struts 中的對應

  • Model:業務邏輯元件(JavaBean、ActionForm、Service 層)。
  • View:JSP 頁面,含 Struts 標籤庫。
  • Controller:ActionServlet(核心控制器)+ 各具體 Action 類別。

2. 請求處理流程

  1. 所有 *.do 請求由 web.xml 映射至 ActionServlet。
  2. ActionServlet 讀取 struts-config.xml,依 path 找到對應 Action 類別。
  3. 自動將表單資料封裝至 ActionForm,傳入 Action.execute()(或舊版 perform())。
  4. Action 執行業務邏輯,回傳 ActionForward 指定轉向頁面。
  5. ActionServlet 轉向 JSP 呈現結果。

3. 關鍵配置檔案分析

web.xml 片段

<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

struts-config.xml 關鍵配置

<form-bean name="logonForm" type="org.apache.struts.validator.DynaValidatorForm"/>
<action path="/logon"
        type="org.apache.struts.webapp.example.LogonAction"
        name="logonForm"
        scope="request"
        input="/logon.jsp">
  <forward name="success" path="/mainMenu.jsp"/>
</action>
<global-forwards>
  <forward name="success" path="/mainMenu.jsp"/>
</global-forwards>

4. Action 實作範例 (LogonAction)

public class LogonAction extends Action {
    public ActionForward perform(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) {
        LogonForm logonForm = (LogonForm) form;
        String username = logonForm.getUsername();
        String password = logonForm.getPassword();

        ActionErrors errors = new ActionErrors();
        // 驗證邏輯...
        if (!errors.empty()) {
            saveErrors(request, errors);
            return new ActionForward(mapping.getInput());
        }

        HttpSession session = request.getSession();
        session.setAttribute(Constants.USER_KEY, user);
        // 清除過期 Form Bean...
        return mapping.findForward("success");
    }
}

四、使用 struts-blank.war 快速建立專案

  1. 將 struts-blank.war 部署至 Tomcat 解壓,或手動解壓。
  2. 刪除 META-INF(非 EAR 部署不需)。
  3. JSP 放置 pages 目錄,Java 原始碼放 src,使用 Ant 編譯至 WEB-INF/classes。
  4. 修改 struts-config.xml、web.xml 即可開發。

五、進階學習資源

部署 struts-documentation.war 至 Tomcat 即可離線閱讀完整官方文件。

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