Web 基础——Tomcat

Web 基础——Tomcat

  • 一、Tomcat 简介
    • 1.Tomcat 同类产品
    • 2.Tomcat 与 JDK 的关系
    • 3.Tomcat 内部工作原理
    • 4.Tomcat 请求过程
  • 二、部署 Tomcat 服务
    • 1.配置 Tomcat 的 Manager 管理界面
    • 2.配置 Tomcat 的虚拟主机
  • 三、使用 Tomcat 实现超市订单管理系统
    • 1.安装 Mariadb 数据库

一、Tomcat 简介

Tomcat 是一个开源的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调式 JSP 程序的首选。官方网站


Apache 和 Tomcat 区别:

  • 两者都是由 Apache 组织开放的,并且都具有 HTTP 服务的功能。
  • 但是 Apache 只能处理静态页面,而 Tomcat 不但可以处理静态页面(没有 Apache 效果好),还可以处理动态页面(JSP)

1.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 应用,并且服务器的配置简单、界面友好。

2.Tomcat 与 JDK 的关系

JDK 是 JAVA 运行和编译的,Tomact 是 Web 项目的运行容器,JAVA 没有 JDK 没办法编译运行,JAVA 运行必须依赖 JDK 的环境,所以安装 Tomact 前必须安装 JDK 环境。Tomcat 与 JDK 的关系介绍

3.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 的端口号(如:8005 8009 8080
  • Container(集装箱):包含了客户端具体访问的资源。
  • 包含 4 大请求处理组件:引擎(Engine)、虚拟主机(Host)、上下文(Context)组件。

其它组件

  • Tomcat 还有其它重要的组件,如安全组件 Security、Logger、Session、Mbeans、Naming 等其它组件。
  • 这些组件共同为 Connector 和 Container 提供必要的服务。

4.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 下载地址:传送门(需要创建 Oracle 账号)
[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' /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
将:
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)访问验证:
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(Web,tomcat,运维,linux,jdk,新星计划)