1. 程式人生 > >WEB開發初階——Tomcat

WEB開發初階——Tomcat

Tomcat是什麼?
Tomcat是由Apache軟體基金會下屬的Jakarta專案開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和JavaServer Page(JSP)的支援,並提供了作為Web伺服器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。由於Tomcat本身也內含了一個HTTP伺服器,它也可以被視作一個單獨的Web伺服器。但是,不能將Tomcat和Apache Web伺服器混淆,Apache Web Server[Apache]是一個用C語言實現的HTTP web server;這兩個HTTP web server不是捆綁在一起的。Apache Tomcat包含了一個配置管理工具,也可以通過編輯XML格式的配置檔案來進行配置。

Apache Tomcat區別
Apache是一個web伺服器環境程式,可以作為web伺服器使用。不過只支援靜態網頁,如(asp,php,cgi,jsp)等動態網頁的就顯得無能為力。
如果想讓伺服器也能處理動態頁面,那麼就需要Tomcat。Tomcat能對JSP、Servlet進行解析

WEB伺服器(Tomcat)會幹哪些事情 (簡單實現)
public class Initializer {
    public static void main(String[] args) throws IOException {
        while (true) {
            try {
                Socket socket = Listener.listen(Config.port);                      1.監聽埠

                String context = Reader.read(socket);                                        2.讀取請求
                Request request = ContextParser.parse(context);             3.解析協議
                Action action = Dispatcher.dispatch(request);                    4.分發請求
                Response response = action.execute(request);                 5.處理請求

                Writer.write(socket, response);                                           6.返回結果
                Closer.close(socket);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

存在的問題:
1. 配置的載入  使用xml解決
2. web工程與web伺服器分離  /不用再新增新的需求後,編譯工程
   靜態頁面  Tomcat下的defaultAction類處理
   動態請求  target下面 編譯好的.class檔案(實現Action介面 做成jar包)
                   但是,這樣之後伺服器不知道有哪些action,所以通過xml來讓伺服器知道。讀取url 跟 Action對應關係,放入到Map裡面

3.Servlet Dispatch  Servlet的url 匹配規則