原文連接: https://www.baidu.com/link?url=ewQ_DU2i8g9N4CgX8IbzEK44LvtlLx2tVSlPWGj-_35YT02al0s_hrcKAaMW0yjp&wd=&eqid=d0c211620002ea48000000065eca25f8
原文連接: https://www.baidu.com/link?url=6eaviV_L2sOq43Rl_2a68AhSOij8RXvGbbxYALIHzUWqmgj8lUqY9XpxzweZHjXG&wd=&eqid=d0c211620002ea48000000065eca25f8
css
動態資源和靜態資源所有耦合在一塊兒,沒法作到真正的動靜分離。服務器壓力大,由於服務器會收到各類http請求,例如css的http請求、js的、圖片的、動態代碼的等等。一旦服務器出現情況,先後臺一塊兒玩完,用戶體驗極差。html
前端工程師作好html後,須要由Java工程師來將html修改爲jsp頁面,出錯率較高(由於頁面中常常會出現大量的js代碼),修改問題時須要雙方協同開發,效率低下。前端
JSP 必需要在支持Sava的Web服務器裏運行(例如tomcat等),沒法使用nginx等(nginx聽說單實例http併發高達5w,這個優點要用上),性能提不上來。java
第一次請JSP,必需要在web服務器中編譯成servlet,第一次運行會較慢。nginx
每次請求JSP都是訪問Servlet再用輸出流輸出的html頁面,效率沒有直接使用html高。web
JSP 內有較多標籤和表達式,前端工程師在修改頁面時會捉襟見肘,遇到不少痛點。spring
若是JSP中的內容不少,頁面響應會很慢,由於是同步加載。編程
基於上述的一些痛點,咱們應該把整個項目的開發權重往前移,實現先後端真正的解耦!
後端
先後端分離已經不是什麼趨勢了,而是當前B/S架構開發的主流模式。先後端分離以後,前端只負責展示和交互,後端負責核心業務邏輯。先後端經過API進行交互,而且最好符合RESTful風格。服務器端把數據返回給前端就再也不關心這些數據用在哪裏、如何佈局、什麼樣式。
spring-mvc
從Spring 5開始,在原有的基於Servlet技術的Spring MVC以外增長了一個新的編程模型,就是Spring WebFlux。
Spring WebFlux是響應式非阻塞的,並且不支持Servlet API,因此也就不支持JSP!