這篇文章給大家分享的是有關(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)