爲何 JSP 要被淘汰?

原文連接: 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

1使用 JSP 的痛點:

  1. 動態資源和靜態資源所有耦合在一塊兒,沒法作到真正的動靜分離。服務器壓力大,由於服務器會收到各類http請求,例如css的http請求、js的、圖片的、動態代碼的等等。一旦服務器出現情況,先後臺一塊兒玩完,用戶體驗極差。html

  2. 前端工程師作好html後,須要由Java工程師來將html修改爲jsp頁面,出錯率較高(由於頁面中常常會出現大量的js代碼),修改問題時須要雙方協同開發,效率低下。前端

  3. JSP 必需要在支持Sava的Web服務器裏運行(例如tomcat等),沒法使用nginx等(nginx聽說單實例http併發高達5w,這個優點要用上),性能提不上來。java

  4. 第一次請JSP,必需要在web服務器中編譯成servlet,第一次運行會較慢。nginx

  5. 每次請求JSP都是訪問Servlet再用輸出流輸出的html頁面,效率沒有直接使用html高。web

  6. JSP 內有較多標籤和表達式,前端工程師在修改頁面時會捉襟見肘,遇到不少痛點。spring

  7. 若是JSP中的內容不少,頁面響應會很慢,由於是同步加載。編程

基於上述的一些痛點,咱們應該把整個項目的開發權重往前移,實現先後端真正的解耦!
 後端

前端框架已經很是成熟和穩定,不須要JSP

先後端分離已經不是什麼趨勢了,而是當前B/S架構開發的主流模式。先後端分離以後,前端只負責展示和交互,後端負責核心業務邏輯。先後端經過API進行交互,而且最好符合RESTful風格。服務器端把數據返回給前端就再也不關心這些數據用在哪裏、如何佈局、什麼樣式。
 spring-mvc

服務器端的Spring MVC/WebFlux 和 Spring Boot已經開始拋棄JSP

從Spring 5開始,在原有的基於Servlet技術的Spring MVC以外增長了一個新的編程模型,就是Spring WebFlux。

Spring WebFlux是響應式非阻塞的,並且不支持Servlet API,因此也就不支持JSP!
 

一個現代主流Java Web應用,無論前端、後端、仍是微服務架構,都在淘汰JSP。其中,Java服務器端主流技術仍是Spring(Spring Boot + Spring MVC + Spring Cloud)。

相關文章
相關標籤/搜索