Java web 開發的核心 - Servelet

有了對於Eclipse的基本瞭解(Eclipse還有一些使用技巧,不過那個會之後在介紹),我們就可以來開始瞭解Java Web開發。

我們需要先瞭解Java Web 開發的最基本核心,也就是Servlet。

前言

有了對於Eclipse的基本瞭解(Eclipse還有一些使用技巧,不過那個會之後在介紹),我們就可以來開始瞭解Java Web開發。

我們需要先瞭解Java Web 開發的最基本核心,也就是Servlet。

什麼是Servlet?

(對於網站類型的演變我就不會在多說,我相信作為C# Web Developer來說應該都不是什麼問題。)

在介紹Servlet之前,我們先想一下Web 網站接收和發送的基本流程其實就是兩個:

  1. 首先,當一個Browser輸入一個網址以後,Browser會對那個網站發出Http Request。
  2. 網站收到以後,會依照http request的內容做處理並且返回對應的內容

那這個時候問題來了,在Web收到http Request以後,我們是如何對那個request做存取?

從Asp .net 來看

在Asp .net我們會得到相對應的物件代表著那個http request,然後我們就可以直接做存取。那這個物件是從哪裡來的?

其實這個物件是Asp .net的伺服器IIS接受到以後把它轉成對應的物件以供我們使用。對於普通.Net程式來說,.Net Framework就是他所認知的世界(由.Net Management Runtime來執行那個exe並且做管理),同理,對於Web程式來說,它只認識Asp .Net Framework(因為Asp .net是他的runtime)。

Java Web的世界

Java web也是一樣。Java Web裡面有一個關鍵字叫做Container(容器),而這個容器在某種程度來說和Asp .Net一樣,這個容器就是Java Web的runtime,而上面執行的就是Servlet。Servlet是什麼呢?Oracle 定義了一個API,而這個API就是Servlet。和Asp .net一樣,當request進來以後,會把http轉成對應的Java 物件(這些物件就是Servlet定義的),而我們就可以透過這個來處理request,並且能夠response回去。

現在思考一下關於Tomcat所扮演的角色。我們提到有一個Container會能夠把進來的Request轉成Oracle定義的物件。所以Tomcat其實就是那個Container有實作定義的API。換句話說,就只要有實作API的都可以成為掛載Java Web的伺服器。

Servlet的重要性

在上一段我們瞭解了Servlet的角色,它就是廣義來說http request/response的物件化生。因此我們可以利用Java來處理這個request並且返回response來顯示正確內容給客戶端。因此,在Java Web裡面Servlet是核心。不管是什麼Java Web技術如struts(MVC架構)都是建構在Servlet上面,因此瞭解Servlet很重要。

結論

這一篇稍微有一些短,不過主要的概念非常重要。因為只有瞭解了Servlet,才能真正開始Java Web開發。


Google+

創用 CC 授權條款
Alan Tsai 的隨手筆記Alan Tsai製作,以創用CC 姓名標示 4.0 國際 授權條款釋出。