中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
【框架】126:springMVC框架初體驗

今天是劉小愛自學(xué)Java的第126天。

感謝你的觀看,謝謝你。

Java應(yīng)用現(xiàn)在基本都是web應(yīng)用,而Web層自然就是web應(yīng)用中非常重要的部分了。

如果說我們前面學(xué)的mybatis對應(yīng)著Dao層,spring對應(yīng)著Service層。

那springMVC就對應(yīng)著Web層,它是spring框架為Web層提供的一個Web框架。

我們以前是直接在Web層中創(chuàng)建servlet,使用框架比其更加地強大,本質(zhì)上差不多。

學(xué)習(xí)內(nèi)容安排如下:

  • Web層的MVC設(shè)計理念。
  • springMVC架構(gòu)流程圖。
  • springMVC入門程序的編寫,同時再結(jié)合代碼畫下其運行流程圖。
  • 今天主要是學(xué)習(xí)其運行流程,代碼后續(xù)能進一步優(yōu)化,明天接著學(xué)。

一、springMVC概述

springMVC重點是后面的MVC,MVC是web層的設(shè)計理念,更重點就是MVC中的C:

①控制器(Controller)

當(dāng)用戶發(fā)來請求時,控制器調(diào)用②來處理,再選擇對應(yīng)的視圖展示給用戶看,也就是③

它能起到總調(diào)度的作用,控制器通常由框架實現(xiàn),使用時基本不需要編寫代碼。

②模型(Model)

通常分為數(shù)據(jù)模型和業(yè)務(wù)模型:

數(shù)據(jù)模型用來存放業(yè)務(wù)數(shù)據(jù)。簡單的理解就是我在Java中用什么來存數(shù)據(jù)?是用某個對象、用Map集合、還是字符串就可以?

業(yè)務(wù)模型包含應(yīng)用的業(yè)務(wù)操作。比如用戶的登錄、注冊……等各種業(yè)務(wù),通常由Java開發(fā)人員編寫完成,代碼量最多。

③視圖(View)

視圖根據(jù)處理后的數(shù)據(jù),用自己的方式展現(xiàn)對應(yīng)頁面給用戶,通常由前端和Java開發(fā)人員共同完成,代碼量較多。

springMVC架構(gòu)

springMVC進一步細(xì)分了MVC,先做個大致了解,文章后面有詳細(xì)的代碼+畫圖說明:

①發(fā)送請求到DispatcherServlet控制器。

②控制器根據(jù)請求路徑到映射器查詢具體的Handler處理器。

映射器根據(jù)用戶請求查找與之對應(yīng)的處理器執(zhí)行鏈再回傳給控制器。

④控制器根據(jù)映射器返回的結(jié)果調(diào)用HandlerAdapter適配器。

⑤適配器調(diào)用具體的處理器處理業(yè)務(wù)并返回ModelAndView到控制器。

⑥控制器將ModelAndView傳遞到ViewResolver視圖解析器

視圖解析器返回具體的視圖到控制器。

⑧控制器渲染視圖后響應(yīng)給用戶。

二、springMVC程序編寫

直接在父工程上創(chuàng)建一個子工程,因為我們Web項目,所以設(shè)置打包方式為war,再配置web.xml文件,項目最終結(jié)構(gòu)圖如下:

具體創(chuàng)建步驟以前講過幾次了,不再贅述。

1配置控制器

在web.xml配置文件中配置:

這個就是servlet的xml配置。

以前是自己寫一個servlet,然后填入其全限定名,現(xiàn)在直接使用springMVC中的即可。

其中*.do表示接受以.do結(jié)尾的請求路徑。

這個.do是一個約定俗成的規(guī)范,就好比我們創(chuàng)建service層的類都是xxxService一樣。

2配置映射器和適配器

springmvc默認(rèn)讀取/WEB-INF/{servlet-name}-servlet.xml這個配置文件。

因為我們在web.xml中的servlet-name配置的是springMVC,所以在WEB-INF目錄下創(chuàng)建springMVC-servlet.xml文件。

和創(chuàng)建spring核心配置文件的方式一樣,只不過文件所在目錄不一樣:

①配置映射器

BeanNameUrlHandlerMapping,映射器的一個子類,交給spring容器管理。

我們看這個類的名字就可以理解其作用:根據(jù)請求url找到對應(yīng)的Handler。

②配置適配器

SimpleControllerHandlerAdapter,適配器的一個子類,交給spring容器管理。

③配置處理器

需要自行創(chuàng)建一個對應(yīng)的類,就相當(dāng)于我們以前創(chuàng)建的servlet,name值對應(yīng)請求路徑。

④配置視圖解析器

InternalResourceViewResolver,視圖解析器的一個子類,交給spring容器管理:

  • prefix:前綴名,指定視圖的位置。
  • suffix:后綴名,這里是jsp文件。

3處理器代碼和視圖頁面編寫

在Java中創(chuàng)建一個類HelloController,名稱一般都是控制器作為后綴,但它其實是一個處理器,其實現(xiàn)了控制器接口。

①ModelAndView

數(shù)據(jù)模型和視圖模型:

  • 這里的數(shù)據(jù)模型就是一個鍵值對:msg就是key,后面的為value。

  • 這里的視圖是hello.jsp文件,為了規(guī)范該文件是放在WEB-INF/view目錄下的。

view目錄就是專門用來存放各種視圖文件的,總之要和視圖解析器中配置的前綴一致。

②設(shè)置視圖名稱

通過setViewName()方法設(shè)定視圖名。

③設(shè)置視圖內(nèi)容

通過setaddObject()方法指定視圖的內(nèi)容,也就是數(shù)據(jù)模型,設(shè)置好后將視圖和模型返回。

在Java代碼中本身是無法直接對jsp文件進行修改的,我們只能設(shè)置一個鍵值對,然后在jsp文件中通過el表達(dá)式動態(tài)獲取。

上述jsp中的${msg}就是獲取msg對應(yīng)的值,在Java中將msg的值修改,jsp也就變化了。

三、springMVC流程解析

做個測試,同時再梳理一遍其運行流程:

1控制器說明

通過流程圖我們其實可以發(fā)現(xiàn),控制器就是起到一個調(diào)度的作用:

很多事情都要問它怎么做,但它自己不做都是交給映射器、適配器、視圖解析器做。

所以控制器叫DispatcherServlet,其中的Dispatcher本身也就是調(diào)度的意思。

2映射器說明

HandlerMapping,看它的名字就知道是來找處理器(Handler)的,那怎么找到呢?

BeanNameUrlHandlerMapping,看名字就是根據(jù)請求url的路徑找對應(yīng)的控制器。

3適配器說明

映射器只是找到了處理器,而這個處理器怎么用,還需要適配器去調(diào)用才行。

4處理器說明

處理器有一個name或者id屬性來表名自己的身份,不然映射器怎么找到你?

同時對應(yīng)Java中的一個處理器類,要處理具體的業(yè)務(wù),返回ModelAndView,也就是視圖和數(shù)據(jù)模型。

5視圖解析器

根據(jù)視圖名,加上前綴和后綴,找到對應(yīng)路徑下的視圖文件,例子中就是hello.jsp

最后

代碼可以簡化,明天繼續(xù)學(xué)習(xí)。

謝謝你的觀看。

如果可以的話,麻煩幫忙點個贊,謝謝你。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
從 Spring Boot到 Spring MVC(注解方式)
第6章 Spring MVC簡介
spingmvc框架課程
深入理解springMVC
springMVC入門
SpringMVC學(xué)習(xí)筆記(二)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服