亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring MVC溫故而知新系列教程之從零開始

2024-07-14 08:40:53
字體:
來源:轉載
供稿:網友

Spring MVC簡介

Spring MVC是一款基于MVC架構模式的輕量級Web框架,目的是將Web開發模塊化,對整體架構進行解耦。

Spring MVC有一下優點:

作為Spring框架的一部分,擁有Spring的優點(IOC,AOP等)

支持靈活的URL到頁面控制器的映射

提供靈活的數據驗證、格式化、數據綁定機制

支持RESTful風格

Spring MVC請求流程

Spring MVC框架的整體請求流程如下:

springmvc,mvc,工作原理

 

上圖中涉及到Spring MVC的幾個功能組件:

前端控制器(DispatcherServlet):接收用戶請求并返回請求結果。它的作用相當于一個轉發器或中央處理器,控制整個執行流程,對各組件進行調度降低組件之間的耦合。

處理器映射器(HandlerMapping):根據用戶請求的URL,通過注解或者XML配置,查找相應的處理器Handler

處理器適配(HandlerAdapter):根據映射器查找出的Handler,完成調用處理器中的方法

處理器(Handler):請求處理的具體邏輯,返回數據和視圖信息

視圖解析器(View Resolver):解析具體視圖,通過ModelAndView對象中的View信息,將邏輯視圖名解析成真正的視圖View

請求流程具體步驟詳解:

1:用戶發起請求,請求會被前端控制器(DispatcherServlet)攔截

2:前端控制器(DispatcherServlet)請求處理器映射器(HandlerMapping)查找Handler

3:處理器映射器(HandlerMapping)根據配置找到相應Handler(可以更具注解或者XML配置),可能包含多個Interceptor攔截器,返回給前端控制器

4:前端控制器(DispatcherServlet)請求處理器適配器(HandlerAdapter)去執行相應的Handler

5:適配器交由對應Handler處理器執行

6: Handler處理器執行完成后返回ModelAndView對象給處理器適配器

7:處理器適配器接受Handler處理器的返回結果,并將該結果返回給前端控制器(DispatcherServlet)

8:前端控制器(DispatcherServlet)接收處理器適配器返回的數據和視圖信息,請求視圖解析器,解析對應的視圖

9:視圖解析器根據View信息匹配的相應的視圖結果,反回給前端控制器

10:前端控制器接收具體視圖,進行視圖渲染,將Model數據填充到View視圖中,生成最終視圖

11:前端控制器向用戶返回結果

從零開始搭建demo

創建工程:

Eclipse下新建一個動態Web項目

springmvc,mvc,工作原理

工程默認目錄結構:

springmvc,mvc,工作原理

添加jar包依賴

WebContent > WEB-INF > lib 文件夾下導入相應的jar包,其中核心的jar包是spring-webmvc-5.0.0.RELEASE.jar,其他是幾個主要是spring用于管理上下文和beande 包、jstl標簽庫和一個用于打印日志的log包:

springmvc,mvc,工作原理

在web.xml中配置前端控制器

前端控制器相當于Spring MVC的專有servlet,用于攔截所有符合條件的請求,交由框架做后續處理

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://xmlns.jcp.org/xml/ns/javaee"  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"  id="WebApp_ID"  version="3.1">  <!-- 配置前端控制器-DispatchServlet --> <servlet> <servlet-name>springMvcNext</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- contextConfigLocation不是必須的, 如果不配置contextConfigLocation, springmvc的配置文件默認在:WEB-INF/servlet的name+"-servlet.xml" --> <init-param>  <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> </servlet>  <servlet-mapping> <servlet-name>springMvcNext</servlet-name> <url-pattern>/</url-pattern> <!--根據url-pattern設定的規則攔截用戶發來的請求 此處攔截所有請求,包括靜態資源 -> </servlet-mapping> </web-app>

其中<servlet-mapping>標簽中定義url匹配規則為符合*.action的形式,對應的servlet名為springMvcNext,而<servlet>配置的控制器為org.springframework.web.servlet.DispatchServlet,該控制器為當前SpringMVC項目的前端控制器,<init-param>標簽為當前控制器依賴的參數,兩個參數分別代表上下文參數和參數加載路徑。

關于classpath:代表web項目編譯后編譯后的輸出路徑

springmvc,mvc,工作原理

springmvc,mvc,工作原理

配置spring MVC配置

在java源代碼更目錄下添加applicationContext.xml文件

springmvc,mvc,工作原理

具體內容:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 包掃描器 標簽將用于激活Spring MVC注釋掃描功能,允許使用@Controller和@RequestMapping等注釋。--> <context:component-scan base-package="com.sl.controller" />  <!-- 注解驅動 --> <mvc:annotation-driven />  <!-- 配置視圖解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/" /> <property name="suffix" value=".jsp" /> </bean></beans>

添加控制器Controller與視圖View

springmvc,mvc,工作原理

Src目錄下添加包com.sl.controller,添加控制器代碼如下:

