JSP、Servlet和Spring MVC

今年剛接觸JavaWeb的時候碰巧認識了一幫老師做後端的哥們,我倆平時用的最多的也都是Java。

我:“老哥,我想給我那個項目做一個服務器應用程序,怎麼搞啊”

老哥:“Spring你知道嗎”

我:“聽說過”

老哥:“入下門”

我:“好嘞”

那會兒我倆在參加一個活動,也沒細聊,有些內容我也記不住了,跟我講了些前端的基本知識,還有就是我記住了Spring這個詞。

JSP、Servlet和Spring MVC的前世今生

Java Servlet技術簡稱Servlet技術, 是Java開發Web應用的底層技術。

但由於Servlet用起來太複雜了,SUN公司發佈了JavaServerPages(JSP)技術,以進一步簡化servlet程序開發。

自從Servlet和JSP技術誕生後,湧現出大量的基於Java的Web框架來幫助開發人員快速編寫Web應用。這些框架構建於Servlet和JSP之上,幫助開發人員更加關注業務邏輯,無須編寫重複性(技術)代碼。而Spring MVC 就是當前最流行的可擴展Java Web應用開發框架。

Spring MVC又叫Spring Web MVC,是Spring框架的一個模塊,用於快速開發Web應用。 MVC代表Model-View-Controller,是一個廣泛應用於GUI開發的設計模式。

Servlet

Servlet是一個Java程序,一個Servlet應用有一個或多個Servlet程序。Servlet也是Java的一個接口,我們在編寫servlet時要實現這個接口,按照其規範進行操作。JSP頁面會被轉換和編譯成Servlet程序。

Servlet和Tomcat

我們在學習的時候會知道,寫好的JSP代碼要部署到Tomcat上才能被訪問並運行。

Servlet應用無法獨立運行,必須運行在Servlet容器中。Tomcat 是Web應用服務器,就是一個Servlet/JSP容器。Servlet容器將用戶的請求傳遞給Servlet應用,並將結果返回給用戶。Web服務器和Web客戶端間通過HTTP協議通信,因此Web服務器也叫HTTP服務器。像下圖


Servlet/JSP容器是一個可以同時處理Servlet和靜態內容的Web容器。過去,由於通常認爲HTTP服務器比Servlet/JSP容器更加可靠,因此人們習慣將Servlet/JSP容器作爲HTTP服務器如Apache HTTP服務器的一個模塊。這種模式下,HTTP服務器用來處理靜態資源,而Servlet/JSP容器則負責生成動態內容。如今,Servlet/JSP容器更加成熟可靠,並被廣泛地獨立部署。Apache Tomcat和Jetty是當前最流行的Servlet/JSP容器。

Spring 和SpringMVC

Spring框架是一個開源的企業應用開發框架,有很多不同的模塊,Spring MVC就是其中一個模塊。

Java Web應用開發中有兩種設計模型:

第一次學習JSP,通常通過鏈接方式進行JSP頁面間的跳轉,這就是第一種模式。這種方式非常直接,但在中型和大型應用中,這種方式會帶來維護上的問題。修改一個JSP頁面的名字,會導致大量頁面中的鏈接需要修正。

第二種模式就是基於模型-視圖-控制器的模式(MVC模式),一個實現MVC模式的應用包含模型、視圖和控制器3個模塊。視圖負責應用的展示。模型封裝了應用的數據和業務邏輯。Spring MVC 使用一個Servlet作爲控制器,大部分都採用JSP頁面作爲應用的視圖,而模型則採用POJO,實踐中會採用一個JavaBean來持有模型狀態。


參考書籍:《Spring MVC學習指南》《Servlet、JSP和Spring MVC初學指南》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章