熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

用 Spring MVC 輕松進行應用程序開發(圖)

2013-11-23 20:35:47  來源: Java開源技術 

  在 Spring 系列 的第 部分中我介紹 Spring MVC 框架就像在以前的文章中一樣我用銀行示例介紹如何建模和構建簡單的應用程序示例應用程序包含了已經學過的一些技術(例如依賴注入)但是主要演示 Spring MVC 的特性
  
  在開始之前請 下載這篇文章的源代碼請參閱 參考資料 訪問 Spring 框架和 Tomcat 運行示例需要它們
  
  Spring MVC 框架
  
  Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊使用 Spring 可插入的 MVC 架構可以選擇是使用內置的 Spring Web 框架還是 Struts 這樣的 Web 框架通過策略接口Spring 框架是高度可配置的而且包含多種視圖技術例如 JavaServer Pages(JSP)技術VelocityTilesiText 和 POISpring MVC 框架並不知道使用的視圖所以不會強迫您只使用 JSP 技術Spring MVC 分離了控制器模型對象分派器以及處理程序對象的角色這種分離讓它們更容易進行定制
  
  Spring 的 Web MVC 框架是圍繞 DispatcherServlet 設計的它把請求分派給處理程序同時帶有可配置的處理程序映射視圖解析本地語言主題解析以及上載文件支持默認的處理程序是非常簡單的 Controller 接口只有一個方法 ModelAndView handleRequest(request response)Spring 提供了一個控制器層次結構可以派生子類如果應用程序需要處理用戶輸入表單那麼可以繼承 AbstractFormController如果需要把多頁輸入處理到一個表單那麼可以繼承 AbstractWizardFormController
  
  示例應用程序有助於直觀地學習這些特性銀行應用程序允許用戶檢索他們的帳戶信息在構建銀行應用程序的過程中可以學到如何配置 Spring MVC 框架和實現框架的視圖層視圖層包括 JSTL 標記(用於顯示輸出的數據)和JavaServer Pages 技術
  
  配置 Spring MVC
  
  要開始構建示例應用程序請配置 Spring MVC 的 DispatcherServlet請在 webxml 文件中注冊所有配置清單 顯示了如何配置 sampleBankingServlet
  
  清單 配置 Spring MVC DispatcherServlet
  
  <servlet>
  <servletname>sampleBankingServlet</servletname>
  <servletclass>
  orgspringframeworkweservletDispatcherServlet
  <servletclass>
  <loadonstartup><loadonstartup>
  <servlet>
  
  DispatcherServlet 從一個 XML 文件裝入 Spring 應用程序上下文XML 文件的名稱是 servlet 的名稱後面加上 servlet 在這個示例中DispatcherServlet 會從 sampleBankingServletservletxml 文件裝入應用程序上下文
  
  配置應用程序的 URL
  
  下一步是配置想讓 sampleBankingServlet 處理的 URL同樣還是要在 webxml 中注冊所有這些信息
  
  清單 配置想要處理的 URL
  
  <servletmapping>
  <servletname> sampleBankingServlet<servletname>
  <urlpattern>*jsp</urlpattern>
  </servletmapping>
  
  裝入配置文件
  
  下面裝入配置文件為了做到這點請為 Servlet 規范注冊 ContextLoaderListener 或為 Servlet 及以下的容器注冊 ContextLoaderServlet為了保障後向兼容性請用 ContextLoaderServlet在啟動 Web 應用程序時ContextLoaderServlet 會裝入 Spring 配置文件清單 注冊了 ContextLoaderServlet
  
  清單 注冊 ContextLoaderServlet
  
  <servlet>
  <servletname>context>servletname>
  <servletclass>
  orgsprntextContextLoaderServlet
  </servletclass>
  <loadonstartup></loadonstartup>
  </servlet>
  
  contextConfigLocation 參數定義了要裝入的 Spring 配置文件如下面的 servlet 上下文所示
  
  <contextparam>
  <paramvalue>contextConfigLocation</paramvalue>
  <paramvalue>/WEBINF/sampleBankingservicesxml</paramvalue>
  </contextparam>
  
  sampleBankingservicesxml 文件代表示例銀行應用程序服務的配置和 bean 配置如果想裝入多個配置文件可以在 <paramvalue> 標記中用逗號作分隔符
  
  Spring MVC 示例
  
  示例銀行應用程序允許用戶根據惟一的 ID 和口令查看帳戶信息雖然 Spring MVC 提供了其他選項但是我將采用 JSP 技術作為視圖頁面這個簡單的應用程序包含一個視圖頁用於用戶輸入(ID 和口令)另一頁顯示用戶的帳戶信息
  
  我從 LoginBankController 開始它擴展了 Spring MVC 的 SimpleFormControllerSimpleFormContoller 提供了顯示從 HTTP GET 請求接收到的表單的功能以及處理從 HTTP POST 接收到的相同表單數據的功能LoginBankController 用 AuthenticationService 和 AccountServices 服務進行驗證並執行帳戶活動 配置視圖屬性 一節中的 清單 描述了如何把 AuthenticationService 和 AccountServices 連接到 LoginBankController 清單 顯示了 LoginBankController 的代碼
  
  配置視圖屬性
  
  下面我必須注冊在接收到 HTTP GET 請求時顯示的頁面我在 Spring 配置中用 formView 屬性注冊這個頁面如清單 所示sucessView 屬性代表表單數據提交而且 doSubmitAction() 方法中的邏輯成功執行之後顯示的頁面formView 和 sucessView 屬性都代表被定義的視圖的邏輯名稱邏輯名稱映射到實際的視圖頁面
  
  清單 注冊 LoginBankController
  
  <bean id=loginBankController
  class=ntrollerLoginBankController>
  <property name=sessionForm><value>true</value></property>
  <property name=commandName><value>loginCommand</value></property>
  <property name=commandClass>
  <value>mandsLoginCommand</value>
  </property>
  
  <property name=authenticationService>
  <ref bean=authenticationService />
  </property>
  <property name=accountServices>
  <ref bean=accountServices />
  </property>
  <property name=formView>
  <value>login</value>
  </property>
  <property name=successView>
  <value>accountdetail</value>
  </property>
  
  </bean>
  
  commandClass 和 commandName 標記決定將在視圖頁面中活動的 bean例如可以通過 loginjsp 頁面訪問 loginCommand bean這個頁面是應用程序的登錄頁面一旦用戶提交了登錄頁面應用程序就可以從 LoginBankController 的 onSubmit() 方法中的命令對象檢索出表單數據
  
  視圖解析器
  
  Spring MVC 的 視圖解析器 把每個邏輯名稱解析成實際的資源即包含帳戶信息的 JSP 文件我用的是 Spring 的 InternalResourceViewResolver如 清單 所示
  
  因為我在 JSP 頁面中使用了 JSTL 標記所以用戶的登錄名稱解析成資源 /jsp/loginjsp而 viewClass 成為 JstlView
  
  驗證和帳戶服務
  
  就像前面提到的LoginBankController 內部連接了 Spring 的 AccountServices 和 AuthenticationServiceAuthenticationService 類處理銀行應用程序的驗證AccountServices 類處理典型的銀行服務例如查找交易和電匯清單 顯示了銀行應用程序的驗證和帳戶服務的配置
  
  清單 配置驗證和帳戶服務
  
  <beans>
  
  <bean id=accountServices
  class=springexampleservicesAccountServices>
  
  </bean>
  
  <bean id=authenticationService
  class=springexampleservicesAuthenticationService>
  
  </bean>
  
  </beans>
  
  以上服務在 sampleBankingservicesxml 中注冊然後裝入 webxml 文件中就像 前面討論的那樣控制器和服務配置好後這個簡單的應用程序就完成了現在我們來看看部署和測試它時會發生什麼!
  
  部署應用程序
  
  我把示例應用程序部署在 Tomcat servlet 容器中Tomcat 是 Java Servlet 和 Java ServerPagest 技術的官方參考實現中使用的 servlet 容器如果以前沒這麼做過請 下載 jakartatomcatexe 並運行它把 Tomcat 安裝到自己喜歡的任何位置例如 c:\tomcat
  
  接下來下載示例代碼 並釋放到驅動器(例如 c:\ )上創建了 Spring 項目的文件夾之後打開它並把 springbanking 子文件夾拷貝到 c:\tomvat\webappsspringbanking 文件夾是一個 Web 檔案裡面包含 Spring MVC 示例應用程序lib 文件夾包含應用程序需要的 Spring 框架與Spring 相關的 MVC 庫以及 JSTL 標記庫和 jar 文件
  
  要啟動 Tomcat 服務器請使用以下命令
  
  cd bin C:\Tomcat \bin> catalinabat start
  Tomcat 應當啟動並部署 Spring MVC 示例應用程序
  
  <
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28727.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.