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 比對規則
url_pattern | 比對順序 |
1.全路徑映射 /aaa/bbb.do | 1. 精确路徑比對 |
2.路徑映射 /aaa/* /* | 2. 最長路徑比對 |
3.擴充映射 *。 | 3. 擴充比對 |
4.預設映射 / | 4. defaultServlet 處理靜态頁面的類 |
Tomcat的目錄結構
──project name
│ ├──conf //存放Tomcat伺服器的各種全局配置檔案
│ ├──server.xml //Tomcat主要配置檔案 Tomcat元件的初始配置
│ ├──web.xml //在Tomcat中配置不同的關系環境
│ ├──logs //Tomcat執行時的日志檔案
│ ├──catalina.out
│ ├──webapps //Tomcat的主要Web釋出目錄,預設情況下把Web應用放于此目錄
│ ├──ROOT
│ ├──WEB-INF //web應用 info
│ ├──web.xml //存放Web應用的釋出描述檔案 web.xml
│ ├──classes //存放各種class檔案,Servlet類檔案也放于此目錄下
│ ├──lib //存放所需的所有Jar檔案
Web項目 目錄結構
|──pom.xml
├──src
│ └──main //SRC MAIN maven約定的項目結構
│ ├──java //maven package指令 将工程打包成war包,webapp原樣拷貝 java檔案編譯後放到classes檔案夾下, lib 調用的jar包
│ ├──resources
│ └──webapp //工程的釋出檔案夾
│ └──WEB-INF
│ └──web.xml
Apache Tomcat差別參考文章 http://developer.51cto.com/art/201007/210894.htm