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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

springMVC请求流程详解

發布時間:2024/4/13 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springMVC请求流程详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SpringMVC框架是一個基于請求驅動的Web框架,并且使用了‘前端控制器’模型來進行設計, 再根據‘請求映射規則’分發給相應的頁面控制器進行處理。核心流程: 第一步:發起請求到前端控制器(DispatcherServlet) 第二步:前端控制器請求HandlerMapping查找 Handler (可以根據xml配置、注解進行查找) 第三步:處理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping會把請求映射 為HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象,多個HandlerInterceptor 攔截器對象),通過這種策略模式,很容易添加新的映射策略 第四步:前端控制器調用處理器適配器去執行Handler 第五步:處理器適配器HandlerAdapter將會根據適配的結果去執行Handler 第六步:Handler執行完成給適配器返回ModelAndView 第七步:處理器適配器向前端控制器返回ModelAndView (ModelAndView是springmvc框架的一個底層對象, 包括 Model和view) 第八步:前端控制器請求視圖解析器去進行視圖解析 (根據邏輯視圖名解析成真正的視圖(jsp)), 通過這種策略很容易更換其他視圖技術,只需要更改視圖解析器即可 第九步:視圖解析器向前端控制器返回View 第十步:前端控制器進行視圖渲染 (視圖渲染將模型數據(在ModelAndView對象中)填充到request域) 第十一步:前端控制器向用戶響應結果總結 核心開發步驟 1. DispatcherServlet 在 web.xml 中的部署描述,從而攔截請求到 Spring Web MVC 2. HandlerMapping 的配置,從而將請求映射到處理器 3.HandlerAdapter 的配置,從而支持多種類型的處理器 4.ViewResolver 的配置,從而將邏輯視圖名解析為具體視圖技術 5.處理器(頁面控制器)的配置,從而進行功能處理 6.View是一個接口,實現類支持不同的View類型(jsp、freemarker、pdf...)

SpringMVC工作流程

一、SpringMVC簡介 SpringMVC是一種基于Spring實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,使用了MVC架構模式 的思想,將web層進行職責解耦,并管理應用所需對象的生命周期,為簡化日常開發,提供了很大便利。SpringMVC提供了總開關DispatcherServlet;請求處理映射器(Handler Mapping)和處理適配器 (Handler Adapter),視圖解析器(View Resolver)進行視圖管理;動作處理器Controller接口 (包含ModelAndView,以及處理請求響應對象request和response),配置靈活,支持文件上傳, 數據簡單轉化等強大功能。二、工作流程與介紹 (1)客戶端通過url發送請求 (2-3)核心控制器Dispatcher Servlet接收到請求,通過系統或自定義的映射器配置找到對應的handler, 并將url映射的控制器controller返回給核心控制器。 (4)通過核心控制器找到系統或默認的適配器 5-7)由找到的適配器,調用實現對應接口的處理器,并將結果返回給適配器,結果中包含數據模型 和視圖對象,再由適配器返回給核心控制器(8-9)核心控制器將獲取的數據和視圖結合的對象傳遞給視圖解析器,獲取解析得到的結果,并由視圖解析器 響應給核心控制器(10)核心控制器將結果返回給客戶端

SpringMVC處理請求流程

SpringMVC核心處理流程: 1、DispatcherServlet前端控制器接收發過來的請求,交給HandlerMapping處理器映射器 2、HandlerMapping處理器映射器,根據請求路徑找到相應的HandlerAdapter處理器適配器 (處理器適配器就是那些攔截器或Controller) 3、HandlerAdapter處理器適配器,處理一些功能請求,返回一個ModelAndView對象 (包括模型數據、邏輯視圖名) 4、ViewResolver視圖解析器,先根據ModelAndView中設置的View解析具體視圖 5、然后再將Model模型中的數據渲染到View上 這些過程都是以DispatcherServlet為中軸線進行的。下面簡要說一下,用戶是如何從發出請求到DispatcherServlet前端控制器 1、web.xml中配置了SpringMVC的servlet 2、服務器啟動時就會初始化servlet,然后會根據url-pattern設定的規則攔截用戶發來的請求

