本系列第二部分,將從零開始建立一個極簡的 Spring MVC 應用程式——個人電話簿,並部署到 Apache Geronimo 1.1。您將體驗 Geronimo 安裝之簡單、Web 管理主控台部署之直觀,以及 Spring DispatcherServlet 如何串聯 Controller、View 與 Model。
geronimo-1.1-tomcat.zip 並解壓至 <GERONIMO_HOME>JAVA_HOME 已設定且 <JAVA_HOME>/bin 在 PATH 中java -jar server.jar 或 <GERONIMO_HOME>/bin/startup.bat
瀏覽器開啟 https://localhost:8080/console,預設帳號 system/manager 登入。
SpringFramework-1.2.8-with-dependencies.zip<SPRING_HOME>,核心 JAR 位於 <SPRING_HOME>/dist/spring.jarworkspace/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 (建構產出)
包含標題、資料表(核取方塊、姓名、電話、Email)、三個功能按鈕(新增/修改/刪除——暫無功能)、引入 footer.jsp。
簡單免責聲明,獨立檔案利於維護。
<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。
<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。
public class PhonebookController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
return new ModelAndView("/WEB-INF/jsp/home.jsp");
}
}
ANT_HOME、JAVA_HOME 環境變數<GERONIMO_HOME>/workspace/phonebook,執行 ant distdist/phonebook.war
瀏覽 https://localhost:8080/phonebook/home.do 應看到電話簿首頁。
/home.do → Geronimo (Tomcat 容器)web.xml,發現 DispatcherServlet 對應 *.doDispatcherServlet,Spring 容器接管phonebook-servlet.xml 解析 URL 映射,找到 PhonebookControllerModelAndView("/WEB-INF/jsp/home.jsp")
第三部分將整合 Spring JDBC、DAO 與 iBATIS ORM,從 Apache Derby 動態讀取資料,展示依賴注入切換資料來源的威力。