TomCat

服务器分类

image-20230504203728409

版本说明

image-20230504210011577

概念

Tomcat是一个能够处理请求并产生响应的应用程序。Tomcat实现了javaEE平台下的一些技术规范,所以我们可以在Tomcat中运行我们所编写的Servlet,JSP

架构图

image-20230505141542182

Server组件

启动一个server实例 (即一个JVM进程),它监听在8005端口以接收shutdown命令Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。

<Server port="8005" shutdown="SHUTDOWN">

port: 接收shutdown指令的端口,默认为8005;

shutdown: 发往此Server用于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;

远程客户端工具

安装telnet客户端:控制面板-安装卸载程序-启动window程序

查看监听端口

netstat -ano (-a所有监听socket信息,-n基于所有的ip显示,-o显示所有进程的pid)

官网

https://tomcat.apache.org/

安装、配置

下载:https://tomcat.apache.org/

安装:直接解压就可以了,建议:不要有中文的目录,目录层次不要太深

目录结构详解

bin存放tomcat的程序,主要有两大类,以.sh结尾(linux命令),以.bat结尾的(window命令)
conf存放tomcat的配置文件

image-20230505093256978

配置文件介绍

context.xml

context.xml 是Tomcat 公用的环境配置。 Tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了) ,就会自动重新加载这个文件,而不需要重启服务器

web.xml

Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml文件的父文件。

server.xml

是 tomcat 服务器的核心配置文件,server.xml的每一个元素都对应了 tomcat中的一个组件,通过对xml中元素的配置,实现对 tomcat中的各个组件和端口的配置。

tomcat-users.xml

配置访问Tomcat的用户以及角色的配置文件。

解决控制台乱码

控制台产生乱码的原因是在Tomcat在输出日志中使用的是UTF-8编码,而我们中文的Windows操作系统使用的是GBK编码。由于编码格式不统一,所以出现了乱码。

解决方式

修改conf目录中的logging.properties文件重新指定的编码方式。

java.util.logging.ConsoleHandler.encoding = GBK

启动、关闭

启动:双击:bin\startup.bat

关闭:
直接×掉运行窗口:强制关闭
bin\shutdown.bat:正常关闭
Ctrl+C:正常关闭

启动常见的问题

没有配置JAVA的环境变量

img

img

img

控制台中文乱码

修改conf/logging.properties

将所有的UTF-8换成GBK

Tomcat – 基本使用

修改启动端口号

conf/server.xml

img

注:HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号

启动时可能出现的问题

端口号冲突:找到对应程序,将其关闭掉

img

启动窗口一闪而过:检查JAVA_HOME环境变量是否正确配置

Tomcat – 部署项目

Tomcat 部署项目:

将项目放置到 webapps 目录下, 即部署完成

直接将项目复制到webapps目录下

img

采用压缩文件.war的方式

1.将整个项目使用压缩工具打包成一个zip文件,注:在目录的下一级打包
2.改zip的扩展名为war
3.复制到webapps目录下,tomcat会自动解压成一个同名的目录。
注意:必须是zip压缩包,里面的文件不能有中文名

idea中创建web项目

img

img

2020版3月以后

img

IDEA中使用 Tomcat方式 – 集成本地Tomcat

img

img

配置Tomcat Manager

什么是Tomcat Manager

Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。默认情况下,Tomcat Manager是处于禁用状态的。准确的说,TomcatManager需要以用户角色进行登录并授权才能使用相应的功能,不过Tomcat并没有配置任何默认的用户,因此我们需要先进行用户配置后才能使用Tomcat Manager。

配置Tomcat Manager的访间用户

Tomcat Manager中没有默认用户,我们需要在tomcat-users.xml文件配置。TomcatManager的用户配置需要配置两个部分: 角色配置、用户名及密码配置。

Tomcat Manager中的角色分类

manager-gui角色:
允许访问HTML GUI和状态页面(即URL路径为/manager/html/*)

manager-script角色:
允许访问文本界面和状态页面(即URL路径为/manager/text/*)

manager-jmx角色:
允许访问JMX代理和状态页面(即URL路径为/manager/jmxproxy/*)

manager- status角色:
仅允许访问状态页面(即URL路径为/manager/status/*)

image-20230515083840817

配置用户及角色

修改tomcat-user.xml

<role rolename ="manager-gui"/>
<user username ="tomcat" password ="tomcat" roles="manager-gui"/>

解除非本机IP限制

image-20230515085847221

image-20230515085651366

进入Tomcat的webapps目录下,打开webapps/manager/META-INF/context.xml文件修改下面这段配置

<context antiresourcelocking="false" privileged="true".<!-- 把下面这段注释掉 -->
<!-- <Valve
className="org.apache.catalina.valves.RemoteAddrValveallow="127\. d+\. d+ . d+l::110:0:0:0:0:0:0:1" /> -->
</context>

Tomcat体系架构

image-20230508173938651

tomcat工作原理

Tomcat是一个能够处理请求并产生响应的应用程序。Tomcat实现了JavaEE平台下的一些技术规范,所以我们可以在Tomcat中运行我们所编写的Servlet、JSP。

image-20230515090138171

conf/servlet.xml配置文件

<?xml version="1.0"encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
    <Service name="Catalina">
        <!-- 连接器监听端口是 8080,默认通讯协议是 HTTP/1.1 -->
        <Connector port="8080” protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443” />
        <!-- 名字为 catalina 的引擎,其默认的虚拟主机是 1ocalhost -->
        <Engine name="Catalina" defaultHost="Tocalhost">
            <!-- 名字为 1ocalhost 的虚拟主机,其目录是 webapps-->
            <Host name="Tocalhost"appBase="webappsunpackWARs="true"autoDeploy="true"></Host>
        </Engine>
    </service>
Server

Tomcat组件

Server组件

启动一个server实例(即一个JVM进程),它监听在8005端口以接收shutdown命令Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。

<Server port="8005” shutdown="SHUTDOWN">

port: 接收shutdown指令的端口,默认为8005;

shutdown: 发往此Server用于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;

posted @ 2023-05-04 11:42  YxinHaaa  阅读(3)  评论(0编辑  收藏  举报