簡述springmvc過程_spring mvc的工作流程是什么?

展開全部

SpringMVC工作流程描述

向服務器發送HTTP請求,請求被前端控制器 DispatcherServlet 捕獲。

DispatcherServlet 根據 -servlet.xml 中的配置對請62616964757a686964616fe59b9ee7ad9431333365646233求的URL進行解析,得到請求資源標識符(URI)。 然后根據該URI,調用 HandlerMapping 獲得該Handler配置的所有相關的對象(包括Handler對象以及Handler對象對應的攔截器),最后以 HandlerExecutionChain 對象的形式返回。

DispatcherServlet 根據獲得的Handler,選擇一個合適的 HandlerAdapter。(附注:如果成功獲得HandlerAdapter后,此時將開始執行攔截器的preHandler(…)方法)。

提取Request中的模型數據,填充Handler入參,開始執行Handler(Controller)。 在填充Handler的入參過程中,根據你的配置,Spring將幫你做一些額外的工作:

HttpMessageConveter: 將請求消息(如Json、xml等數據)轉換成一個對象,將對象轉換為指定的響應信息。

數據轉換:對請求消息進行數據轉換。如String轉換成Integer、Double等。

數據根式化:對請求消息進行數據格式化。 如將字符串轉換成格式化數字或格式化日期等。

數據驗證: 驗證數據的有效性(長度、格式等),驗證結果存儲到BindingResult或Error中。

Handler(Controller)執行完成后,向 DispatcherServlet 返回一個 ModelAndView 對象;

根據返回的ModelAndView,選擇一個適合的 ViewResolver(必須是已經注冊到Spring容器中的ViewResolver)返回給DispatcherServlet。

ViewResolver 結合Model和View,來渲染視圖。

視圖負責將渲染結果返回給客戶端。

SpringMVC運行原理

1. ? ? ?客戶端請求提交到DispatcherServlet

2. ? ? ?由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller

3. ? ? ?DispatcherServlet將請求提交到Controller

4. ? ? ?Controller調用業務邏輯處理后,返回ModelAndView

5. ? ? ?DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖

6. ? ? ?視圖負責將結果顯示到客戶端

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532398.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532398.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532398.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyTorch 的 Autograd

