SpringMVC

来源:https://www.cnblogs.com/h-w-b/archive/2020/05/07/12841307.html
-Advertisement-
Play Games

SpringMVC 初始SpringMVC 在 Spring 的基本架構中,紅色圈起來的 Spring Web MVC ,也就是本系列的主角 SpringMVC,它是屬於Spring基本架構裡面的一個組成部分,屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面 ...


SpringMVC

初始SpringMVC

 

在 Spring 的基本架構中,紅色圈起來的 Spring Web MVC ,也就是本系列的主角 SpringMVC,它是屬於Spring基本架構裡面的一個組成部分,屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面,所以我們在後期和 Spring 進行整合的時候,幾乎不需要別的什麼配置。

Spring+MVC=SpringMVC : 在spring的基礎上,對MVC思想的一個實現,是一個MVC框架

SpringMVC: 對servlet做的一個封裝,換成controller層

相對於struts2,SpringMVC和Spring結合的更加完美

 

SpringMVC初配置

       1. 複製項目到Test_Shop_SSM,添加一個jar包

spring-webmvc-4.1.0.RELEASE.jar

 

       2. 配置web.xml

 

 

 

 

 

 

只有在滿足地址尾碼 .do,才會進入SpringMVC框架

3. 添加,配置SpringMVC的主配置文件 springmvc-servlet.xml

 

       4. 創建controller包,創建一個普通的類ClientController,添加對應註解

 

 

 

       與視圖解析器,拼接前置和後置地址為/success.jsp

       5. 修改login.jsp 的登錄跳轉地址

 

 

地址後加上匹配規則 .do,進入SpringMVC框架

 

 

 

 

 

工作流程:

       1. 載入web.xml,讀取配置,啟動SpringMVC

       2. 發送URL請求,匹配規則*.do,實例化SpringMVC的Servlet對象

       3. 掃描註解路徑,尋找標記註解@Controller層

       4. 根據URI請求的地址,匹配方法上的註解@RequestMapping的值

       5. 執行方法

       6. 解析返回值,匹配預設的視圖解析器,拼接成一個跳轉的URI(預設轉發)

 

參數收集

       1. 內置對象 HttpServletRequest (瞭解)

 

 

 

2. 方法參數收集(常用)

 

 

 

前臺的key值對應到參數值,就可以獲取到value

3. 方法對象收集  (常用)

 

 

 

       3.1 後臺執行無參構造方法,創建對象

       3.2 根據前臺的key,調用對應的set/get方法完成賦值

SpringMVC亂碼處理

在web.xml添加Spring過濾,處理所有請求地址,轉譯字元編碼UTF-8

 

模擬完成SSM框架下登錄功能

 

 

 

 

 

 

1.Spring家族體系

Spring AOP:為Spring容器管理的對象提供了對面向切麵編程的支持;

Spring DAO:該層封裝了對資料庫的訪問,並且處理了其拋出的錯誤消息,同時還基於AOP模塊提供了事務管理;

Spring ORM:Spring支持多種ORM框架,簡化了資料庫操作。

Spring Web :Web 上下文模塊建立在應用程式上下文模塊之上,為基於 Web 的應用程式提供了上下文。

Spring MVC :MVC 框架是一個全功能的構建 Web 應用程式的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。

 

2.SpringMVC框架定義

Spring 框架提供了構建 Web 應用程式的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,可以選擇是使用內置的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略介面,Spring 框架是高度可配置的,而且包含多種視圖技術,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC 框架並不知道使用的視圖,所以不會強迫您只使用 JSP 技術。

Spring MVC 分離了控制器、模型對象、分派器以及處理程式對象的角色,這種分離讓它們更容易進行定製。

Spring的MVC框架主要由DispatcherServlet、處理器映射、處理器(控制器)、視圖解析器、視圖組成。

 

3.SpringMVC執行流程

首先用戶發送請求到前端控制器,前端控制器根據請求信息(如 URL)來決定選擇哪一個頁面控制器進行處理並把請求委托給它,即以前的控制器的控制邏輯部分;

