目錄結構
-
bin內部包含.sh和.bat分別是linux和windows的執(zhí)行文件 -
lib依賴的jar conf
-
catalina.policy權限相關配置 -
server.xml具體配置文件
Server節(jié)點
- Executor 線程池
- Connector 連接器,管理對外的連接配置端口之類的。如果使用了線程池,這里的最大線程無效
web.xml
Servlet
- DefaultServlet 默認的,加載靜態(tài)文件,圖片,html,js等
- JspServlet 處理jsp的
mime-mapping Tomcat處理的文件類型
welcome-file-list 首頁
-
logs日志
-
catalina.x.log啟動日志 -
localhost_access_log接收到的請求日志
部署
- 隱式部署, war包放到webapps里(一般不推薦,程序和部署工具應該隔離)
-
server.xml配置Host
<Host name="localhost" appBean="webapps" unpackWARs="true" auto Deploy="true">
<!-- reloadable熱加載 -->
<Context path="/myUrl" docBase="d:/Demo" reloadable="true"> </Context>
...
- 創(chuàng)建
xmlconf/Catalina/localhost/my.xml
my.xml
<?xml version="1.0" encoding="UTF-8">
<Context path="/myUrl" docBase="d:/Demo" reloadable="true"> </Context>
然后就可以直接訪問/my路徑進入程序
結構

結構
Service(通過配置多個service和connector可以監(jiān)聽多個端口) -> engine(引擎) --> Host(虛擬主機,域名)--> Context(應用)-->wrapper(servlet)
- Bootstarp 入口類
- Catalina 啟動類
- server 服務器,代表整個tomcat(StandardServer是標準實現 )
- Service 邏輯功能層,可以有多個
-
Connector連接器,負責Tomcat與客戶端通訊 (多個) -
ContainerService 的核心組件,按照層級有Engine,Host,Context,Wrapper四種,一個service只有一個Engine
-
Connector發(fā)送Request給Container -
Container返回Reponse
- Jasper jsp引擎
連接器
-
NIO模式,
-
Channel向Selector注冊連接,讀寫IO事件 -
Selector輪詢selectKey集合 - 通過key找到對應的
channel通過綁定的buffer進行讀寫
- 流程解析
- ProtocolHandler 協(xié)議解析
- Endpoint Socker網絡連接處理
- Processor 處理Socker封裝成Request
- Adapter適配器將Request包裝成ServletRequest
容器,責任鏈
Engine => Host => Context => Wrapper
Catalina.start()啟動tomcat start
啟動
增加VM參數
# 設置環(huán)境變量
-Dcatalina.home="D:\tomcat\build"