有了對於Eclipse的基本瞭解(Eclipse還有一些使用技巧,不過那個會之後在介紹),我們就可以來開始瞭解Java Web開發。
我們需要先瞭解Java Web 開發的最基本核心,也就是Servlet。
(和我部落格同時發佈:http://www.dotblogs.com.tw/alantsai/archive/2013/09/26/120756.aspx)
什麽是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開發。