Web 基礎——Tomcat
- 一、Tomcat 簡介
- 1.Apache 與 Tomcat 比較
- 2.Tomcat 同類產品
- 3.Tomcat 與 JDK 的關系
- 4.Tomcat 內部作業原理
- 1)Tomcat 整體架構
- 2)組件關聯
- 3)Container 組件詳解
- 5.Tomcat 請求程序
- 二、部署 Tomcat 服務
- 1.配置 Tomcat 的 Manager 管理界面
- 2.配置 Tomcat 的虛擬主機
- 三、使用 Tomcat 實作超市訂單管理系統
- 1.安裝 Mariadb 資料庫
一、Tomcat 簡介
Tomcat 是一個開源的開放源代碼的 Web 應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調式 JSP 程式的首選,官方:https://tomcat.apache.org/
1.Apache 與 Tomcat 比較
相同點:
- 兩者都是 Apache 組織開放的,
- 兩者都有 HTTP 服務的功能,
- 兩者都是開源的,
不同點:
- Apache 只能處理靜態頁面,而 Tomcat 不但可以處理靜態頁面(沒有 Apache 效果好),還可以處理動態頁面(JSP),
2.Tomcat 同類產品
- Resin 服務器:https://caucho.com/products/resin/download
- Jetty 服務器:https://www.eclipse.org/jetty/download.php
- JBoss 服務器:https://jbossas.jboss.org/downloads
- WebSphere 服務器:https://www.ibm.com/cn-zh/cloud/websphere-application-server (付費)
- WebLogic 服務器:https://www.oracle.com/cn/java/weblogic(付費)
WebLogic 是 ORACLE 公司的產品:
- 可進一步細分為 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特別強大,
- WebLogic 支持企業級的、多層次的和完全分布式的 Web 應用,并且服務器的配置簡單、界面友好,
3.Tomcat 與 JDK 的關系
JDK 是 JAVA 運行和編譯的,Tomact 是 Web 專案的運行容器,JAVA 沒有 JDK 沒辦法編譯運行,JAVA 運行必須依賴 JDK 的環境,所以安裝 Tomact 前必須安裝 JDK 環境,
- 對應關系:https://tomcat.apache.org/whichversion.html
4.Tomcat 內部作業原理
1)Tomcat 整體架構

2)組件關聯
Tomca 的心臟是兩個組件:
- Connector 和 Container(Engine,Host,Context,Wrapper)
- 一個 Container 可以選擇多個 Connector(連接器),多個 Connector(連接器)和一個 Container(集裝箱) 就形成了一個 Service,
- Service 可以對外提供服務,而 Server 服務器控制整個 Tomcat 的生命周期,
3)Container 組件詳解
頂級組件 Server:
- 表示一個正在 JVM 運行的 Tomcat 實體,
頂級組件 Service:表示 Tomcat 中一組處理請求,提供服務的組件,
- Connector(連接器):表示客戶端連接到 Tomcat 容器的服務點,它為引擎提供協議服務來將引擎與客戶端各種協議隔離開來,
- Container(集裝箱):用于封裝和管理 Servlet,以及具體處理 Request 請求;
- 包含 4 大請求處理組件:引擎(Engine)、虛擬主機(Host)、背景關系(Context)組件,
其它組件:
- Tomcat 還有其它重要的組件,如安全組件 Security、Logger、Session、Mbeans、Naming 等其它組件,
- 這些組件共同為 Connector 和 Container 提供必要的服務,
5.Tomcat 請求程序

二、部署 Tomcat 服務
準備作業
| 主機名 | 作業系統 | IP 地址 | 使用軟體包 |
|---|---|---|---|
| Tomcat | CentOS 7.4 | 192.168.1.1 | apache-tomcat-8.5.32.tar.gz jdk-8u181-linux-x64.tar.gz |
- JDK 下載地址:https://www.jdkdownload.com/
[root@Tomcat ~]# ls
anaconda-ks.cfg jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# tar zxf jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg jdk-8u181-linux-x64.tar.gz jdk1.8.0_181
[root@Tomcat ~]# mv jdk1.8.0_181/ /usr/local/java
[root@Tomcat ~]# cat <<END >> /etc/profile
export PATH=$PATH:/usr/local/java/:/usr/local/java/bin/
END
[root@Tomcat ~]# source /etc/profile
[root@Tomcat ~]# java -version

