# Tomcat
[TOC]
## 什么是Tomcat
存在于本機的瀏覽器可訪問資源,如 HTML、圖片、音頻、視頻等,只是本機私有化的,不能被外部客戶端瀏覽器訪問,不能達到資源共享。
Tomcat 是個 Web 容器,對外提供獲取 Web 資源的服務,在其容器中可以管理靜態的 Web 資源,除此之外,還可以解析 JSP 文件,將其解析為 Web 靜態資源,供瀏覽器訪問。
與 Web 服務器相比,它更加的輕量級,其他的 Web 服務器還有 IIS、WebSphere、JBoss、WebLogic等。
## 如何使用 Tomcat
**下載即部署**
訪問[https://tomcat.apache.org/download-80.cgi](https://tomcat.apache.org/download-80.cgi)下載 8.0.X 版本。
>[danger] 機器必須配置好 JDK
**啟動**
Tomcat 目錄說明
~~~
+---bin Tomcat的命令行工具,主要有啟動和關閉命令
+---conf Tomcat相關配置的屬性,如修改端口號,設置部署目錄等
+---lib Tomcat用到的一些CLASSPATH,如果程序里有用到第三方的jar也可以放在其中,但是不建議
+---logs 相關日志文件
+---temp
+---webapps 項放置所有的web應用程序
+---work 所有的jsp被編譯后的文件,臨時生成的文件
~~~
進入 「bin」目錄 → startup.bat
關閉:可以直接關閉啟動窗口(比較暴力),或者進入 「bin」目錄 → shutdown.bat

**訪問**
第一次啟動成功后,再瀏覽器輸入[http://localhost:8080](http://localhost:8080/),如何正確顯示一只有黃顏色貓的 logo 的頁面,就是啟動正常。

## 你需要知道的
**ROOT 目錄**
webapps/ROOT 是一個特殊的應用程序,請求在訪問的時候默認進去的應用。
**關于 hosts 文件**
位置:C:\\Windows\\System32\\drivers\\etc
hosts文件中存儲了本機的域名解析服務,瀏覽器在輸入域名的時候,第一步是在host中找到解析的ip地址,如果找不到則到外網的域名解析服務器中查詢。
**修改端口號**
在conf/server.xml,搜索8080字符,將其替換為80,并重啟服務

**部署項目**
* 直接部署在webapps下面,此時應用的上下文路徑就是webapps下面文件夾名稱
* 服務器項目部署
1. 直接復制法:比較開發工具中Tomcat的項目發布路徑的內容與工作空間的內容,可以將開發工具中Tomcat中的項目(或者修改工作空間中項目源碼輸出位置)直接復制到外部Tomcat中
2. 導出war包法:可以通過eclipse等開發工具導出war包,部署到webapps文件夾下
3. 使用下文的虛擬路徑的方式部署
* 通過虛擬目錄的方式進行配置
在 conf/server.xml 文件中的`</Host>`內部的最后配置一下內容
`<Context path="/abc" docBase="D:\work\Trade\inv\ntqn" />`
其中`path`為應用的上下文路徑,`docBase`為應用在服務器中的路徑
**字符編碼的統一**
在開發環境中(Eclipse)中,相關的類、文件都使用 UTF-8 編碼。
創建數據庫的時候,數據庫編碼使用 UTF-8。
在 Tomcat 中,設置 URIEncoding=UTF-8,server.xml 中的 Connector 節點。
>[danger] 不要使用中文和帶有空格的名稱做為文件路徑。