【SSM面向CRUD編程專欄 4】 Spring集成web環境 SpringMVC初識

🛫更多ssm知識見SSM_面向CRUD編程專欄

🚕本博客總結自黑馬程序員的ssm框架視頻

🚒博主對于該知識尚在學習階段

🚄如果發現存在問題請毫不吝嗇的指出

🚀🚀扎哇太棗糕的博客主頁🚀🚀

?

目錄

1 Spring集成web環境

2 SpringMVC簡介


1 Spring集成web環境

ServletContextListener監聽器

????????使用原始的new ClassPathXmlApplicationContext獲取應用上下文對象的方式,每一次都會去加載這個xml配置文件創建應用上下文對象來獲取Bean。于是為了降低這種頻繁加載配置文件創建對象的損失,可以在web項目中使用ContextLoaderListener類實現ServletContextListener接口監聽器來監聽web應用的啟動,web應用啟動的時候就加載配置文件創建應用上下文對象并將其存儲在servletContext域中,這樣就可以在web應用的任意位置從域中獲取應用上下文對象。

第一步:創建一個類充當ContextLoaderListener監聽器,重寫初始化方法將應用上下文對象存儲在域中

?第二步:通過域獲取應用上下文對象?

第三步:運行?

對上述代碼的兩處優化

????????主要是servlet類中有兩處耦合死了,可以借助全局化初始參數和工具類實現解耦合。

全局初始化參數(web.xml)

??

?工具類

創建一個工具類WebApplicationContextUtils類傳參servletcontext域對象返回app對象

??

Spring對ServletContextListener監聽器的優化

????????通過前面對ServletContextListener監聽器的講解,過渡到Spring對ServletContextListener監聽器的優化,Spring提供了一個ContextLoaderListener監聽器其底層就是對上面寫的代碼的一系列封裝,該監聽器內部加載xml配置文件創建應用上下文對象并存儲在ServletContext域中,提供一個客戶端工具WebApplicationContextUtils供使用者獲取應用上下文對象。

第一步:導入spring-web依賴坐標

?第二步: 配置web.xml文件?第三步:servlet類使用?

2 SpringMVC簡介

? ? ? ? SpringMVC是一種基于Java語言實現的MVC設計模型(Model View Controller)的請求驅動型的輕量級web框架,屬于是SpringFrameWork的后續產品,已經融合在Spring Web Flow中。它是一套注解,讓一個簡單的Java類成為處理請求的控制器,無需使用任何接口,同時支持RESTful編程風格的請求。大致而言SpringMVC的模型就是下面的這張圖

?

?參照是上面的圖總結出SpringMVC模式的開發步驟,以SpringMVC的快速入門案例為例

第一步:導入SpringMVC的spring-webmvc依賴,用于使用SpringMVC內部的前端控制器?

第二步:web.xml文件中配置SpringMVC的前端控制器DispatcherServlet?

第三步:創建Controller層、對應的Controller類和視圖頁面

?

?

第四步:使用注解配置Controller類中的方法的映射地址

?

第五步:創建并配置SpringMVC的核心文件spring-mvc.xml配置文件并在web.xml里將它的位置告知SpringMVC

?

?

第六步:客戶端發起請求測試

點綠色小三腳運行web項目,如果控制臺報錯或者無反應的話可以考慮關了進行如下操作?

???

像上述案例的SpringMVC執行過程如下

?

1、用戶發送請求至前端控制器DispatcherServlet(前端控制器包含在spring-webmvc依賴中,導入之后才能正常使用)

2、?前端控制器DispatcherServlet收到請求之后調用處理映射器HandlerMapping解析請求資源

3、處理映射器HandlerMapping找到具體的處理器(根據xml配置、注解查找)、生成處理器對象以及處理器攔截器對象(如果有的話就生成)一并返回給前端控制器DispatcherServlet

4、前端控制器DispatcherServlet調用處理器適配器HandlerAdapter

5、處理器適配器HandlerAdapter經過適配調用具體的處理器Handler(也就是自己寫的controller,也叫后端控制器)

6、處理器Handler(Controller)執行返回ModelAndView

7、處理器適配器HandlerAdapter將處理器Handler(Controller)返回的ModelAndView返回給前端控制器DispatcherServlet

8、前端控制器DispatcherServlet將ModelAndView傳給視圖解析器ViewReslover

