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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

SpingMVC 执行的流程

發(fā)布時(shí)間:2025/3/15 c/c++ 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpingMVC 执行的流程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一:SpringMVC的開發(fā)步驟

①:在web.xml文件中定義前端控制器DispatcherServlet來攔截用戶請(qǐng)求。

  由于Web應(yīng)用是基于請(qǐng)求/響應(yīng)結(jié)構(gòu)的應(yīng)用,所以不管哪個(gè)MVC Web框架,都需要在web.xml中配置該框架的核心Servlet或Filter,這樣才可以讓該框架介入web應(yīng)用中。

<!-- 定義Spring MVC的前端控制器-->

  <servlet>

    <servlet-name>springmvc</servlet-name>

    <sevlet-class>org.springframework.web.servlet.DispacherServlet</servlet-class>

    <init-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>/WEB-INF/spring-config.xml</param-value>

    </init-param>

    <load-on-startup>1</load-on-stratup>

  </servlet>

  <servlet-mapping>

    <servlet-name>springmvc</servlet-name>

    <url-pattern>/</url-pattern>

  </servlet-mapping>

②:如果要以POST方式提交請(qǐng)求,則定義包含表單數(shù)據(jù)的JSP頁面。如果僅僅只是以GET方式發(fā)送請(qǐng)求,則無需經(jīng)過這一步。

③:定義處理用戶請(qǐng)求的Handle類,可以實(shí)現(xiàn)Controller接口或者使用@Controller注解。

④:配置Handle

 <!--配置Handle,映射“/hello”請(qǐng)求-->

 <bean name="/hello" class="org.fkit.controller.HelloController" />

    或者使用注解來配置

    @Controller

    public class HelloController{

      @RequestMapping(value="/hello")

      public ModelAndView hello(){

        .......

      }

    }

⑤:編寫視圖資源

  當(dāng)Handle處理用戶請(qǐng)求結(jié)束后,通常會(huì)返回一個(gè)ModelAndView對(duì)象,該對(duì)象中應(yīng)該包含返回的視圖名或視圖名的模型。

二:SpringMVC的執(zhí)行步驟

?

①:用戶向服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求被Spring的前端控制器DispatcherServlet截獲。

②:DispatcherServlet對(duì)請(qǐng)求的URL進(jìn)行解析,得到URI。然后根據(jù)該URI,調(diào)用HandlerMapping獲得該Handler配置的所有相關(guān)的對(duì)象,包括Handler對(duì)象以及Handler對(duì)象對(duì)應(yīng)的攔截器,這些對(duì)象會(huì)被封裝到一個(gè)HandlerExceptionChain對(duì)象當(dāng)中返回。

③:DispatcherServlet根據(jù)獲得的Handler,選擇一個(gè)合適的HandlerAdapter。HandlerAda,pter的設(shè)計(jì)符合面向?qū)ο笾械膯我宦氊?zé)原則,代碼架構(gòu)清晰,便于維護(hù),最重要的是,代碼可復(fù)用性高。HandlerAdapter會(huì)被用于處理多種handler,調(diào)用Handler實(shí)際處理請(qǐng)求的方法,例如hello方法。

④:提取請(qǐng)求中的模型數(shù)據(jù),開始執(zhí)行Handler(Controller)。在填充Handler的入?yún)⑦^程中,根據(jù)配置,spring 將幫你做一些額外的工作。

  -->消息轉(zhuǎn)換。將請(qǐng)求消息(如Json、xml等數(shù)據(jù))轉(zhuǎn)換成一個(gè)對(duì)象,將對(duì)象轉(zhuǎn)換成指定的響應(yīng)信息。

  -->數(shù)據(jù)轉(zhuǎn)換。對(duì)請(qǐng)求笑死進(jìn)行數(shù)據(jù)轉(zhuǎn)換,如String 轉(zhuǎn)換成Integer、Double等。

  -->數(shù)據(jù)格式化。對(duì)請(qǐng)求消息進(jìn)行數(shù)據(jù)格式化,如將字符串轉(zhuǎn)換成格式化數(shù)字或格式化日期等。

  -->數(shù)據(jù)驗(yàn)證。驗(yàn)證數(shù)據(jù)的有效性(如長(zhǎng)度、格式等),驗(yàn)證結(jié)果存儲(chǔ)到BindingResult或error中。

⑤:Handler執(zhí)行完成后,向DispatcherServler但會(huì)一個(gè)ModelAndView對(duì)象,ModelAndView對(duì)象中應(yīng)該包含視圖名或視圖名和模型。

⑥:根據(jù)返回的ModelAndView對(duì)象,選擇一個(gè)合適的ViewResolver(視圖解析器)返回給DispatcherServlet。

⑦:ViewResolver結(jié)合Model 和View來渲染視圖。

⑧:將視圖渲染結(jié)果返回給客戶端

轉(zhuǎn)載于:https://www.cnblogs.com/gaofz/p/7201138.html

總結(jié)

以上是生活随笔為你收集整理的SpingMVC 执行的流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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