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

Apache Geronimo 與 Spring 框架實戰(二):建置首個 Spring 應用並部署至 Geronimo

     編輯:Java 相關知識

本系列第二部分,將從零開始建立一個極簡的 Spring MVC 應用程式——個人電話簿,並部署到 Apache Geronimo 1.1。您將體驗 Geronimo 安裝之簡單、Web 管理主控台部署之直觀,以及 Spring DispatcherServlet 如何串聯 Controller、View 與 Model。

教學目標

  • 安裝與啟動 Apache Geronimo 1.1 (Tomcat 版)
  • 建立 Spring MVC 基礎專案結構
  • 撰寫 Controller、JSP View 與組態檔
  • 使用 Ant 建構 WAR 檔並透過 Geronimo Console 部署
  • 驗證請求流程:Tomcat → DispatcherServlet → Controller → View

系統需求

  • Apache Geronimo 1.1 (J2EE 認證應用伺服器)
  • Spring Framework 1.2.8
  • Apache Ant、Sun Java 1.4.2+
  • Windows 2000/XP/Server 2003 或 Linux
  • 512MB RAM 建議、200MB 磁碟空間

Geronimo 安裝與啟動

  1. 從 apache.org 下載 geronimo-1.1-tomcat.zip 並解壓至 <GERONIMO_HOME>
  2. 確認 JAVA_HOME 已設定且 <JAVA_HOME>/bin 在 PATH 中
  3. 命令列執行:java -jar server.jar 或 <GERONIMO_HOME>/bin/startup.bat
  4. 啟動成功會顯示監聽埠:8080 (HTTP)、8443 (HTTPS)、1099 (RMI) 等
Geronimo Web Console 登入頁
圖 1:Geronimo Web 管理主控台

瀏覽器開啟 https://localhost:8080/console,預設帳號 system/manager 登入。

Spring Framework 安裝

  1. 下載 SpringFramework-1.2.8-with-dependencies.zip
  2. 解壓至 <SPRING_HOME>,核心 JAR 位於 <SPRING_HOME>/dist/spring.jar

專案目錄結構

workspace/phonebook/
├── src/phonebook/controller/PhonebookController.java
├── web/
│   ├── WEB-INF/
│   │   ├── jsp/home.jsp, footer.jsp
│   │   ├── web.xml
│   │   └── phonebook-servlet.xml
│   └── META-INF/
├── lib/servlet-api.jar, spring.jar
├── build.xml (Ant 建構檔)
└── dist/phonebook.war (建構產出)
專案目錄結構
圖 2:應用程式原始碼結構

核心元件實作

1. View:home.jsp(靜態電話簿表格)

包含標題、資料表(核取方塊、姓名、電話、Email)、三個功能按鈕(新增/修改/刪除——暫無功能)、引入 footer.jsp。

2. View:footer.jsp

簡單免責聲明,獨立檔案利於維護。

3. web.xml:部署描述符

<web-app version="2.4" ...>
    <display-name>Phone Book</display-name>
    <servlet>
        <servlet-name>phonebook</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>phonebook</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <session-config><session-timeout>30</session-timeout></session-config>
</web-app>

所有 *.do 請求導向 Spring DispatcherServlet。

4. phonebook-servlet.xml:Spring 應用上下文

<beans>
    <bean name="PhonebookController" class="phonebook.controller.PhonebookController"/>
    
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props><prop key="/home.do">PhonebookController</prop></props>
        </property>
    </bean>
</beans>

將 /home.do 映射至 Controller Bean。

5. Controller:PhonebookController.java

public class PhonebookController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        return new ModelAndView("/WEB-INF/jsp/home.jsp");
    }
}

建構與部署

  1. 確認 ANT_HOME、JAVA_HOME 環境變數
  2. 命令列進入 <GERONIMO_HOME>/workspace/phonebook,執行 ant dist
  3. 產出 dist/phonebook.war
  4. Geronimo Console → Deploy New → 選擇 WAR → Install
  5. 成功提示 "Application deployed successfully"
Deploy New 介面
圖 3:Geronimo 部署介面

驗證與請求流程分析

瀏覽 https://localhost:8080/phonebook/home.do 應看到電話簿首頁。

電話簿應用運行畫面
圖 4:運行在 Geronimo 上的電話簿應用

完整請求流程

  1. 瀏覽器請求 /home.do → Geronimo (Tomcat 容器)
  2. Tomcat 讀取 web.xml,發現 DispatcherServlet 對應 *.do
  3. 請求轉發給 DispatcherServlet,Spring 容器接管
  4. Spring 依 phonebook-servlet.xml 解析 URL 映射,找到 PhonebookController
  5. Controller 返回 ModelAndView("/WEB-INF/jsp/home.jsp")
  6. Tomcat 編譯 JSP 並回傳 HTML 給瀏覽器
請求流程設計圖
圖 5:Geronimo 上應用程式請求流設計

Spring MVC 優勢回顧

  • 技術中立:不綁定 JSP,可用 Velocity、FreeMarker、PDF 等視圖
  • 職責清晰:Controller、Model、View 分離,組態檔串聯
  • 薄 Web 層:業務邏輯與視圖完全解耦,容器管理物件生命週期
  • 易測試:依賴注入使元件低耦合,利於單元測試

下一步預告

第三部分將整合 Spring JDBC、DAO 與 iBATIS ORM,從 Apache Derby 動態讀取資料,展示依賴注入切換資料來源的威力。

下載資源

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