<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jialisoftw

    一步步開(kāi)發(fā) Spring MVC 應(yīng)用

    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),可以派生子類。如果應(yīng)用程序需要處理用戶輸入表單,那么可以繼承 AbstractFormController。如果需要把多頁(yè)輸入處理到一個(gè)表單,那么可以繼承 AbstractWizardFormController。

    示例應(yīng)用程序有助于直觀地學(xué)習(xí)這些特性。銀行應(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

    context>servlet-name> org.springframework.web.context.ContextLoaderServlet 1

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

    contextConfigLocation /WEB-INF/sampleBanking-services.xml

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

    Spring MVC 示例

    示例銀行應(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 類處理銀行應(yīng)用程序的驗(yàn)證。AccountServices 類處理典型的銀行服務(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)用程序。

    測(cè)試應(yīng)用程序

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

    圖 1. Spring MVC 示例登錄屏幕

    登錄屏幕

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

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

    帳戶細(xì)節(jié)頁(yè)面

    結(jié)束語(yǔ)

    我演示了如何配置和開(kāi)發(fā) Spring MVC 應(yīng)用程序、如何配置 Spring MVC 控制器和向其中插入依賴項(xiàng)、如何用 JavaServer Pages 技術(shù)開(kāi)發(fā)應(yīng)用程序視圖,以及如何把自己的頁(yè)面與 Spring MVC 的視圖層集成??偨Y(jié)這篇文章時(shí),我演示了如何在 Tomcat servlet 容器中部署應(yīng)用程序以及如何在瀏覽器中測(cè)試它。

    posted on 2013-05-04 14:28 飛豬一號(hào) 閱讀(383) 評(píng)論(1)  編輯  收藏

    評(píng)論

    # re: 一步步開(kāi)發(fā) Spring MVC 應(yīng)用 2013-05-07 10:26 開(kāi)發(fā)吧

    spring 的MVC真的不錯(cuò),贊!  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    <2013年5月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統(tǒng)計(jì)

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 中文字幕在线视频免费观看| 免费看片A级毛片免费看| 亚洲自偷自拍另类12p| 在线永久免费的视频草莓| 亚洲GV天堂无码男同在线观看| 亚洲午夜国产片在线观看| 在线观看免费av网站| 久久亚洲精品11p| 亚洲va久久久噜噜噜久久| 成年丰满熟妇午夜免费视频| 久久精品免费大片国产大片| 亚洲AV无码专区在线亚| 亚洲午夜久久久影院| 巨胸喷奶水视频www网免费| 成人无码视频97免费| 亚洲色一区二区三区四区| 久久青青草原亚洲AV无码麻豆| 免费黄色网址入口| 亚在线观看免费视频入口| 黄色网址在线免费观看| 亚洲综合网美国十次| 久久精品国产精品亚洲艾草网美妙 | 欧洲一级毛片免费| 国产免费AV片在线观看播放| 亚洲日韩精品无码专区加勒比 | 久久亚洲AV成人无码国产最大| 亚洲国产综合91精品麻豆| 全部免费毛片在线| 日韩精品福利片午夜免费观着| 久久久久久久99精品免费观看| 99亚洲男女激情在线观看| 亚洲性色成人av天堂| 人人狠狠综合久久亚洲88| 人人狠狠综合久久亚洲高清| 国产成人免费网站| 一级毛片免费观看| 日韩视频免费在线观看| www在线观看播放免费视频日本| 亚洲精品无码mⅴ在线观看| 亚洲成av人片不卡无码| 亚洲国产第一站精品蜜芽|