中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

當前位置: 首頁 / 技術干貨 / 正文
SpringMVC源碼解析(一)

2023-03-09

   springmvc modelandview

  1 SpringMVC基于XML配置開發

  所謂配置式開發是指,“處理器類是程序員手工定義的、實現了特定接口的類,然后再在SpringMVC配置文件中對該類進行顯式的、明確的注冊”的開發方式。

  1.1 SpringMVC基于XML配置開發分析

  1.SpringMVC開發Web項目結構設計。

  2.SpringMVC的執行流程概要分析。

  1.2 SpringMVC基于XML配置開發實現

  1.在項目的pom.xml文件中導入spring-webmvc依賴。

<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.22</version>
</dependency>
</dependencies>

  2.在WEB-INF文件夾下創建hello.jsp頁面。

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>SpringMVC基于XML配置開發</title>
</head>
<body>
<h1>SpringMVC基于XML配置開發案例</h1>
<p>${msg}</p>
</body>
</html>

  3.編寫web容器的核心配置文件web.xml。

<!-- 配置SpringMVC前端控制器:所有的請求都將提交給DispatcherServlet類 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextConfigLocation:表示用于加載Bean的配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-servlet.xml</param-value>
</init-param>
</servlet>
<!-- 配置Servlet映射 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- url映射路徑,"/"表示能夠匹配瀏覽器提交過來的所有請求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>

  4.在com.cy.controller包下創建HelloController類,并編寫控制層的代碼。

package com.cy.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/** 控制層:SpringMVC框架提供一個Controller接口 */
public class HelloController implements Controller {

/** 請求url找到對應的Controller類之后,會執行handlerRequest()方法 */
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
/** 需求:當瀏覽器訪問/hello請求時,服務器返回一個"Hello SpringMVC!!!"字符串給瀏覽器頁面顯示 */
/*
* 數據模型和視圖類:內部封裝了request對象獲取參數和賦值參數的操作
* 作用:替代了request.getParameter()和request.setAttribute()方法
*/
ModelAndView modelAndView = new ModelAndView();
// 設置需要返回的值
modelAndView.addObject("msg", " Hello SpringMVC!!!");
// 設置跳轉到指定的頁面;例如:訪問hello.jsp頁面,那么將視圖的名稱設置為hello
modelAndView.setViewName("hello");
return modelAndView;
}
}

  5.在WEB-INF文件夾下創建SpringMVC的核心配置文件springmvc-servlet.xml,并進行代碼的編寫。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

<!-- 注冊處理器映射器
作用:處理器映射器會根據請求的url與Spring容器中定義的處理器bean的name屬性值進行匹配,從而在Spring容器中找到處理器bean實例
說明:bean標簽如果沒有配置id屬性,那么Spring會為bean自動生成一個id,id的規則是:包名.類名#數字 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

<!-- 注冊處理器
name="":表示對應著一個前端的請求,name屬性值必須以“/”開頭
class="":表示對應請求從DispatcherServlet發送過來后,對應的后臺處理類 -->
<bean name="/hello" class="com.cy.controller.HelloController"></bean>

<!-- 配置處理器適配器HandlerAdapter
作用:根據HandlerMapping返回的Controller,執行一個匹配規則,主要是找到對應的Handler去處理Controller中的方法 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

<!-- 配置視圖解析器ViewResolver
作用:根據路徑的前綴后綴匹配找到相應的jsp頁面,然后再進行視圖渲染 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 路徑的前綴:/WEB-INF/ -->
<property name="prefix" value="/WEB-INF/"></property>
<!-- 路徑的后綴:.jsp -->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>

  6.啟動Tomcat服務,訪問http://localhost:8080/springmvc_01_introduction_war_exploded/hello地址進行進行測試。

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