PyTorch 的 Autograd 轉自:PyTorch 的 Autograd PyTorch 作為一個深度學習平臺,在深度學習任務中比 NumPy 這個科學計算庫強在哪里呢?我覺得一是 PyTorch 提供了自動求導機制,二是對 GPU 的支持。由此可見,自動求導 (a…

商場樓層導視牌圖片_百寶圖商場電子導視軟件中預約產品功能簡介

百寶圖商場電子導視軟件中預約產品功能簡介 管理端,可配合百寶圖商場電子導視軟件配套使用 1:數據展示:圖形展示總預約數/預約時間峰值/預約途徑/各途徑數量對比 2:數據統計:有效預約數量/無效預約數量/無效預約原因備…

Pytorch autograd.grad與autograd.backward詳解

Pytorch autograd.grad與autograd.backward詳解 引言 平時在寫 Pytorch 訓練腳本時,都是下面這種無腦按步驟走: outputs model(inputs) # 模型前向推理 optimizer.zero_grad() # 清除累積梯度 loss.backward() # 模型反向求導 optimizer.step()…

相對熵與交叉熵_熵、KL散度、交叉熵

公眾號關注 “ML_NLP”設為 “星標”,重磅干貨,第一時間送達!機器學習算法與自然語言處理出品公眾號原創專欄作者 思婕的便攜席夢思單位 | 哈工大SCIR實驗室KL散度 交叉熵 - 熵1. 熵(Entropy)抽象解釋:熵用于計算一個隨機變量的信…

動手實現一個帶自動微分的深度學習框架

動手實現一個帶自動微分的深度學習框架 轉自:Automatic Differentiation Tutorial 參考代碼:https://github.com/borgwang/tinynn-autograd (主要看 core/tensor.py 和 core/ops.py) 目錄 簡介自動求導設計自動求導實現一個例子總結參考資料 簡介 梯度…

git安裝后找不見版本_結果發現git版本為1.7.4,(git --version)而官方提示必須是1.7.10及以后版本...

結果發現git版本為1.7.4,(git --version)而官方提示必須是1.7.10及以后版本升級增加ppasudo apt-add-repository ppa:git-core/ppasudo apt-get updatesudo apt-get install git如果本地已經安裝過Git,可以使用升級命令:sudo apt-get dist-upgradeapt命令…

隨機數生成算法:K進制逐位生成+拒絕采樣

隨機數生成算法:K進制逐位生成拒絕采樣 轉自:【宮水三葉】k 進制諸位生成 拒絕采樣 基本分析 給定一個隨機生成 1 ~ 7 的函數,要求實現等概率返回 1 ~ 10 的函數。 首先需要知道,在輸出域上進行定量整體偏移,仍然滿…

深入理解NLP Subword算法:BPE、WordPiece、ULM

深入理解NLP Subword算法:BPE、WordPiece、ULM 本文首發于微信公眾號【AI充電站】,感謝大家的贊同、收藏和轉發(▽) 轉自:深入理解NLP Subword算法:BPE、WordPiece、ULM 前言 Subword算法如今已經成為了一個重要的NLP模型性能提升…

http 錯誤 404.0 - not found_電腦Regsvr32 用法和錯誤消息的說明

? 對于那些可以自行注冊的對象鏈接和嵌入 (OLE) 控件,例如動態鏈接庫 (DLL) 文件或 ActiveX 控件 (OCX) 文件,您可以使用 Regsvr32 工具 (Regsvr32.exe) 來將它們注冊和取消注冊。Regsvr32.exe 的用法RegSvr32.exe 具有以下命令行選項: Regs…

mysql error 1449_MySql錯誤:ERROR 1449 (HY000)

筆者系統為 mac ,不知怎的,Mysql 竟然報如下錯誤:ERROR 1449 (HY000): The user specified as a definer (mysql.infoschemalocalhost) does not exist一時沒有找到是什么操作導致的這個錯誤。然后經過查詢,參考文章解決了問題。登…

MobileNet 系列:從V1到V3

MobileNet 系列:從V1到V3 轉自:輕量級神經網絡“巡禮”(二)—— MobileNet,從V1到V3 自從2017年由谷歌公司提出,MobileNet可謂是輕量級網絡中的Inception,經歷了一代又一代的更新。成為了學習輕…

mysql 查詢表的key_mysql查詢表和字段的注釋

1,新建表以及添加表和字段的注釋.create table auth_user(ID INT(19) primary key auto_increment comment 主鍵,NAME VARCHAR(300) comment 姓名,CREATE_TIME date comment 創建時間)comment 用戶信息表;2,修改表/字段的注釋.alter table auth_user comment 修改后的表注…

mysql 高級知識點_這是我見過最全的《MySQL筆記》,涵蓋MySQL所有高級知識點!...

作為運維和編程人員,對MySQL一定不會陌生,尤其是互聯網行業,對MySQL的使用是比較多的。MySQL 作為主流的數據庫,是各大廠面試官百問不厭的知識點,但是需要了解到什么程度呢?僅僅停留在 建庫、創表、增刪查改…

teechart mysql_TeeChart 的應用

TeeChart 是一個很棒的繪圖控件,不過由于里面沒有注釋,網上相關的資料也很少,所以在應用的時候只能是一點點的試。為了防止以后用到的時候忘記,我就把自己用到的東西都記錄下來,以便以后使用的時候查詢。1、進制縮放圖…

NLP新寵——淺談Prompt的前世今生

NLP新寵——淺談Prompt的前世今生 轉自:NLP新寵——淺談Prompt的前世今生 作者:閔映乾,中國人民大學信息學院碩士,目前研究方向為自然語言處理。 《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in…

mysql key_len_淺談mysql explain中key_len的計算方法

mysql的explain命令可以分析sql的性能,其中有一項是key_len(索引的長度)的統計。本文將分析mysql explain中key_len的計算方法。1、創建測試表及數據CREATE TABLE member (id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,age tinyint(…

requestfacade 這個是什么類?_Java 的大 Class 到底是什么?

作者在之前工作中,面試過很多求職者,發現有很多面試者對Java的 Class 搞不明白,理解的不到位,一知半解,一到用的時候,就不太會用。想寫一篇關于Java Class 的文章,沒有那么多專業名詞&#xff0…

初學機器學習:直觀解讀KL散度的數學概念

初學機器學習:直觀解讀KL散度的數學概念 轉自:初學機器學習:直觀解讀KL散度的數學概念 譯自:https://towardsdatascience.com/light-on-math-machine-learning-intuitive-guide-to-understanding-kl-divergence-2b382ca2b2a8 解讀…

php mysql讀取數據查詢_PHP MySQL 讀取數據

PHP MySQL 讀取數據從 MySQL 數據庫讀取數據SELECT 語句用于從數據表中讀取數據:SELECT column_name(s) FROM table_name我們可以使用 * 號來讀取所有數據表中的字段:SELECT * FROM table_name如需學習更多關于 SQL 的知識,請訪問我們的 SQL 教程。使用 …

MySQL應用安裝_mysql安裝和應用

1.下載mysql安裝包2.安裝mysql,自定義->修改路徑3.配置mysql,選擇自定義->server模式->500訪問量->勾選控制臺->設置gbk->設置密碼和允許root用戶遠程登錄等等。以管理員權限,在控制臺輸入:net start MySQL, 啟…