SpringMVC 詳細流程 + 入門程序(詳細步驟)

SpringMVC工作流程描述 1.用戶向服務器發送請求時,請求被Spring 前端控制器DispatcherServlet獲取 2.DispatcherServlet對請求URL進行解析(比如我們發送一個url如下的請求http://localhost:8080/SpringMVC/hello.action),就會得到請求資源標示符(URI,相當于就是 上面的hello.action )。然后根據URI,調用處理器映射器(HandlerMapping)獲得該Handler配置的 所有相關對象(包括Handler對象以及Handler對象對應的攔截器),最后以HandlerExecutionChain對象 的形式返回。3.DispatcherServlet獲取上面返回的Handler,并選擇一個適合的HandlerAdapter。(附注:如果成功 獲得HandlerAdapter后,此時將開始執行攔截器的preHandler(...)方法)4.選擇好合適的HandlerAdapter后就會開始執行Handler。在填充Handler的入參過程中,根據配置, Spring將幫你做一些額外的工作(我們不需要管):5. Handler執行完成后,向DispatcherServlet 返回一個ModelAndView對象(包含視圖名或視圖名和模型)6.根據返回的ModelAndView對象,選擇一個合適的ViewResolver返會給DispatcherServlet ;7.ViewResolver結合,Model和View來渲染視圖8.最后將視圖渲染結果返回給客戶端組件名詞解釋:1.DispatcherServlet:前端控制器 等同于以前的Controller, 是整個流程的中心, 負責調用其他組件2.HandlerMapping: 處理器映射器 負責根據請求找到Handler(處理器),springMVC中可以根據不同的映射器實現不同映射, 比如 xml配置方式,注解方式,接口方式等3.Handler:后端控制器 在前端控制器的控制下對具體的用戶請求進行處理,所以一般情況下都需要開發者進行根據需求進行開發。4.HandlerAdapter:處理器適配器 處理Handler,可以對多種類型的處理器進行執行,這是對適配器模式的應用體現。5.ViewResolver : 視圖解析器 負責將處理結果生成view視圖、開發者可以根據需要開發view1.導入我們的spring架包(一般去官網下載即可 4.2版本用的比較多)2.在web.xml配置前端控制器 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <!-- 讓servlet隨服務啟動 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>這里說一下 我們的攔截方式: 1. 攔截固定后綴名的URL : 如 *.action, *.do 2. 攔截所有:設置為/,但是該方法會導致靜態文件(css,js.jpg)被攔截下來不能正常顯示, 所以該方式需要特殊處理注意:不能設置攔截所有為/* 該方式是錯誤的,因為請求action時,當action跳轉到jsp時會 再次被攔截,出現異常:根據jsp路徑找不到映射地址3.設置springmvc的配置文件 <servlet> <init-param> <param-name>contextConfigLocation</param-name><param-value>WEB-INF/springmvc.xml</param-value> </init-param> </servlet>4.開發處理器public class Hello implements Controller{@Overridepublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {List list = new ArrayList<>();list.add("one");list.add("two");ModelAndView mv = new ModelAndView();mv.addObject("list",list);return mv;} }5.在springmvc.xml中配置 <!-- 配置適配器 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> <!-- 處理器映射器 --> <!-- 根據bean的 name 查找Handler , 將action的URL 配置在bean的name中--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean><!-- 配置處理器 --> <bean name="/hello.action" class="com.mt.controller.Hello"></bean> <!-- 配置視圖解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>6.視圖開發 ,jsp文件 <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> asdfadfadfa ${list } </body> </html>開啟服務器后, 發送 http://localhost:8080/SpringMVC/hello.action的請求

?

總結

以上是生活随笔為你收集整理的springMVC请求流程详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。