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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring-MVC入门(一):入门实例

發(fā)布時(shí)間:2025/3/20 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring-MVC入门(一):入门实例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

1.MVC :Model-View-Control

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

2. 簡(jiǎn)要概述springmvc

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

一、入門實(shí)例

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 :提供了簡(jiǎn)捷操作bean 的接口

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

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 層的一個(gè)具體實(shí)現(xiàn)包,DispatcherServlet也位于此包中。

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

2. 編寫HelloWorld 實(shí)例

步驟一、建立名為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
  • 簡(jiǎn)要說明 :DispatcherServlet 就是一個(gè)Servlet ,也是對(duì)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)的核心Servlet 。在這里即所有.do 的請(qǐng)求將首先被DispatcherServlet 處理,而DispatcherServlet 它要作的工作就是對(duì)請(qǐng)求進(jìn)行分發(fā)(也即是說把請(qǐng)求轉(zhuǎn)發(fā)給具體的Controller )。可以簡(jiǎn)單地認(rèn)為,它就是一個(gè)總控處理器,但事實(shí)上它除了具備總控處理理器對(duì)請(qǐng)求進(jìn)行分發(fā)的能力外,還與spring 的IOC 容器完全集成在一起,從而可以更好地使用spring 的其它功能。在這里還需留意 < servlet-name > spmvc ,下面步驟三會(huì)用到。

    步驟三、建立 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 的請(qǐng)求將給名為 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 對(duì)象是包含視圖和業(yè)務(wù)數(shù)據(jù)的混合對(duì)象,即是說通過此對(duì)象,我們可以知道所返回的相應(yīng)頁(yè)面(比如這里返回hello.jsp 頁(yè)面),也可以在相應(yīng)的頁(yè)面中獲取此對(duì)象所包含的業(yè)務(wù)數(shù)據(jù)(比如這里message-hello worrld )。

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

    < body >

    世界,你好!

    獲取值: ${message }

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

    4. 簡(jiǎn)析spring mvc 工作原理

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

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

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

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

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

    5. 初識(shí)spring mvc 的視圖

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

    改進(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 對(duì)象,即把 ModelAndView mav = new ModelAndView( "hello.jsp" ) 改為 ModelAndView mav = new ModelAndView( "hello" )

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

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

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

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

    【編輯推薦】

    Struts VS Spring兩種MVC框架比較

    Spring MVC框架的高級(jí)配置

    Spring MVC框架的高級(jí)配置(上)

    Spring MVC框架的高級(jí)配置(下)

    設(shè)計(jì)REST風(fēng)格的Java MVC框架:WebWind

    【責(zé)任編輯: 金賀 TEL:(010)68476606】

    總結(jié)

    以上是生活随笔為你收集整理的Spring-MVC入门(一):入门实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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