為什么 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
 

1使用 JSP 的痛點:

  1. 動態資源和靜態資源全部耦合在一起,無法做到真正的動靜分離。服務器壓力大,因為服務器會收到各種http請求,例如css的http請求、js的、圖片的、動態代碼的等等。一旦服務器出現狀況,前后台一起玩完,用戶體驗極差。

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

  3. JSP 必須要在支持Sava的Web服務器里運行(例如tomcat等),無法使用nginx等(nginx據說單實例http並發高達5w,這個優勢要用上),性能提不上來。

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

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

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

  7. 如果JSP中的內容很多,頁面響應會很慢,因為是同步加載。

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

前端框架已經非常成熟和穩定,不需要JSP

前后端分離已經不是什么趨勢了,而是當前B/S架構開發的主流模式。前后端分離之后,前端只負責展現和交互,后端負責核心業務邏輯。前后端通過API進行交互,並且最好符合RESTful風格。服務器端把數據返回給前端就不再關心這些數據用在哪里、如何布局、什么樣式。
 

服務器端的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)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM