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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【SpringMVC】概述

發(fā)布時間:2023/11/28 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SpringMVC】概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述:

SpringMVC:是基于spring的一個框架, 實際上就是spring的一個模塊, 專門是做web開發(fā)的。
?? ?? ?? ?? ?? ?? ?? ?理解是servlet的一個升級

SpringMVC就是一個Spring。
Spring是容器,ioc能夠管理對象,使用<bean>, @Component, @Repository, @Service, @Controller
SpringMVC能夠創(chuàng)建對象, 放入到容器中(SpringMVC容器), springmvc容器中放的是控制器對象

我們要做的是:

  1. 使用@Contorller創(chuàng)建控制器對象
  2. 把對象放入到springmvc容器中
  3. 把創(chuàng)建的對象作為控制器使用
  4. 這個控制器對象能接收用戶的請求, 顯示處理結(jié)果,就當(dāng)做是一個servlet使用。
  5. 使用@Controller注解創(chuàng)建的是一個普通類的對象, 不是Servlet。 springmvc賦予了控制器對象一些額外的功能。

web開發(fā)底層是servlet , 而SpringMVC的框架是在servlet基礎(chǔ)上面加入一些功能,做web開發(fā)方便。
springmvc中有一個對象是Servlet : DispatherServlet(中央調(diào)度器)
DispatherServlet: 負責(zé)接收用戶的所有請求, 用戶把請求給了DispatherServlet
之后DispatherServlet把請求轉(zhuǎn)發(fā)給我們的Controller對象, 最后是Controller對象處理請求。

流程:

index.jsp-----DispatherServlet(Servlet)----轉(zhuǎn)發(fā),分配給—Controller對象(@Controller注解創(chuàng)建的對象)
main.jsp?? ?? ?? ?? ??? ?? ?? ?? ??? ?? ?? ?? ??? ?? ?? ?? ??? ?? ?? ?? ? ?? ?? ?? ?? ? MainController
addUser.jsp ?? ?? ?? ?? ??? ?? ?? ?? ??? ?? ?? ?? ??? ?? ?? ?? ??? ?? ?? ?? ??? ?? ?UserController

處理流程:

1)發(fā)起some.do
2)tomcat(web.xml–url-pattern知道 *.do的請求給DispatcherServlet)
3)DispatcherServlet(根據(jù)springmvc.xml配置知道 some.do—doSome())
4)DispatcherServlet把some.do轉(zhuǎn)發(fā)個MyController.doSome()方法
5)框架執(zhí)行doSome()把得到ModelAndView進行處理, 轉(zhuǎn)發(fā)到show.jsp

上面的過程簡化的方式
some.do—DispatcherServlet—MyController

執(zhí)行過程源代碼分析:

  1. tomcat啟動,創(chuàng)建容器的過程
    通過load-on-start標(biāo)簽指定的1,創(chuàng)建DisaptcherServlet對象,
    DisaptcherServlet它的父類是繼承HttpServlet的, 它是一個serlvet, 在被創(chuàng)建時,會執(zhí)行init()方法。
    在init()方法中
    //創(chuàng)建容器,讀取配置文件
    WebApplicationContext ctx = new ClassPathXmlApplicationContext(“springmvc.xml”);
    //把容器對象放入到ServletContext中
    getServletContext().setAttribute(key, ctx);

上面創(chuàng)建容器作用: 創(chuàng)建@controller注解所在的類的對象, 創(chuàng)建MyController對象,
這個對象放入到 springmvc的容器中, 容器是map , 類似 map.put(“myController”,MyController對象)

  1. 請求的處理過程
    1)執(zhí)行servlet的service()
    protected void service(HttpServletRequest request, HttpServletResponse response)
    protected void doService(HttpServletRequest request, HttpServletResponse response)
    DispatcherServlet.doDispatch(request, response){ 調(diào)用MyController的.doSome()方法 }

    doDispatch:springmvc中DispatcherServlet的核心方法, 所有的請求都在這個方法中完成的。

  2. WEB-INF目錄下的數(shù)據(jù),用戶是無法訪問的

流程圖:


執(zhí)行流程:
(1)瀏覽器提交請求到中央調(diào)度器
(2)中央調(diào)度器直接將請求轉(zhuǎn)給處理器映射器。
(3)處理器映射器會根據(jù)請求,找到處理該請求的處理器,并將其封裝為處理器執(zhí)行鏈后返回給中央調(diào)度器。
(4)中央調(diào)度器根據(jù)處理器執(zhí)行鏈中的處理器,找到能夠執(zhí)行該處理器的處理器適配器。
(5)處理器適配器調(diào)用執(zhí)行處理器。
(6)處理器將處理結(jié)果及要跳轉(zhuǎn)的視圖封裝到一個對象 ModelAndView 中,并將其返回給處理器適配器。
(7)處理器適配器直接將結(jié)果返回給中央調(diào)度器。
(8)中央調(diào)度器調(diào)用視圖解析器,將 ModelAndView 中的視圖名稱封裝為視圖對象。
(9)視圖解析器將封裝了的視圖對象返回給中央調(diào)度器
(10)中央調(diào)度器調(diào)用視圖對象,讓其自己進行渲染,即進行數(shù)據(jù)填充,形成響應(yīng)對象。
(11)中央調(diào)度器響應(yīng)瀏覽器。

總結(jié)

以上是生活随笔為你收集整理的【SpringMVC】概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。