安裝 Tomcat
[root@Tomcat ~]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.32.tar.gz jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# tar zxf apache-tomcat-8.5.32.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.32.tar.gz apache-tomcat-8.5.32 jdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# mv apache-tomcat-8.5.32 /usr/local/tomcat
[root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh #啟動 Tomcat 服務
[root@Tomcat ~]# netstat -anpt | grep 8080 #查看埠是否開啟
訪問驗證:

1.配置 Tomcat 的 Manager 管理界面
[root@Tomcat ~]# sed -i '$i<role rolename="manager-gui"/>' /usr/local/tomcat/conf/tomcat-users.xml
[root@Tomcat ~]# sed -i '$i<user username="tomcat" password="tomcat" roles="manager-gui"/>' /usr/local/tomcat/conf/tomcat-users.xml
[root@Tomcat ~]# tail -3 /usr/local/tomcat/conf/tomcat-users.xml

默認 Tomcat 的管理頁面只能通過 Tomcat 服務器上的瀏覽器才可以訪問,設定其可以在其他主機訪問
[root@Tomcat ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
將:
20 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
修改為:
20 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
[root@Tomcat ~]# /usr/local/tomcat/bin/shutdown.sh #關閉 Tomcat 服務
[root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh #開啟 Tomcat 服務
查看 Tomcat 狀態:



2.配置 Tomcat 的虛擬主機
[root@Tomcat ~]# mkdir -p /web/Coco
[root@Tomcat ~]# mkdir -p /web/Zozo
[root@Tomcat ~]# echo "www.Coco.com" > /web/Coco/index.jsp
[root@Tomcat ~]# echo "www.Zozo.com" > /web/Zozo/index.jsp
[root@Tomcat ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="www.Coco.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/Coco" path="" reloadable="false"></Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.Zozo.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/Zozo" path="" reloadable="false"></Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
[root@Tomcat ~]# /usr/local/tomcat/bin/shutdown.sh
[root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh
驗證:

注意事項:
- 當把
Host設定為域名時,就只能使用域名進行訪問;而把Host設定為localhost時,就只能使用 IP 進行訪問, - 優點:防止惡意系結,
三、使用 Tomcat 實作超市訂單管理系統
1.安裝 Mariadb 資料庫
[root@Tomcat ~]# yum -y install mariadb mariadb-server
[root@Tomcat ~]# systemctl start mariadb
[root@Tomcat ~]# mysqladmin -u root password 123123
[root@Tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.32.tar.gz jdk-8u181-linux-x64.tar.gz smbms_db.sql
[root@Tomcat ~]# mysql -uroot -p123123 < smbms_db.sql
[root@Tomcat ~]# mysql -uroot -p123123
MariaDB [(none)]> grant all on smbms.* to zhangsan@192.168.1.1 identified by '123123';
MariaDB [(none)]> flush privileges;

1)查看超市管理員密碼:
[root@Tomcat ~]# mysql -uroot -p123123
MariaDB [(none)]> use smbms
MariaDB [smbms]> show tables;
MariaDB [smbms]> select * from smbms_user;
| 1 | admin | 系統管理員 | 1234567 | ...
...

2)上線超市訂單管理系統專案:
[root@Tomcat ~]# cd /usr/local/tomcat/webapps/
[root@Tomcat webapps]# rm -rf *
[root@Tomcat webapps]# ls
WebRoot

[root@Tomcat webapps]# vim WebRoot/WEB-INF/classes/database.properties
修改:
url=jdbc:mysql://192.168.1.1:3306/smbms?useUnicode=true&characterEncoding=utf-8
user=zhangsan #資料庫授權用戶名
password=123123 #資料庫授權密碼
3)訪問驗證:


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/286579.html
標籤:java
上一篇:Spi,微內核與插件化
