日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring 系列,第 3 部分: 进入 Spring MVC

發(fā)布時間:2025/3/21 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring 系列,第 3 部分: 进入 Spring MVC 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在?Spring 系列?的第 3 部分中,我介紹 Spring MVC 框架。就像在以前的文章中一樣,我用銀行示例介紹如何建模和構(gòu)建簡單的應(yīng)用程序。示例應(yīng)用程序包含了已經(jīng)學(xué)過的一些技術(shù)(例如依賴注入),但是主要演示 Spring MVC 的特性。

在開始之前,請?下載這篇文章的源代碼。請參閱?參考資料?訪問 Spring 框架和 Tomcat 5.0,運(yùn)行示例需要它們。

Spring MVC 框架

Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),可以選擇是使用內(nèi)置的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術(shù),例如 JavaServer Pages(JSP)技術(shù)、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的視圖,所以不會強(qiáng)迫您只使用 JSP 技術(shù)。Spring MVC 分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?#xff0c;這種分離讓它們更容易進(jìn)行定制。

Spring 的 Web MVC 框架是圍繞?DispatcherServlet?設(shè)計的,它把請求分派給處理程序,同時帶有可配置的處理程序映射、視圖解析、本地語言、主題解析以及上載文件支持。默認(rèn)的處理程序是非常簡單的?Controller?接口,只有一個方法?ModelAndView handleRequest(request, response)。Spring 提供了一個控制器層次結(jié)構(gòu),可以派生子類。如果應(yīng)用程序需要處理用戶輸入表單,那么可以繼承?AbstractFormController。如果需要把多頁輸入處理到一個表單,那么可以繼承?AbstractWizardFormController。

示例應(yīng)用程序有助于直觀地學(xué)習(xí)這些特性。銀行應(yīng)用程序允許用戶檢索他們的帳戶信息。在構(gòu)建銀行應(yīng)用程序的過程中,可以學(xué)到如何配置 Spring MVC 框架和實(shí)現(xiàn)框架的視圖層,視圖層包括 JSTL 標(biāo)記(用于顯示輸出的數(shù)據(jù))和JavaServer Pages 技術(shù)。

配置 Spring MVC

要開始構(gòu)建示例應(yīng)用程序,請配置 Spring MVC 的?DispatcherServlet。請在?web.xml?文件中注冊所有配置。清單 1 顯示了如何配置sampleBankingServlet。

清單 1. 配置 Spring MVC DispatcherServlet
<servlet><servlet-name>sampleBankingServlet</servlet-name> <servlet-class>org.springframework.we.servlet.DispatcherServlet<servlet-class><load-on-startup>1<load-on-startup> <servlet>

DispatcherServlet?從一個 XML 文件裝入 Spring 應(yīng)用程序上下文,XML 文件的名稱是 servlet 的名稱后面加上?-servlet?。在這個示例中,DispatcherServlet?會從?sampleBankingServlet-servlet.xml?文件裝入應(yīng)用程序上下文。

配置應(yīng)用程序的 URL

下一步是配置想讓?sampleBankingServlet?處理的 URL。同樣,還是要在?web.xml?中注冊所有這些信息。

清單 2. 配置想要處理的 URL
<servlet-mapping> <servlet-name> sampleBankingServlet<servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping>

裝入配置文件

下面,裝入配置文件。為了做到這點(diǎn),請為 Servlet 2.3 規(guī)范注冊?ContextLoaderListener?或為 Servlet 2.2 及以下的容器注冊ContextLoaderServlet。為了保障后向兼容性,請用?ContextLoaderServlet。在啟動 Web 應(yīng)用程序時,ContextLoaderServlet會裝入 Spring 配置文件。清單 3 注冊了?ContextLoaderServlet。

清單 3. 注冊 ContextLoaderServlet
<servlet><servlet-name>context>servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>

contextConfigLocation?參數(shù)定義了要裝入的 Spring 配置文件,如下面的 servlet 上下文所示。

<context-param> <param-value>contextConfigLocation</param-value> <param-value>/WEB-INF/sampleBanking-services.xml</param-value> </context-param>