中文在线免费看视频_国产成人精品亚洲日本在线观看_亚洲精品第一综合99久久_国产亚洲精品日韩综合网

            91精品国产色综合久久| 在线国产电影不卡| 老司机一区二区| 怡红院av一区二区三区| 国产精品免费久久| 国产蜜臀97一区二区三区 | 在线电影欧美成精品| 波多野结衣91| 欧美一级在线观看| 欧美精品久久一区| 欧美色图天堂网| 欧美在线影院一区二区| 色综合久久综合| 97超碰欧美中文字幕| 欧美美女喷水视频| 免费久久99精品国产| 久久久精品人体av艺术| 奇米精品一区二区三区四区 | 欧美一区二区三区日韩视频| 青青草原综合久久大伊人精品 | 欧美羞羞免费网站| 男女男精品视频| 午夜精品久久一牛影视| www.欧美日韩| 午夜久久久影院| 午夜av一区二区| 蜜桃一区二区三区在线| 麻豆高清免费国产一区| 国产乱码精品1区2区3区| 国产福利一区在线| 成人国产精品免费观看动漫| 91亚洲国产成人精品一区二区三 | 欧美日韩视频在线一区二区| 欧美日韩国产中文| 日韩精品中文字幕在线一区| 久久久91精品国产一区二区三区| 久久精品人人做人人爽人人| 中文字幕亚洲在| 亚洲尤物在线视频观看| 美女国产一区二区三区| 国产成人综合网| 日本丰满少妇一区二区三区| 欧美精品tushy高清| 2023国产精品视频| 亚洲免费观看在线观看| 日韩精品一级二级| 国产成人高清视频| 欧美色图12p| 欧美精品一区二区三区在线播放| 国产精品国产精品国产专区不蜜 | 久久激情五月激情| 成人蜜臀av电影| 欧美日本乱大交xxxxx| 久久综合色鬼综合色| 亚洲欧美二区三区| 久久99热国产| 91福利国产成人精品照片| 日韩精品一区二区三区视频| 最新国产成人在线观看| 日本视频一区二区三区| 波多野结衣一区二区三区| 欧美乱妇20p| 中文字幕欧美一| 狂野欧美性猛交blacked| 91亚洲精品久久久蜜桃| 欧美成人精品1314www| 一区二区三区四区视频精品免费 | 国产成人免费视频| 欧美美女一区二区在线观看| 国产欧美精品一区aⅴ影院| 亚洲午夜精品网| 高清av一区二区| 日韩一区二区三区高清免费看看| 国产精品久久久久久户外露出| 日韩成人一级片| 色先锋aa成人| 亚洲日本欧美天堂| 国产精品综合在线视频| 777亚洲妇女| 亚洲女爱视频在线| 国产白丝精品91爽爽久久| 91精品国产一区二区人妖| 亚洲欧美在线高清| 精东粉嫩av免费一区二区三区| 欧美丝袜自拍制服另类| 国产精品网站在线| 蜜桃av一区二区| 欧美日韩三级在线| 亚洲另类在线一区| 成人动漫一区二区| 国产色综合一区| 精品一区二区三区免费播放| 欧美日韩极品在线观看一区| 日韩毛片在线免费观看| 成人性生交大合| 久久久噜噜噜久久人人看 | 天天综合色天天| 91福利在线导航| 亚洲免费看黄网站| 91麻豆文化传媒在线观看| 国产精品美女久久久久久久久| 狠狠色2019综合网| 精品久久免费看| 久久国产精品色婷婷| 日韩一区二区精品葵司在线| 日本女人一区二区三区| 欧美日韩一区不卡| 亚洲午夜激情网站| 欧美三级三级三级爽爽爽| 亚洲免费在线看| 91成人在线观看喷潮| 亚洲一区二区三区四区在线免费观看 | 亚洲综合在线观看视频| 91成人国产精品| 亚洲一卡二卡三卡四卡无卡久久 | 国产丝袜欧美中文另类| 狠狠色狠狠色综合系列| 久久蜜桃av一区精品变态类天堂 | 免费高清视频精品| 91精品国产麻豆国产自产在线 | 成人成人成人在线视频| 国产精品不卡一区| 91浏览器打开| 亚洲一区二区三区在线| 欧美电影一区二区| 黄页视频在线91| 国产校园另类小说区| 成人美女视频在线看| 亚洲欧美精品午睡沙发| 欧美日韩一级二级| 麻豆成人av在线| 国产偷国产偷精品高清尤物| 北岛玲一区二区三区四区| 亚洲视频免费在线观看| 精品污污网站免费看| 美女国产一区二区| 国产日韩av一区| 在线视频一区二区三| 日本欧美一区二区| 久久精品综合网| 色视频成人在线观看免| 青青国产91久久久久久| 国产女主播视频一区二区| 色婷婷亚洲精品| 另类的小说在线视频另类成人小视频在线 | 91在线porny国产在线看| 亚洲成a人片在线不卡一二三区| 日韩视频在线一区二区| 成人激情免费网站| 天堂成人国产精品一区| 国产亚洲欧美日韩日本| 欧美亚洲国产怡红院影院| 蜜桃久久精品一区二区| 国产精品久久久久久久久搜平片 | 成人精品视频一区二区三区尤物| 夜夜爽夜夜爽精品视频| 精品国产91乱码一区二区三区| 色综合咪咪久久| 久久精品二区亚洲w码| 中文字幕一区二区三区乱码在线| 欧美精品日韩一区| 成人午夜电影久久影院| 日本视频中文字幕一区二区三区| 国产精品日韩成人| 日韩亚洲电影在线| 91麻豆免费在线观看| 精品一区二区三区久久| 一区二区三区电影在线播| 久久天天做天天爱综合色| 欧美视频在线播放| 成人一级片在线观看| 麻豆国产一区二区| 亚洲国产一区二区三区青草影视| 久久久久久免费毛片精品| 欧美美女一区二区在线观看| 91日韩精品一区| 国产在线精品免费| 午夜影院久久久| 亚洲日本在线a| 欧美国产日产图区| 日韩欧美一区二区在线视频| 欧美在线|欧美| 91性感美女视频| 高清av一区二区| 国产一区二区在线视频| 七七婷婷婷婷精品国产| 亚洲国产aⅴ成人精品无吗| 国产精品久久久久影视| 2020日本不卡一区二区视频| 884aa四虎影成人精品一区| 欧洲av在线精品| 色综合久久88色综合天天6| 国产成人av电影| 国产一二精品视频| 韩国欧美国产一区| 视频精品一区二区| 五月天激情综合| 日一区二区三区| 亚洲第一精品在线| 亚洲国产日韩av|