1. 程式人生 > >JSP還有必要學嗎 這篇文章告訴你

JSP還有必要學嗎 這篇文章告訴你

java勸退教程-作業系統篇(三)

本篇文章,我們來講講技術,系統演進的過程對我們java開發帶來的影響。本文可能會涉及到一些技術名詞,不懂沒有關係,先混個眼熟,我們後面會一個個詳細介紹。下面會列舉三個不同時期的技術,因為同時期也會有各種各樣的技術,所以我們只介紹java的技術演進。

混合開發時代

天地初開,萬物混沌,這是一個讓人既興奮又無奈的時代。因為JSP的流行,所以大量的公司採用JSP來開發系統。興奮,因為他確實比較方便,特別是有了struts2的加持,使得jsp如虎添翼。但是,struts2的架構雖然優秀,可是顯得非常的臃腫,繁雜,業務簡單的系統還好,稍微複雜點的系統,光是配置檔案就能整的你沒有脾氣。撇開配置檔案不說,更讓人頭疼的是前後端程式碼在一起,要麼一個後端程式設計師把前端任務都做了,但是效果不好,因為後端程式設計師與專業前端技能上還是有差距的。要麼後端做完給前端,出問題再還給後端,這個給專案的正常推進以及專案管理帶來十分大的困難。

我們看看JSP帶來的問題

java工程師:我這個功能寫完了,你把前端效果調一下唄

前端工程師:我看了一下拿不到資料啊,我怎麼調

java工程師:資料我給了啊

前端工程師:那為什麼顯示不出來

java工程師:我寫了個邏輯控制啊,你需要傳遞XX引數就能看到了啊

前端工程師:這個邏輯前端就能做啊,為啥要到後端處理再給我?

java工程師:#¥@#¥¥%##¥%.....

前端工程師:$%^$%@#$......

其實,最根本的原因就是,JSP在MVC(瞭解即可,後面單獨介紹)結構中屬於展示層,但是在JSP又可以寫業務甚至做資料層的事,這就造成了設計上的困難與開發中的混亂。在這種情況下,亟需一種能夠將展示層與業務分離開的技術,這樣才能加快軟體開發的進度,並且更加容易設計和維護系統。


前後分離時代

為了解決以上問題,技術在前後端不斷的進化。


springmvc

java從jsp轉向了restful結構,springMCV一躍而起,將struts2遠遠拋在身後,springMVC最大的方便就是配置檔案大大降低,甚至已經做到了0配置。通過註解替代配置確實是一個令人興奮的做法。前後端不再需要往同一個檔案裡寫邏輯,而是通過json的方式傳輸資料。java工程師可以不需要再去處理前端問題,而將工作重點轉向了業務的編寫。一般來說,後端開發的過程中會有介面文件,告訴前端人員如何獲取資料,資料結構是什麼樣的,這樣可以極大的方便前端人員開發。

前端技術也在不斷的演進之中,與後端進行分離以後,採用ajax技術對伺服器進行請求,而基於restful風格的專案也能夠很好的處理前端的請求,前端也可以專注於自己的元件化,工程化改造。

我們嗯看看前後分離的效果

前端工程師:我頁面做完了需要資料

java工程師:好的,文件已經寫好,你照著文件上的路徑去獲取資料就行了

這樣的結構無疑大大提升了工作效率和降低了溝通成本。


移動應用時代

到了移動應用時代,後端不再單單為WEB提供資料介面了,因為會有各種客戶端都會請求伺服器,比如手機,pad等。到了這個時候,已經是必須將前端和後端分開,因為現在的前端不僅僅包含WEB頁面了。

由於現在的企業級應用,規模在不斷的擴大,架構也越來越複雜,所以到目前,又出現了新的前後端技術來接受挑戰。比如spring的spring boot 這個簡直就是打開了新世界的大門,讓開發過程更加便捷,比如開發一個專案會需要很多jar包,很多包又會有不同的版本,每次組織一次開發工具都會勞民傷財,累覺不愛,spring boot出現以後你就不怎麼需要去管理這些基礎設施了,當然他還有很多其他厲害的功能,我們後面再說。總的說來,你可以更加的專注於業務的開發,而不是將大把的時間拿去調整專案的配置。


angular - react - vue

前端也出現了很多革命性的框架,比如擁抱經典的VUE,一切都是JavaScript 的react,他們帶來的是構建大型工程的便利以及極高的效能。


看完這個,很多人覺得我是不是可以不用學習jsp了?其實如果你想深入的學習下去,jsp還是很有必要的,因為jsp與servlet密不可分,但是你知不知道spring mvc 是基於servlet 實現的?所以學習的時候還是有要科學的方法和步驟,這樣不但能學到東西,還能學的紮實。