sampleBanking-services.xml?文件代表示例銀行應(yīng)用程序服務(wù)的配置和 bean 配置。如果想裝入多個配置文件,可以在?<param-value>?標(biāo)記中用逗號作分隔符。

Spring MVC 示例

示例銀行應(yīng)用程序允許用戶根據(jù)惟一的 ID 和口令查看帳戶信息。雖然 Spring MVC 提供了其他選項,但是我將采用 JSP 技術(shù)作為視圖頁面。這個簡單的應(yīng)用程序包含一個視圖頁用于用戶輸入(ID 和口令),另一頁顯示用戶的帳戶信息。

我從?LoginBankController?開始,它擴(kuò)展了 Spring MVC 的?SimpleFormController。SimpleFormContoller?提供了顯示從?HTTP GET?請求接收到的表單的功能,以及處理從?HTTP POST?接收到的相同表單數(shù)據(jù)的功能。LoginBankController?用AuthenticationService?和?AccountServices?服務(wù)進(jìn)行驗證,并執(zhí)行帳戶活動。“?配置視圖屬性?”一節(jié)中的?清單 5?描述了如何把AuthenticationService?和?AccountServices?連接到?LoginBankController。?清單 4?顯示了?LoginBankController?的代碼。

配置視圖屬性

下面,我必須注冊在接收到?HTTP GET?請求時顯示的頁面。我在 Spring 配置中用?formView?屬性注冊這個頁面,如清單 5 所示。sucessView?屬性代表表單數(shù)據(jù)提交而且?doSubmitAction()?方法中的邏輯成功執(zhí)行之后顯示的頁面。formView?和?sucessView?屬性都代表被定義的視圖的邏輯名稱,邏輯名稱映射到實(shí)際的視圖頁面。

清單 5. 注冊 LoginBankController
<bean id="loginBankController"class="springexample.controller.LoginBankController"><property name="sessionForm"><value>true</value></property><property name="commandName"><value>loginCommand</value></property><property name="commandClass"><value>springexample.commands.LoginCommand</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?標(biāo)記決定將在視圖頁面中活動的 bean。例如,可以通過?login.jsp?頁面訪問?loginCommand?bean,這個頁面是應(yīng)用程序的登錄頁面。一旦用戶提交了登錄頁面,應(yīng)用程序就可以從?LoginBankController?的?onSubmit()?方法中的命令對象檢索出表單數(shù)據(jù)。

視圖解析器

Spring MVC 的?視圖解析器?把每個邏輯名稱解析成實(shí)際的資源,即包含帳戶信息的 JSP 文件。我用的是 Spring 的InternalResourceViewResolver,如?清單 6?所示。

因為我在 JSP 頁面中使用了 JSTL 標(biāo)記,所以用戶的登錄名稱解析成資源?/jsp/login.jsp,而?viewClass?成為?JstlView。

驗證和帳戶服務(wù)

就像前面提到的,LoginBankController?內(nèi)部連接了 Spring 的?AccountServices?和AuthenticationService。AuthenticationService?類處理銀行應(yīng)用程序的驗證。AccountServices?類處理典型的銀行服務(wù),例如查找交易和電匯。清單 7 顯示了銀行應(yīng)用程序的驗證和帳戶服務(wù)的配置。

清單 7. 配置驗證和帳戶服務(wù)
<beans><bean id="accountServices" class="springexample.services.AccountServices"></bean><bean id="authenticationService" class="springexample.services.AuthenticationService"></bean> </beans>

以上服務(wù)在?sampleBanking-services.xml?中注冊,然后裝入?web.xml?文件中,就像?前面討論的那樣。控制器和服務(wù)配置好后,這個簡單的應(yīng)用程序就完成了。現(xiàn)在我們來看看部署和測試它時會發(fā)生什么!

部署應(yīng)用程序

我把示例應(yīng)用程序部署在 Tomcat servlet 容器中。Tomcat 是 Java Servlet 和 Java ServerPagest 技術(shù)的官方參考實(shí)現(xiàn)中使用的 servlet 容器。如果以前沒這么做過,請?下載 jakarta-tomcat-5.0.28.exe?并運(yùn)行它把 Tomcat 安裝到自己喜歡的任何位置,例如?c:\tomcat5.0。

