🛫更多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進行數據響應以及獲取請求數據
?