中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Spring-MVC怎么用

這篇文章給大家分享的是有關(guān)Spring-MVC怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)芮城,十多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

引言

1.MVC :Model-View-Control

框架性質(zhì)的C 層要完成的主要工作:封裝web 請求為一個數(shù)據(jù)對象、調(diào)用業(yè)務(wù)邏輯層來處理數(shù)據(jù)對象、返回處理數(shù)據(jù)結(jié)果及相應(yīng)的視圖給用戶。

2. 簡要概述springmvc

Spring C 層框架的核心是 DispatcherServlet,它的作用是將請求分發(fā)給不同的后端處理器,也即 使用了一種被稱為Front Controller 的模式(后面對此模式有簡要說明)。 Spring 的C 層框架使用了后端控制器來、映射處理器和視圖解析器來共同完成C 層框架的主要工作。并且spring 的C 層框架還真正地把業(yè)務(wù)層處理的數(shù)據(jù)結(jié)果和相應(yīng)的視圖拼成一個對象,即我們后面會經(jīng)常用到的ModelAndView 對象。

一、入門實例

1. 搭建環(huán)境

在spring 的官方API 文檔中,給出所有包的作用概述,現(xiàn)列舉常用的包及相關(guān)作用:

org.springframework.aop-3.0.5.RELEASE.jar :與Aop 編程相關(guān)的包

org.springframework.beans-3.0.5.RELEASE.jar :提供了簡捷操作bean 的接口

org.springframework.context-3.0.5.RELEASE.jar :構(gòu)建在beans 包基礎(chǔ)上,用來處理資源文件及國際化。

org.springframework.core-3.0.5.RELEASE.jar :spring 核心包

org.springframework.web-3.0.5.RELEASE.jar :web 核心包,提供了web 層接口

org.springframework.web.servlet-3.0.5.RELEASE.jar :web 層的一個具體實現(xiàn)包,DispatcherServlet也位于此包中。

后文全部在spring3.0 版本中進(jìn)行,為了方便,建議在搭建環(huán)境中導(dǎo)入spring3.0 的所有jar 包(所有jar 包位于dist 目錄下)。

2. 編寫HelloWorld 實例

步驟一、建立名為springMVC_01_helloword ,并導(dǎo)入上面列出的jar 包。

步驟二、編寫web.xml 配置文件,代碼如下:

Java代碼

<?xml version="1.0" encoding="UTF-8"?>     <WEB-APP VERSION=< span>"2.4" xmlns="http://java.sun.com/xml/ns/j2ee"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">                          spmvc             <SERVLET-< span>class>                 org.springframework.web.servlet.DispatcherServlet             class>             1                               spmvc             *.do

簡要說明 :DispatcherServlet 就是一個Servlet ,也是對請求進(jìn)行轉(zhuǎn)發(fā)的核心Servlet 。在這里即所有.do 的請求將首先被DispatcherServlet 處理,而DispatcherServlet 它要作的工作就是對請求進(jìn)行分發(fā)(也即是說把請求轉(zhuǎn)發(fā)給具體的Controller )??梢院唵蔚卣J(rèn)為,它就是一個總控處理器,但事實上它除了具備總控處理理器對請求進(jìn)行分發(fā)的能力外,還與spring 的IOC 容器完全集成在一起,從而可以更好地使用spring 的其它功能。在這里還需留意 < servlet-name > spmvc ,下面步驟三會用到。

步驟三、建立 spmvc-servlet.xml 文件,它的命名規(guī)則: servlet-name-servlet.xml 。它的主要代碼如下:

Xml代碼

<?xml version="1.0" encoding="UTF-8" ?>    >    <beans>        <bean id="simpleUrlHandlerMapping"       class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">            <property name="mappings">                <props>                    <prop key="/hello.do">helloControlprop>                                                         props>            property>        bean>        <bean id="helloControl" class="com.asm.HelloWord">bean>    beans>

說明: hello.do 的請求將給名為 helloControl 的 bean 進(jìn)行處理。

步驟四、完成 HelloWord.java 的編寫,代碼如下:

Java代碼

package com.asm;     import javax.servlet.http.HttpServletRequest;     import javax.servlet.http.HttpServletResponse;     import org.springframework.web.servlet.ModelAndView;     import org.springframework.web.servlet.mvc.Controller;     public class HelloWord implements Controller {         public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)                 throws Exception {             ModelAndView mav = new ModelAndView("hello.jsp");             mav.addObject("message", "Hello World!");             return mav;         }     }

說明 :ModelAndView 對象是包含視圖和業(yè)務(wù)數(shù)據(jù)的混合對象,即是說通過此對象,我們可以知道所返回的相應(yīng)頁面(比如這里返回hello.jsp 頁面),也可以在相應(yīng)的頁面中獲取此對象所包含的業(yè)務(wù)數(shù)據(jù)(比如這里message-hello worrld )。