接下來,下載示例代碼?并釋放到驅(qū)動器(例如?c:\?)上。創(chuàng)建了 Spring 項目的文件夾之后,打開它并把?spring-banking?子文件夾拷貝到c:\tomvat5.0\webapps。spring-banking 文件夾是一個 Web 檔案,里面包含 Spring MVC 示例應(yīng)用程序。lib 文件夾包含應(yīng)用程序需要的 Spring 框架、與Spring 相關(guān)的 MVC 庫以及 JSTL 標(biāo)記庫和 jar 文件。

要啟動 Tomcat 服務(wù)器,請使用以下命令:

cd bin C:\Tomcat 5.0\bin> catalina.bat start

Tomcat 應(yīng)當(dāng)啟動并部署 Spring MVC 示例應(yīng)用程序。

測試應(yīng)用程序

要測試應(yīng)用程序,請打開 Web 瀏覽器,指向 http://localhost:tomcatport/springbanking 并用 Tomcat 服務(wù)器實(shí)際運(yùn)行的端口替換?tomcatport。應(yīng)當(dāng)看到圖 1 所示的登錄屏幕。輸入用戶 ID “admin”和口令“password”,并按下登錄按鈕。其他用戶 ID 或口令會造成來自驗證服務(wù)的錯誤。

圖 1. Spring MVC 示例登錄屏幕

登錄成功之后,會看到圖 2 所示的帳戶細(xì)節(jié)頁面。

圖 2. Spring MVC 示例帳戶細(xì)節(jié)頁面

結(jié)束語

在三部分的?Spring 系列?的第三篇文章中,我介紹了 Spring MVC 框架的特性。我演示了如何配置和開發(fā) Spring MVC 應(yīng)用程序、如何配置 Spring MVC 控制器和向其中插入依賴項、如何用 JavaServer Pages 技術(shù)開發(fā)應(yīng)用程序視圖,以及如何把自己的頁面與 Spring MVC 的視圖層集成。總結(jié)這篇文章時,我演示了如何在 Tomcat servlet 容器中部署應(yīng)用程序以及如何在瀏覽器中測試它。

請繼續(xù)關(guān)注?Spring 系列?的下一篇文章。在下一篇文章中,我將介紹如何把基于 JMS 的應(yīng)用程序與 Spring 框架集成。同時,請參閱?參考資料?學(xué)習(xí)更多有關(guān) Spring 框架和 Spring MVC 的內(nèi)容。

下載

描述 名字 大小 Example source code, spring files, jar files
wa-spring3-SpringProjectPart3.zip 1966 KB

參考資料

學(xué)習(xí)

  • 您可以參閱本文在 developerWorks 全球站點(diǎn)上的?英文原文。
  • “Spring 系列,第 1 部分: Spring 框架簡介”(developerWorks,2005 年 6 月)和“Spring 系列,第 2 部分: 當(dāng) Hibernate 遇上 Spring” (developerWorks,2005 年 8 月):介紹了如何用 Spring 技術(shù)構(gòu)建輕量級的、健壯的 J2EE 應(yīng)用程序以及如何把 Hibernate 事務(wù)與 Spring 的面向方面編程(AOP)集成形成可靠的持久性框架。
  • “AOP@Work: AOP 工具比較,第 1 部分”(Mik Kersten,developerWorks,2005 年 2 月):比較了 Spring AOP 和 AOP 框架。
  • “輕量級開發(fā)的成功秘訣,第 3 部分: Spring 露出水面”(Bruce Tate,developerWorks,2005 年 6 月):演示了 Spring 作為輕量級容器的意義。
  • “Ruby on Rails 和 J2EE:兩者能否共存?”(Aaron Rustad, developerWorks,2005 年 7 月):比較了不太為人所知的 J2EE 框架替代品,像 EJB 和 Spring。
  • Java 技術(shù)專區(qū):有數(shù)百篇文章,覆蓋基于 Java Web 的解決方案。

獲得產(chǎn)品和技術(shù)

  • Spring 主頁:下載 Spring 框架。
  • Ant 主頁:下載 Apache Ant。
from:?http://www.ibm.com/developerworks/cn/java/wa-spring3/

總結(jié)

以上是生活随笔為你收集整理的Spring 系列,第 3 部分: 进入 Spring MVC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。