麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

用 Spring MVC 輕松進(jìn)行應(yīng)用程序開(kāi)發(fā)(圖)

2019-11-18 13:00:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  在 SPRing 系列 的第 3 部分中,我介紹 Spring MVC 框架。就像在以前的文章中一樣,我用銀行示例介紹如何建模和構(gòu)建簡(jiǎn)單的應(yīng)用程序。示例應(yīng)用程序包含了已經(jīng)學(xué)過(guò)的一些技術(shù)(例如依靠注入),但是主要演示 Spring MVC 的特性。
  
  在開(kāi)始之前,請(qǐng) 下載這篇文章的源代碼。請(qǐng)參閱 參考資料 訪問(wèn) 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 框架。通過(guò)策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術(shù),例如 javaServer Pages(jsp)技術(shù)、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的視圖,所以不會(huì)強(qiáng)迫您只使用 JSP 技術(shù)。Spring MVC 分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧@種分離讓它們更輕易進(jìn)行定制。
  
  Spring 的 Web MVC 框架是圍繞 DispatcherServlet 設(shè)計(jì)的,它把請(qǐng)求分派給處理程序,同時(shí)帶有可配置的處理程序映射、視圖解析、本地語(yǔ)言、主題解析以及上載文件支持。默認(rèn)的處理程序是非常簡(jiǎn)單的 Controller 接口,只有一個(gè)方法 ModelAndView handleRequest(request, response)。Spring 提供了一個(gè)控制器層次結(jié)構(gòu),可以派生子類(lèi)。假如應(yīng)用程序需要處理用戶輸入表單,那么可以繼續(xù) AbstractFormController。假如需要把多頁(yè)輸入處理到一個(gè)表單,那么可以繼續(xù) AbstractWizardFormController。
  
  示例應(yīng)用程序有助于直觀地學(xué)習(xí)這些特性。銀行應(yīng)用程序答應(yīng)用戶檢索他們的帳戶信息。在構(gòu)建銀行應(yīng)用程序的過(guò)程中,可以學(xué)到如何配置 Spring MVC 框架和實(shí)現(xiàn)框架的視圖層,視圖層包括 JSTL 標(biāo)記(用于顯示輸出的數(shù)據(jù))和JavaServer Pages 技術(shù)。
  
  配置 Spring MVC
  
  要開(kāi)始構(gòu)建示例應(yīng)用程序,請(qǐng)配置 Spring MVC 的 DispatcherServlet。請(qǐng)?jiān)?web.xml 文件中注冊(cè)所有配置。清單 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 從一個(gè) XML 文件裝入 Spring 應(yīng)用程序上下文,XML 文件的名稱是 servlet 的名稱后面加上 -servlet 。在這個(gè)示例中,DispatcherServlet 會(huì)從 sampleBankingServlet-servlet.xml 文件裝入應(yīng)用程序上下文。
  
  配置應(yīng)用程序的 URL
  
  下一步是配置想讓 sampleBankingServlet 處理的 URL。同樣,還是要在 web.xml 中注冊(cè)所有這些信息。
  
  清單 2. 配置想要處理的 URL
  
  <servlet-mapping>
  <servlet-name> sampleBankingServlet<servlet-name>
  <url-pattern>*.jsp</url-pattern>
  </servlet-mapping>
  
  裝入配置文件
  
  下面,裝入配置文件。為了做到這點(diǎn),請(qǐng)為 Servlet 2.3 規(guī)范注冊(cè) ContextLoaderListener 或?yàn)?Servlet 2.2 及以下的容器注冊(cè) ContextLoaderServlet。為了保障后向兼容性,請(qǐng)用 ContextLoaderServlet。在啟動(dòng) Web 應(yīng)用程序時(shí),ContextLoaderServlet 會(huì)裝入 Spring 配置文件。清單 3 注冊(cè)了 ContextLoaderServlet。
  
  清單 3. 注冊(cè) 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 配置。假如想裝入多個(gè)配置文件,可以在 <param-value> 標(biāo)記中用逗號(hào)作分隔符。
  
  Spring MVC 示例
  
  示例銀行應(yīng)用程序答應(yīng)用戶根據(jù)惟一的 ID 和口令查看帳戶信息。雖然 Spring MVC 提供了其他選項(xiàng),但是我將采用 JSP 技術(shù)作為視圖頁(yè)面。這個(gè)簡(jiǎn)單的應(yīng)用程序包含一個(gè)視圖頁(yè)用于用戶輸入(ID 和口令),另一頁(yè)顯示用戶的帳戶信息。
  
  我從 LoginBankController 開(kāi)始,它擴(kuò)展了 Spring MVC 的 SimpleFormController。SimpleFormContoller 提供了顯示從 HTTP GET 請(qǐng)求接收到的表單的功能,以及處理從 HTTP POST 接收到的相同表單數(shù)據(jù)的功能。LoginBankController 用 AuthenticationService 和 AccountServices 服務(wù)進(jìn)行驗(yàn)證,并執(zhí)行帳戶活動(dòng)。“ 配置視圖屬性 ”一節(jié)中的 清單 5 描述了如何把 AuthenticationService 和 AccountServices 連接到 LoginBankController。 清單 4 顯示了 LoginBankController 的代碼。
  
  配置視圖屬性
  
  下面,我必須注冊(cè)在接收到 HTTP GET 請(qǐng)求時(shí)顯示的頁(yè)面。我在 Spring 配置中用 formView 屬性注冊(cè)這個(gè)頁(yè)面,如清單 5 所示。sUCessView 屬性代表表單數(shù)據(jù)提交而且 doSubmitAction() 方法中的邏輯成功執(zhí)行之后顯示的頁(yè)面。formView 和 sucessView 屬性都代表被定義的視圖的邏輯名稱,邏輯名稱映射到實(shí)際的視圖頁(yè)面。
  
  清單 5. 注冊(cè) 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)記決定將在視圖頁(yè)面中活動(dòng)的 bean。例如,可以通過(guò) login.jsp 頁(yè)面訪問(wèn) loginCommand bean,這個(gè)頁(yè)面是應(yīng)用程序的登錄頁(yè)面。一旦用戶提交了登錄頁(yè)面,應(yīng)用程序就可以從 LoginBankController 的 onSubmit() 方法中的命令對(duì)象檢索出表單數(shù)據(jù)。
  
  視圖解析器
  
  Spring MVC 的 視圖解析器 把每個(gè)邏輯名稱解析成實(shí)際的資源,即包含帳戶信息的 JSP 文件。我用的是 Spring 的 InternalResourceViewResolver,如 清單 6 所示。
  
  因?yàn)槲以?JSP 頁(yè)面中使用了 JSTL 標(biāo)記,所以用戶的登錄名稱解析成資源 /jsp/login.jsp,而 viewClass 成為 JstlView。
  
  驗(yàn)證和帳戶服務(wù)
  
  就像前面提到的,LoginBankController 內(nèi)部連接了 Spring 的 AccountServices 和 AuthenticationService。AuthenticationService 類(lèi)處理銀行應(yīng)用程序的驗(yàn)證。AccountServices 類(lèi)處理典型的銀行服務(wù),例如查找交易和電匯。清單 7 顯示了銀行應(yīng)用程序的驗(yàn)證和帳戶服務(wù)的配置。
  
  清單 7. 配置驗(yàn)證和帳戶服務(wù)
  
  <beans>
  
  <bean id="accountServices"
  class="springexample.services.AccountServices">
  
  </bean>
  
  <bean id="authenticationService"
  class="springexample.services.AuthenticationService">
  
  </bean>
  
  </beans>
  
  以上服務(wù)在 sampleBanking-services.xml 中注冊(cè),然后裝入 web.xml 文件中,就像 前面討論的那樣。控制器和服務(wù)配置好后,這個(gè)簡(jiǎn)單的應(yīng)用程序就完成了。現(xiàn)在我們來(lái)看看部署和測(cè)試它時(shí)會(huì)發(fā)生什么!
  
  部署應(yīng)用程序
  
  我把示例應(yīng)用程序部署在 Tomcat servlet 容器中。Tomcat 是 Java Servlet 和 Java ServerPagest 技術(shù)的官方參考實(shí)現(xiàn)中使用的 servlet 容器。假如以前沒(méi)這么做過(guò),請(qǐng) 下載 jakarta-tomcat-5.0.28.exe 并運(yùn)行它把 Tomcat 安裝到自己喜歡的任何位置,例如 c:/tomcat5.0。
  
  接下來(lái),下載示例代碼 并釋放到驅(qū)動(dòng)器(例如 c:/ )上。創(chuàng)建了 Spring 項(xiàng)目的文件夾之后,打開(kāi)它并把 spring-banking 子文件夾拷貝到 c:/tomvat5.0/webapps。spring-banking 文件夾是一個(gè) Web 檔案,里面包含 Spring MVC 示例應(yīng)用程序。lib 文件夾包含應(yīng)用程序需要的 Spring 框架、與Spring 相關(guān)的 MVC 庫(kù)以及 JSTL 標(biāo)記庫(kù)和 jar 文件。
  
  要啟動(dòng) Tomcat 服務(wù)器,請(qǐng)使用以下命令:
  
  cd bin C:/Tomcat 5.0/bin> catalina.bat start
  Tomcat 應(yīng)當(dāng)啟動(dòng)并部署 Spring MVC 示例應(yīng)用程序。
  
  <

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产1区2区在线观看 | 手机av免费在线 | 黄色片网站免费 | 国产精品6区 | 国产精品久久久久久久四虎电影 | 99精品国产成人一区二区 | 日本在线不卡一区二区 | 成人午夜久久 | 国产在线久 | 亚洲3atv精品一区二区三区 | 国产午夜精品一区二区三区四区 | 黄色大片网站在线观看 | 久久国产在线观看 | av在线不卡免费 | 五月天影院,久久综合, | 免费人成在线观看网站 | 国产做爰 | 国产一区二区三区网站 | 成人在线视频在线观看 | 91成人午夜性a一级毛片 | 午夜伦情电午夜伦情电影 | 久久久久久久久久91 | 成人在线视频播放 | www深夜成人 | 日本在线播放一区二区三区 | 黄污在线看 | 密室逃脱第一季免费观看完整在线 | 男女牲高爱潮免费视频男女 | 免费观看黄视频 | 久久艹艹艹| 久久草在线视频免费 | 高清国产免费 | 国产亚洲精品yxsp | 斗破苍穹在线免费 | 欧美精品一区二区三区在线 | 久久亚洲精品视频 | 国产伦久视频免费观看视频 | 亚洲精品一区二区三区在线看 | h视频免费在线观看 | 欧美18—19sex性护士中国 | 羞羞的视频免费在线观看 |