步驟五、在當(dāng)前項目web 根目錄下編寫hello.jsp ,主要代碼如下:

< body >

世界,你好!

獲取值: ${message }

步驟六:輸入 .../hello.do 進(jìn)行測試。

4. 簡析spring mvc 工作原理

(1 )啟動服務(wù)器,根據(jù)web.xml 的配置加載前端控制器(也稱總控制器) DispatcherServlet 。在加載時、會完成一系列的初始化動作。

(2 )根據(jù)servlet 的映射請求(上面的helloWorld 實例中針對.do 請求),并參照“控制器配置文件”(即spmvc-servlet.xml 這樣的配置)文件,把具體的請求分發(fā)給特定的后端控制器進(jìn)行處理(比如上例會分發(fā)給HelloWorld 控制器進(jìn)行處理)

(3 )后端控制器調(diào)用相應(yīng)的邏輯層代碼,完成處理并返回視圖對象( ModelAndView )給前端處理器。

(4 )前端控制器根據(jù)后端控制器返回的 ModelAndView 對象,并結(jié)合一些配置(后面有說明),返回一個相應(yīng)的頁面給客戶端。

小結(jié) :這種Front Controller 模式常應(yīng)用在主流的web 框架中,比如典型的struts1.x 框架.Front Controller 模式:所有請求先交給一個前端處理器(總控處理器)處理,然后前端處理器會參照一些配置文件再把具體的請求交給相應(yīng)的后端處理器。后端處理器調(diào)用邏輯層代碼,并根據(jù)邏輯返回相應(yīng)的視圖對象給前端控制器。然后前端控制器再根據(jù)視圖對象返回具體的頁面給客戶端(提示:和spring mvc 一樣,在struts1.x 中前端控制器是Servlet, 而在struts2 中前端控制器是Filter )。 概述 Front Controller 模式:前端控制器預(yù)處理并分發(fā)請求給后端控制器,后端控制器進(jìn)行真正的邏輯處理并返回視圖對象,前端控器器根據(jù)視圖對象返回具體頁面給客戶端。

5. 初識spring mvc 的視圖

在前面的HelloWorld 實例中,在HelloWorld.java 中返回 ModelAndView mav = new ModelAndView( "hello.jsp" ) 參數(shù)為 hello.jsp ,它會對應(yīng)于當(dāng)前項目根目錄下的 hello.jsp 頁面。但 spring mvc 為我們提供了一個特別的視圖定位方式,下面改進(jìn)前面的 HelloWord 實例:

改進(jìn)一 :在 spmvc-servlet.xml 中增加如下代碼:

Xml代碼

<bean id="viewResolver"      class="org.springframework.web.servlet.view.InternalResourceViewResolver">            <property name="prefix" value="/WEB-INF/page/" />            <property name="suffix" value=".jsp" />    bean>

改進(jìn)二 :在HelloWorld.java 重新定義返回的 ModelAndView 對象,即把 ModelAndView mav = new ModelAndView( "hello.jsp" ) 改為 ModelAndView mav = new ModelAndView( "hello" )

改進(jìn)三 :在/WEB-INF/page 目錄下建立hello.jsp 頁面

進(jìn)行上面三個改進(jìn)操作后,重新訪問hello.do 會訪問到WEB-INF/page/hello.jsp 頁面。

簡析視圖定位 :當(dāng)返回 ModelAndView 對象名稱為hello 時,會給hello 加上前后綴變成

/WEB-INF/page/hello.jsp 。因此在給前后綴賦值時,應(yīng)特別注意它和返回的 ModelAndView 對象能否組成一個正確的文件全路徑。在前面的“簡析spring mvc 工作原理(4) ”點中提到在根據(jù)ModelAndView 對象返回頁面時,會結(jié)合一些配置。這里就是結(jié)合了視圖定位方式,給viewName 加上前后綴進(jìn)行定位。

感謝各位的閱讀!關(guān)于“Spring-MVC怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

新聞名稱:Spring-MVC怎么用
地址分享:http://www.rwnh.cn/article44/gshche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、做網(wǎng)站用戶體驗、網(wǎng)頁設(shè)計公司、網(wǎng)站制作、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
伊宁市| 青田县| 上林县| 青岛市| 日照市| 自治县| 思南县| 炎陵县| 景宁| 黔西县| 合山市| 内江市| 德昌县| 当阳市| 阿尔山市| 江达县| 安仁县| 南岸区| 盐池县| 云龙县| 凉山| 陇南市| 牡丹江市| 澄迈县| 陆良县| 琼结县| 改则县| 连州市| 叙永县| 麟游县| 德格县| 湛江市| 商丘市| 兴海县| 牡丹江市| 乌恰县| 阜阳市| 拉萨市| 平谷区| 通渭县| 浮梁县|