頁面控制器接收到請求後,進行功能處理,首先需要收集和綁定請求參數到一個對象,這個對象在 Spring Web MVC 中叫命令對象,併進行驗證,然後將命令對象委托給業務對象進行處理;處理完畢後返回一個 ModelAndView(模型數據和邏輯視圖名);

前端控制器收回控制權,然後根據返回的邏輯視圖名,選擇相應的視圖進行渲染,並把模型數據傳入以便視圖渲染;

前端控制器再次收回控制權,將響應返回給用戶

 

 

4.視圖解析器

在開發中,視圖通常就是JSP、Velocity 等。Spring 預設提供了多種視圖解析

器,比如,我們可以使用最常用解析器InternalResourceViewResolver 來查找

JSP視圖(與之相對應的視圖類為InternalResourceView)。 通常,一- 個視圖解

析器只能查找- - -個或多個特定類型的視圖,在遇到Spring 不支持的視圖或者我

們要自定義視圖查找規則的情況下,我們就可以通過擴展Spring 來自定義自己

所需的視圖解析器。目前,視圖解析器都需要實現介面

org. springframework.web.servlet.ViewResolver,它包含方法

resolveViewName,該方法會通過視圖名查找並返回Spring 視圖對象。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 虛擬機 下安裝tools tools安裝後桌面會全屏,自適應屏幕 環境準備 虛擬機 "安裝虛擬機教程" linux系統 "ubuntu下載地址" 1. 虛擬機中點擊》虛擬機》安裝tool 2. 打開終端命令視窗(快捷鍵ctrl+alt+t) 3. 輸入su 擁有超級用戶的許可權(提示:第一次打開是沒有 ...
  • ​作者:良知猶存 轉載授權以及圍觀:歡迎添加微信:Allen-Iverson-me-LYN 前言 最近想開發一段單片機的代碼,代碼本身有很多的重覆元素,這重覆定義的一些結構體使用起來有些繁瑣,所以就想用C++開發,C++的繼承 模板類可以很容易的解決這些問題。因為在單片機運行,習慣用MDK或者IAR ...
  • 第四天MySQL 連接查詢(內連接、外連接、交叉連接)(sql99版本下) 子查詢: select 後面(標量子查詢) from 後面(表子查詢) where 或having後面(標量子查詢、列子查詢、行子查詢) exists後面(相關子查詢)(表子查詢) ...
  • 來源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三種獨立的實現模式匹配的方法:SQL LIKE操作符、更近一些的SIMILAR TO操作符(SQL:1999 里添加進來的)和POSIX-風格的正則表達式。除了這些基本的“這個串匹配這 ...
  • 本篇博客參考掘金小冊—— "MySQL 是怎樣運行的:從根兒上理解 MySQL" 先給大家講一個故事,我剛參加工作,在一個小作坊裡面當【碼畜】(儘管現在也是),有一天老闆從我背後走過,說了一句舉世震驚的話:我看你們的資料庫和excel一樣,不就是一行行數據,人家excel還可以對單元格進行美化,還有 ...
  • 業務情景 客戶環境是系統A的1.0版本,開發環境是系統A的2.0版本。2.0版本對於資料庫有部分變更(主要是新增表和欄位,不涉及欄位刪除和變更)。這個時候需要在客戶環境安裝資料庫2.0(表結構、存儲過程都是用的2.0),但是數據要把1.0的同步過來。 實際操作 1、 表結構複製 右擊2.0版本的數據 ...
  • 來源:http://www.postgres.cn/docs/11/ 6.4. 從修改的行中返回數據 有時在修改行的操作過程中獲取數據很有用。INSERT、 UPDATE和DELETE命令都有一個支持這個的可選的 RETURNING子句。使用RETURNING 可以避免執行額外的資料庫查詢來收集數據 ...
  • skip-name-resolve IP address 'XX.XX.XX.XX' has been resolved to the host name 'XX.XX.XX.XX.ro.ovo.sc', which resembles IPv4-address itself. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...