在JavaWeb的技術體系中,Servlet和JSP是重要的組成部分,其中Servlet起到的主要作用是完成功能的“導航”,而JSP的主要作用是完成內容的呈現,當然JSP也可以完成一些邏輯操作,雖然并不推薦這么做。另外,在標準的JavaWeb開發(fā)體系中,還有一個重要的組成部分就是代表業(yè)務邏輯封裝的JavaBean,這樣一個較為完整的Web開發(fā)方案就形成了。
采用Servlet、JSP和JavaBean的組合是早期JavaWeb開發(fā)的主要解決方案,Servlet充當控制器(Control),JSP充當視圖(View),而JavaBean充當模型(Model),這就是早期JavaWeb開發(fā)的MVC解決方案,也被稱為“Model2”解決方案。這種方案雖然技術路線比較清晰,但是問題也比較明顯,就是當業(yè)務規(guī)模比較大時,有兩個明顯的弊端,第一個弊端是Servlet會變得非常臃腫,第二個弊端是性能擴展性較差。
所以在JavaWeb開發(fā)體系當中通常需要采用框架來解決這兩個問題,框架開發(fā)雖然不是必須的,但是通過框架能夠明顯提升團隊的開發(fā)效率,這也是框架被廣泛采用的重要原因。從目前Java開發(fā)框架的應用情況來看,Spring幾乎能解決大部分問題,可以說Spring經過多年的發(fā)展,已經形成了一個一站式解決方案。對于初學者來說,學習Spring是個不錯的選擇。
Spring早期的主要作用是解決傳統(tǒng)Model2開發(fā)體系結構中的性能問題,對標的是EJB體系結構,Spring的主要優(yōu)點是“輕”,雖然在某些方面的表現不如EJB體系,但是從開發(fā)者的角度來看,并不愿意把百分之九十的時間浪費在可能出現幾率比較小的問題上(比如異質異構數據庫的事務處理)。因此,Spring框架得到了廣泛的使用。
目前Spring已經形成了一個龐大的生態(tài)體系,包含了眾多解決方案。對于初學者來說,建議從SpringBoot開始學起,進而能夠了解SpringMVC以及SpringCloud相關解決方案。SpringBoot是Spring推出的一個簡化版Spring方案,對于開發(fā)者來說,可以更加方便的完成Web開發(fā)。