package com.sl.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class HelloWorldController {  @RequestMapping("/index") //處理URL路徑中以/index開頭的所有請求: 包括 /index/* 和 /index.html public ModelAndView helloWorld() {  String message = "Hello Spring MVC";  return new ModelAndView("index", "message", message); }}

在WEB-INF/view中添加視圖文件index.jsp

<html><head> <title>Spring MVC </title></head><body> ${message}</body></html>

運行結果:

springmvc,mvc,工作原理

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看国产成人av片| 欧美精品18videos性欧| 日韩精品极品在线观看播放免费视频| 美女视频黄免费的亚洲男人天堂| 国产精品亚洲激情| 日韩欧美国产成人| 亚洲精品国产精品乱码不99按摩| 欧美日韩成人黄色| 日韩av手机在线观看| 性色av一区二区三区在线观看| 亚洲va国产va天堂va久久| 欧美寡妇偷汉性猛交| 亚洲精品成人久久电影| 亚洲欧美制服另类日韩| 日韩在线免费视频| 最近2019年日本中文免费字幕| 成人精品在线视频| 久久香蕉国产线看观看av| 国产成人久久久精品一区| 亚洲视频免费一区| 日韩在线视频二区| 亚洲嫩模很污视频| 一区二区三区国产在线观看| 欧美美最猛性xxxxxx| 久久综合九色九九| 欧美午夜精品久久久久久久| 亚洲国产精品电影在线观看| 亚洲综合精品伊人久久| 中文字幕亚洲无线码a| 欧美性xxxxhd| 日韩av在线看| 成人精品在线观看| 国自产精品手机在线观看视频| 日韩一二三在线视频播| 国产+成+人+亚洲欧洲| 久久国产精品久久国产精品| 欧美第一黄网免费网站| 久久亚洲精品一区二区| 国产女同一区二区| 国产视频福利一区| 亚洲免费视频一区二区| 亚洲а∨天堂久久精品9966| 国产精欧美一区二区三区| 91精品国产乱码久久久久久久久| 欧洲永久精品大片ww免费漫画| 国产精品1区2区在线观看| 亚洲精品日韩丝袜精品| 国内伊人久久久久久网站视频| 中文字幕亚洲精品| 国产精品美腿一区在线看| 国产精品影片在线观看| 成人免费淫片aa视频免费| 欧美在线性视频| 亚洲国产精品字幕| 国产精品成人观看视频国产奇米| 日韩电影大全免费观看2023年上| 亚洲欧美在线看| 久久久噜久噜久久综合| 国产91在线播放| 992tv成人免费视频| 韩剧1988在线观看免费完整版| 国产精品视频1区| 国产91九色视频| 欧洲成人午夜免费大片| 亚洲精品98久久久久久中文字幕| 韩国国内大量揄拍精品视频| 欧美精品免费看| 欧美激情18p| 欧美极品欧美精品欧美视频| 亚洲福利在线观看| 精品国产一区二区在线| 久久噜噜噜精品国产亚洲综合| 国产精品视频不卡| 亚洲精品电影在线| 精品一区二区亚洲| 国产成人精彩在线视频九色| 亚洲石原莉奈一区二区在线观看| 91欧美精品午夜性色福利在线| 粉嫩老牛aⅴ一区二区三区| 中文字幕亚洲一区二区三区五十路| 国产精品中文字幕在线| 亚洲色图欧美制服丝袜另类第一页| 亚洲aⅴ日韩av电影在线观看| 亚洲精品美女在线观看| 国产成人精品免高潮在线观看| 俺去亚洲欧洲欧美日韩| 国产日韩精品综合网站| 欧美专区在线播放| 亚洲免费人成在线视频观看| 色哟哟亚洲精品一区二区| 91色琪琪电影亚洲精品久久| 久久影视电视剧免费网站| 美女视频黄免费的亚洲男人天堂| 国产91色在线免费| 福利视频导航一区| 久久av红桃一区二区小说| 91精品国产成人| 中文字幕日本欧美| 福利二区91精品bt7086| 91久久夜色精品国产网站| 国产欧美在线播放| 精品视频在线播放免| 国产精品扒开腿做爽爽爽的视频| 久久夜精品va视频免费观看| 亚洲人成电影网站色xx| 这里只有精品在线观看| 亚洲a在线观看| 亚洲欧美日韩成人| www亚洲精品| 精品露脸国产偷人在视频| 91精品国产高清久久久久久久久| 精品国产一区久久久| 狠狠久久五月精品中文字幕| 久久中文字幕国产| 91亚洲精品久久久久久久久久久久| 国模私拍视频一区| 91九色单男在线观看| 国产精品免费视频久久久| 2019av中文字幕| 成人免费大片黄在线播放| 57pao成人国产永久免费| 国产一区二区三区精品久久久| 91在线观看免费高清完整版在线观看| 日韩免费不卡av| 日韩在线观看免费高清| 欧美影院久久久| 日韩电影网在线| 久久97精品久久久久久久不卡| 亚洲欧美制服中文字幕| 欧美激情视频播放| 久久精品国产亚洲7777| 国产做受高潮69| 亚洲精品日韩在线| 国产精品一区电影| 日韩高清电影免费观看完整版| 欧美国产日韩二区| 日韩视频第一页| 亚洲a在线观看| 亚洲国产欧美一区二区三区同亚洲| 成人国产精品免费视频| 国模叶桐国产精品一区| 久久视频这里只有精品| 国产精品久久久久av| 亚洲成人激情图| 国产主播喷水一区二区| 国产精品免费视频xxxx| 日本不卡免费高清视频| 最近更新的2019中文字幕| 久久久成人av| 国产欧美一区二区| 日韩美女激情视频| 亚洲国产高潮在线观看| 91国产一区在线| 国内精品一区二区三区四区| 国产欧美在线播放| 日韩高清a**址| 日韩影视在线观看| 久久亚洲欧美日韩精品专区| 亚洲精品黄网在线观看| 国产精品永久免费视频| 国产欧美韩国高清| 国产精品91久久久| 久久综合伊人77777尤物| 日韩中文字幕在线|