9、視圖解析器ViewReslover解析后返回具體的View

10、前端控制器DispatcherServlet根據View渲染視圖

11、前端控制器DispatcherServlet返回響應給用戶

知識點查漏補缺:

????????@RequestMapping:用于建立請求URL和請求方法之間的對應關系,眾所周知URL的訪問是分級的,如果@RequestMapping注解加在類上的話表示的是一級訪問目錄,如果@RequestMapping注解加在方法上的話就表示是二級目錄與方法所在類的一級目錄一起形成虛擬路徑。注解的屬性有:

  • value:用于指定請求路徑的url,默認直接給一個以/開頭的字符串,而不用鍵值對的方式給value賦值
  • method:用于指定請求的方式,都是枚舉類型的值RequestMethod.常量名一般是GET或者POST
  • params:限定請求參數的條件,支持簡單的表達式,要求參數key和value必須和配置的一模一樣

????????組件掃描:組件掃描在xml文件中配置,在配置組件掃描之前先引入命名空間?

然后通過<context:component-scan>標簽進行配置組件掃描,之前一直用的都是直接指定包名掃描包下面的注解?

現在直接按照注解的類型進行掃描??配置視圖解析器,使之擁有默認的前綴和后綴,也就是當將所有的.jsp文件都放在jap文件夾下的時候,可以指定重定向的網頁路徑的前綴和后綴使之可以直接跳轉,不必在return的時候寫過多的多級路徑。?

?因為有上圖兩個set方法,所以在xml文件的配置時,很容易就聯想到使用<property>標簽的形式直接注入數據,于是有了下一步

?

設置了前綴字符串和后綴字符串之后,就可以下面的return字符串拼接成一個url路徑對jsp文件夾下的.jsp文件進行映射了?

好了,其他的知識明天再學,下課!?

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

上一篇:【SSM面向CRUD編程專欄 3】關于黑馬程序員最全SSM框架教程視頻,P37集老師跳過的模塊創建以及tomcat下載安裝配置和運行等諸多問題

下一篇:【SSM面向CRUD編程專欄 5】使用SpringMVC進行數據響應以及獲取請求數據

?

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

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

相關文章

IntelliJ IDEA里的項目搞崩了怎么辦,本地歷史版本回退拯救你崩潰的心靈

&#x1f4a5;寫在前面&#xff1a; 如果你還沒有讀過雨果的悲慘世界也沒有讀過余華的活著&#xff0c;那你可以看看我今天早上的經歷&#xff0c;如果不想聽我胡侃的話&#xff0c;直接進入正題&#xff1a; 目錄 本地歷史的強大 今天早上打開IntelliJ IDEA繼續ssm模塊的代碼練…

【SSM面向CRUD編程專欄 5】使用SpringMVC進行數據響應以及獲取請求數據

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 6】springMVC攔截器、異常處理 jdbcTemplate

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 7】springAop 事務控制

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 8】一篇博客快速上手使用MyBatis進行CRUD

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

【SSM面向CRUD編程專欄 9】SSM框架整合

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

三萬字速通SSM框架入門知識點,快速上手CRUD

&#x1f6eb;更多ssm知識見SSM_面向CRUD編程專欄 &#x1f695;本博客總結自黑馬程序員的ssm框架視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 目…

