Web 基础——Tomcat
- 一、Tomcat 简介
-
- 1.Apache 与 Tomcat 比较
- 2.Tomcat 同类产品
- 3.Tomcat 与 JDK 的关系
- 4.Tomcat 内部工作原理
- 5.Tomcat 请求过程
- 二、部署 Tomcat 服务
-
- 1.配置 Tomcat 的 Manager 管理界面
- 2.配置 Tomcat 的虚拟主机
- 三、使用 Tomcat 实现超市订单管理系统
-
- 1.安装 Mariadb 数据库
1.Apache 与 Tomcat 比较 相同点:
- 两者都是 Apache 组织开放的。
- 两者都有 HTTP 服务的功能。
- 两者都是开源的。
- Apache 只能处理静态页面,而 Tomcat 不但可以处理静态页面(没有 Apache 效果好),还可以处理动态页面(JSP)。
- 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 Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强大。
- WebLogic 支持企业级的、多层次的和完全分布式的 Web 应用,并且服务器的配置简单、界面友好。
4.Tomcat 内部工作原理 1)Tomcat 整体架构
文章图片
2)组件关联
- Tomca 的心脏是两个组件: Connector 和 Container(Engine,Host,Context,Wrapper)
- 一个 Container(集装箱)可以选择多个 Connector(连接器),多个 Connector 和一个 Container 就形成了一个 Service。
- Service 可以对外提供服务,而 Server 服务器控制整个 Tomcat 的生命周期。
顶级组件 Server:
- 表示一个正在 JVM 运行的 Tomcat 实例。
- Connector(连接器):客户端访问 Tomcat 的端口号(如:
8005
8009
8080
) - Container(集装箱):包含了客户端具体访问的资源。
- 包含 4 大请求处理组件:引擎(Engine)、虚拟主机(Host)、上下文(Context)组件。
- Tomcat 还有其它重要的组件,如安全组件 Security、Logger、Session、Mbeans、Naming 等其它组件。
- 这些组件共同为 Connector 和 Container 提供必要的服务。
文章图片
二、部署 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 <> /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.cfgapache-tomcat-8.5.32.tar.gzjdk-8u181-linux-x64.tar.gz
[root@Tomcat ~]# tar zxf apache-tomcat-8.5.32.tar.gz
[root@Tomcat ~]# ls
anaconda-ks.cfgapache-tomcat-8.5.32.tar.gzapache-tomcat-8.5.32jdk-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 ' /usr/local/tomcat/conf/tomcat-users.xml
[root@Tomcat ~]# sed -i '$i ' /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
将:
20allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
修改为:
20allow="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
[root@Tomcat ~]# /usr/local/tomcat/bin/shutdown.sh
[root@Tomcat ~]# /usr/local/tomcat/bin/startup.sh
验证:
文章图片
注意事项:
- 当把
Host
设置为域名时,就只能使用域名进行访问;而把Host
设置为localhost
时,就只能使用 IP 进行访问。 - 优点: 防止恶意绑定。
[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.cfgapache-tomcat-8.5.32.tar.gzjdk-8u181-linux-x64.tar.gzsmbms_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)访问验证:
文章图片
文章图片
推荐阅读
- 前端|IDEA安装element-ui报错npm ERR Found vue@3.2.26npm ERR node_modulesvuenpm ERR vue@“^3.0.0“ from
- 前端|解决 JavaScript heap out of memory 报错
- 前端|npm错误——npm ERR code ERESOLVE 解决方法
- JavaScript|十进制数转二进制
- YYC蜻蜓系统系列|蜻蜓Q系统v2.6.7版本更新,发布英文版-注册登录部分增加开启/关闭短信验证码功能。
- discuz相关|优雅草discuz插件之发帖添加作者水印插件v1.4版本更新-部分论坛发帖报错bug已修复
- react.js|react从入门到精通 1
- 前端|面试官(为什么Vue中的v-if和v-for不建议一起用)
- 前端|解决 “TypeError Cannot read properties of undefined (reading ‘xxx‘)“