javascript
springMVC——SpringMVC原理详细解析
SpringMVC
談到這個問題,我們不得不提提之前 Model1 和 Model2 這兩個沒有 Spring MVC 的時代。
?
----Model1 時代?: 很多學 Java 后端比較晚的朋友可能并沒有接觸過 Model1 模式下的 JavaWeb 應用開發。在 Model1 模式下,整個 Web 應用幾乎全部用 JSP 頁面組成,只用少量的 JavaBean 來處理數據庫連接、訪問等操作。這個模式下 JSP 即是控制層又是表現層。顯而易見,這種模式存在很多問題。比如①將控制邏輯和表現邏輯混雜在一起,導致代碼重用率極低;②前端和后端相互依賴,難以進行測試并且開發效率極低;
?
----Model2 時代?:學過 Servlet 并做過相關 Demo 的朋友應該了解“Java Bean(Model)+ JSP(View,)+Servlet(Controller) ”這種開發模式,這就是早期的 JavaWeb MVC 開發模式。Model:系統涉及的數據,也就是 dao 和 bean。View:展示模型中的數據,只是用來展示。Controller:處理用戶請求都發送給 ,返回數據給 JSP 并展示給用戶。
?
Model2 模式下還存在很多問題,Model2的抽象和封裝程度還遠遠不夠,使用Model2進行開發時不可避免地會重復造輪子,這就大大降低了程序的可維護性和復用性。于是很多JavaWeb開發相關的 MVC 框架應該運而生比如Struts2,但是 Struts2 比較笨重。隨著 Spring 輕量級開發框架的流行,Spring 生態圈出現了 Spring MVC 框架, Spring MVC 是當前最優秀的 MVC 框架。相比于 Struts2 , Spring MVC 使用更加簡單和方便,開發效率更高,并且 Spring MVC 運行速度更快。
?
MVC 是一種設計模式,Spring MVC 是一款很優秀的 MVC 框架。Spring MVC 可以幫助我們進行更簡潔的Web層的開發,并且它天生與 Spring 框架集成。Spring MVC 下我們一般把后端項目分為 Service層(處理業務)、Dao層(數據庫操作)、Entity層(實體類)、Controller層(控制層,返回數據給前臺頁面)。
?
對于springMVC簡單原理的圖示,我比較喜歡之前在網上看到的以為大V的圖:
那么SpringMVC web的原理呢,還是這位大佬的圖示和解釋:
?
流程說明(重要):
1.客戶端(瀏覽器)發送請求,直接請求到?DispatcherServlet(前端控制器)。
2.DispatcherServlet?根據請求信息調用?HandlerMapping(處理器映射器),解析請求對應的?Handler。
3.解析到對應的?Handler(也就是我們平常說的?Controller?控制器)后,開始由?HandlerAdapter?(處理器適配器)處理。
4.HandlerAdapter?會根據?Handler來調用真正的處理器開處理請求,并處理相應的業務邏輯。
處理器處理完業務后,會返回一個?ModelAndView?對象,Model?是返回的數據對象,View?是個邏輯上的?View。
5.ViewResolver?(視圖解析器)會根據邏輯?View?查找實際的?View。
6.DispaterServlet?把返回的?Model?傳給?View(視圖渲染)。
7.把?View?返回給請求者(瀏覽器)
?
總結
以上是生活随笔為你收集整理的springMVC——SpringMVC原理详细解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大剑无锋----SpringMVC原理详
- 下一篇: 无招胜有招之锁