無法在web.xml或使用此應用程序部署的jar文件中解析絕對uri:[http://java.sun.com/jsp/jstl/core]

問題簡介 本人是在進行一個ssm框架項目的編寫的時候&#xff0c;在數據庫中查詢到所有的商品信息并返回到頁面使用EL表達式進行展現&#xff0c;但是使用tomcat 9.0.58運行的時候報錯會出現以下報錯情況。 頁面報錯&#xff1a; 控制臺報錯&#xff1a; 解決方法 首先看看是不…

check the manual that corresponds to your MySQL server version for the right syntax to use near

首先判斷自己是在什么情況下報的錯&#xff0c;如果是MyBatis的SQL報錯的話&#xff0c;建議直接點擊目錄跳轉到MyBatis時SQL報錯&#xff0c;避免浪費時間。如果本文能夠對你有所幫助的話&#xff0c;還請在評論區多多支持 目錄 &#x1f37b;運行SQL語句、SQL文件等報錯 &…

MyBatis的逆向工程工具,自動生成數據庫對應的POJO實體類、mapper接口、增刪改查mapper.xml文件

下載MyBatis的逆向工程工具&#xff0c;并解壓縮到一個不包含中文字符的文件夾下&#xff0c;我直接放到了D盤下&#xff0c;下載地址&#xff1a;MyBatis逆向工程工具下載 如何使用MyBatis的逆向工程工具 下載之后使用idea在一個新窗口中打開&#xff0c;選中工具文件之后&am…

『收藏向 期末SSM課設救急』 教你從搭建到測試運行手擼一個SSM項目實戰,附帶源碼,前端頁面、解析和一般遇到的問題(排雷)

&#x1f6eb;ssm知識學習見SSM_面向CRUD編程專欄 &#x1f695;本項目來自動力節點的【米米商城】 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; 項目…

【SpringBoot 2】(一)基礎知識了解學習

&#x1f6eb;更多知識總結見SpringBoot 2專欄 &#x1f695;本篇知識點總結自尚硅谷雷神的視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; ? 目錄…

【SpringBoot 2】(二)快速入門案例HelloWorld

&#x1f6eb;更多知識總結見SpringBoot 2專欄 ( &#x1f695;本篇知識點總結自尚硅谷雷神的視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; ? 目…

【SpringBoot 2】(三)SpringBoot相較于Spring的特點

&#x1f6eb;更多知識總結見SpringBoot 2專欄 &#x1f695;本篇知識點總結自尚硅谷雷神的視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客主頁&#x1f680;&#x1f680; ? 目錄…

井通swtc能不能漲到2元_買一支2塊到3塊之間的股票,買幾十萬股嗎?這樣操作效果怎么樣?...

有很多新股民有一種看法&#xff0c;認為高價股風險很大&#xff0c;那么可不可以買2到3元的低價股&#xff0c;是不是風險就很小&#xff0c;以后上漲的力度就會很大&#xff1f;這是很多股民都存在的一個誤區&#xff0c;也是很多股市的所謂高手的誤導&#xff0c;他們說&…

cad應用程序的組件中發生了未經處理的異常_什么是CAD/CAM?

與許多其他行業一樣&#xff0c;牙科技術的生產階段也越來越自動化。由于牙科實驗室工作的價格已成為治療計劃和治療的主要因素&#xff0c;因此自動化可以在西歐和美國等高薪地區實現更具競爭力的生產。現在&#xff0c;計算機技術的進步使高性價比的單件生產成為可能。近年來…

【SpringBoot 2】(四)詳析SpringBoot的常用注解

&#x1f6eb;更多知識總結見SpringBoot 2專欄 &#x1f695;本篇知識點總結自尚硅谷雷神的視頻 &#x1f692;博主對于該知識尚在學習階段 &#x1f684;如果發現存在問題請毫不吝嗇的指出 &#x1f680;&#x1f680;扎哇太棗糕的博客首頁&#x1f680;&#x1f680; 目錄 向…

蘋果7手機嚴重卡頓_蘋果手機僅配備4GB運存都不會卡頓,安卓系統為何要更多內存?...

原標題&#xff1a;蘋果手機僅配備4GB運存都不會卡頓&#xff0c;安卓系統為何要更多內存&#xff1f;眾所周知&#xff0c;安卓系統歷經十余年的發展&#xff0c;目前最低的運行需求是8GB內存&#xff0c;如果是旗艦機的話還要標配12GB或更高。但是前幾天剛發布的iPhone12&…

python調用窗口找到文件,使用Python在Mac OS X中查找當前活動窗口

Is there a way to find the application name of the current active window at a given time on Mac OS X using Python?解決方案This should work:#!/usr/bin/pythonfrom AppKit import NSWorkspaceactiveAppName NSWorkspace.sharedWorkspace().activeApplication()[NSAp…

IntelliJ IDEA自動生成自定義的類注釋和方法注釋

目錄 自定義的類注釋 自定義方法注釋 實現效果&#xff1a;不用手寫即可自動生成如下圖的類上注釋和方法上的注釋&#xff0c;我們只需要填寫方法注釋的參數和返回值文字描述即可&#xff0c;大大節省了代碼開發的時間提高代碼開發效率。 &#x1f315; 自定義的類注釋 Fil…