我自己是一名從事了多年開發的JAVA老程序員,今年年初我花了一個月整理了一份最適合2019年學習的java學習乾貨,可以送給每一位喜歡java的小夥伴,想要獲取的可以關注我的頭條號並在後臺私信我:【交流】,即可免費獲取。
Spring MVC介紹
Spring MVC 是Spring框架中用於Web應用開發得一個模塊,是Spring提供得一個基於MVC設計模式得優秀得Web開發框架,本質上相當於servlet。在MVC設計模式中,SpringMVC作為控制器(Controller)來建立模型與視圖得數據交互,是結構最清晰得MVC Model2實現,可稱為一個典型得MVC框架。Spring MVC得結構比較複雜,下面我們通過搭建MVC得環境,並實現簡單例子來了解Spring mvc。
1.Spring MVC搭建環境
1.1Spring MVC搭建環境流程
以上為我maven pom配置文件導入的架包,記得版本一定要對應,否則容易引發未知錯誤。
Spring MVC配置:
2.1在web.xml中配置Servlet,定義DispatcherServlet:
Spring MVC是基於Servlet得,那DispatcherServlet是整個Sping mvc框架得核心,它負責截獲請求並將其分派給相應得處理器處理。首先就得進行DispatcherServlet配置,我們在web.xml中進行操作:
<web-app>
在配置得時候,我們通過contextConfigLocation參數來指定Spring MVC配置文件得位置,此處使用Spring資源路徑得方式進行指定(classpath:springmvc-servlet.xml)
2.2創建Spring MVC得配置文件–視圖解析器
在resources目錄下面新建名叫springmvc-servlet.xml得配置文件
3.創建Controller(處理請求得控制器,等於servlet)
在同級目錄下創建controller包,創建一個名叫IndexController的層
4.創建view層(我們用JSP作為視圖進行測試)
在第二步我們配置了視圖解析器,根據定義的prefix(前綴)–WEB-INF/jsp/和suffix(後綴).jsp,我們在WEB-INF下創建jsp包,定義index.jsp
控制器IndexController返回的邏輯視圖名稱為index,通過視圖解析器,會將視圖邏輯名解析為/WEB-INF/jsp/index.jsp,得到真正的視圖名。
5.部署運行(Tomcat)
前面所有工作完成後,在idea中部署tomcat
最後進行測試,在控制檯輸入http://localhost:8080/ch09spingmvcshili_war/index1
2.Spring MVC框架的請求處理流程
下面我們通過一張圖來了解下Springmvc的請求流程
首先用戶發送到請求到前端控制器(DispatcherServlet),前端控制處理器根據請求信息(URL)來選擇哪個控制器(Controller)來進行處理,並把請求委託給它
頁面控制器接收到請求後,進行業務處理,處理完畢後返回一個ModelAndView
前端控制器收回控制權,然後根據返回的邏輯視圖名,選擇相應的真正視圖,並把模型數據傳入以便將視圖進行渲染。
2.1Spring MVC框架的特點
- 清晰的角色劃分。Spring MVC在model,view,controller方面提供了一個非常清晰的角色劃分
- 靈活的配置功能。因為Spring的核心時IoC,同樣在實現MVC上,也可以把各種類當作Bean來通過XML進行配置。
- 提供了大量的控制器接口和實現類。開發者可以使用Spring提供的控制器實現類,也可以自己實現控制器接口。
- 真正做到與view層的實現無關,使用更加靈活
- 國際化支持
- 面向接口編程
- Spring提供了Web應用開發的一整套流程。
2.2MVC的參數傳遞
前面我們搭建了MVC的環境以及實現了controller和view的映射,簡單的實現了頁面導航,下面我們來實現把view層的數據傳遞以及controller把值傳給前臺
需要注意的是?後面的username必須對應方法名字,才能獲取到,這裡我們只是測試拼接,運行正確會在頁面上顯示,admin!!
2.2.1view層傳輸數據到controller
使用一個form表單做示範,例如我現在要把form表單上text得值在後臺進行處理,並且把你輸入得值打印到另外一個頁面上進行顯示:
index.jsp:
indexs.jsp:
我們把需要得頁面和後臺準備好之後開始測試,啟動tomcat:
從這裡可以看到,我們測試成功了。
3.整合SSM項目
- 導入jar包
上面為我整個項目得所有架包,文件上傳得架包可以不加!!主要添加得還是spring得核心架包。
2.編寫配置文件
前面我們已經會編寫Springmvc得配置文件了,現在我們只需要配置Spring和mybatis得配置文件了,下面直接貼代碼
mybatis-config.xml:
和log4j.properties:
applicationContext.xml:
編寫完得項目結構如圖:
最後我們只要有在springmvc-servlet.xml中把spring導入進去
springmvc-servlet.xml:
這樣我們得配置文件就編寫成功了。
4. 運行測試
我們使用一個簡單得登陸來測試ssm部署是否成功,首先編寫登陸需要得mapper層和biz層,這裡不做示範,下面貼上controller層得代碼:
login.jsp:
最後我們進行測試
這樣我們得smm項目部署成功,如果有什麼疑問,可以私聊把項目發你!!
3.1靜態資源文件得引用
我們會發現如果要引入jss文件或者css,會發現它們無法起效得,因為web.xml中得DispatcherServlet請求映射會攔截所有web容器得請求,現在我們在mvc得配置文件中進行映射:
首先在webapp下面創建靜態資源包
再springmvc-servlet.xml中添加:
實際引用:
這裡也必須要加項目得絕對路徑!!這樣就配置成功了
閱讀更多 程序員小皮 的文章