一、Tomcat简介

我们下载好Tomcat后需要配置一下Java环境:如果打开出现闪退得情况,首先是jdk

同时配置JRE_HOME

Tomcat的一些关键目录:

  • /bin:存放用于启动及关闭的文件,以及一些脚本。其中以*.sh结尾的是linux下运行的文件,window下是.bat文件。
  • /conf:配置文件及相关的信息。容器的主配置文件为server.xml
  • /log:日志记录文件。
  • /webapps:存放Web应用的相关文件。
  • /lib:存放以.jar文件,各种依赖
  • /webapps:里面存放我们的应用,Tomcat会自动找到。我们会自动访问ROOT下面的index.jsp页面。

通过bin\startup.bat来开启Tomcat

通过bin\shutdown.bat关闭Tomcat

二、了解Tomcat运行机制

1.首先大家都知道Tomcat的访问可以是localhost或者127.0.0.1,但是并没有了解具体的由来,所以我们来查找一下本机的hosts文件:



我们可以通过修改hosts文件里面的配置,修改Tomcat的访问域名。

2.然后发起请求,去DNS服务器通过域名找到对应的ip地址,然后再找对应的服务器。

3.当然我们也可以直接使用ip地址去浏览器查找,这样就跳过了DNS阶段,但是ip地址不好记呀。‍♂️

4.定位到了服务器以后,我们通过端口号8080找到Tomcat这个应用,然后通过Socket进行三次握手、长连接,

通过Connector连接器的处理

5.将传来的请求信息放入到Catalina请求处理容器中,处理完以后返回给Connector连接器,最后再次通过Socket传回给客户端。

三、Tomcat配置文件

3.1 logging.properties

这是一个日志信息的配置文件,我们可以通过设置这个参数来解决我们控制台的乱码问题。

将这里的UTF-8改成GBK即可。

因为我们电脑是GBK的编码。



通过这段话也可以明白:日志控制台编码 = GBK

同时我们也可以根据日志 进行debug

3.2 server.xml

  • server.xml是Tomcat服务器的核心配置文件,同时也包含了Tomcat的Servlet容器的所有配置文件。

  • 一个server中有很多个service服务

  • Connector连接器和Engine启动引擎是同级别的

这里Connector连接器:

  • port:连接的端口号
  • protocol:处理协议
  • connectionTimeout:连接超时
  • redirectPort:重定向端口

这里的Engine下面的Host:

  • appBase:是访问localhost下的默认资源路径 webapps,也是根路径。
  • 我们可以在里面定义一个<Context docBase="" path=""> </Context>
  • docBase:更改默认资源路径文件夹
  • path:设置访问路径

3.3 web.xml

首先你会看到这些东西,这些是一些定义的规范,不必过于了解,只是限制了你什么标签可以写、怎么写,需要按照他的规范来写,否则会报错。

这是一个默认的请求处理的servlet

`

<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>`

通过这个servlet-name的名字,设置请求路径,找到上面的servlet配置信息,最后找到对应的处理类。

设置欢迎页面



当我们启动Tomcat的时候,我们可以看到这段信息,这也是为什么我们的C盘莫名其妙的就tm满了...

idea并没有用我们Tomcat的配置文件,而是把它复制了一份精简版放到了C盘这个目录下

Tomcat深入浅出(一)的更多相关文章

  1. Tomcat深入浅出——Servlet(二)

    一.Servlet简介 Servlet类最终开发步骤: 第一步:编写一个Servlet类,直接继承HttpServlet 第二步:重写doGet方法或者doPost方法,重写哪个我说的算! 第三步:将 ...

  2. Tomcat深入浅出——Servlet(三)

    零.HttpServletRequest 上一篇已经介绍了这个接口,现在补充些内容 首先介绍一下作用域: jakarta.servlet.jsp.PageContext pageContext 页面作 ...

  3. Tomcat深入浅出——Session与Cookie(四)

    一.Cookie 1.1 Cookie概念 Cookie:有时也用其复数形式 Cookies.类型为"小型文本文件",是某些网站为了辨别用户身份,进行Session跟踪而储存在用户 ...

  4. Tomcat深入浅出——Filter与Listener(五)

    一.Filter过滤器 1.1 Filter过滤器的使用 这是过滤器接口的方法 public interface Filter { default void init(FilterConfig fil ...

  5. Tomcat深入浅出——最终章(六)

    前言 利用了六天的时间,对Tomcat的内容进行了整理. 学习不易.整理也不易,自己坚持的更了下来,很不错. 希望每一位在努力前行的小伙伴,都要相信坚持就会有收获. 本次Tomcat就探寻到这里,明年 ...

  6. 深入浅出Tomcat系列

    原本打算一篇文章就发了的,无奈文章太长,阅读压力较大.为了让阅读体验更好一些,还是分多篇吧,大概6篇. 下面是这个主题的目录: 深入浅出Tomcat/1- 来历和配置文件 深入浅出Tomcat/2 - ...

  7. 深入浅出Tomcat/4 - Tomcat容器

    Container是一个Tomcat容器的接口,Tomcat有四种容器 ·     Engine ·     Host ·     Context ·     Wrapper Engine代表整个Ca ...

  8. 深入浅出Tomcat/3 - Tomcat生命周期

    在上面的部分,其实我们已经接触到Tomcat的生命周期了,接下来我们将仔细讨论和学习Tomcat的生命周期的具体实现. LifeCycle接口 这个LifeCycle接口上面在讲解Server和Ser ...

  9. 深入浅出Tomcat/2 - Tomcat启动和停止

    Tomcat启动和停止 很明显,我们启动或停止Tomcat,一般调用的是bin下的startup.sh或shutdown.sh(以Linux为例,以下涉及到平台,若无特殊说明,一般都指Linux).我 ...

随机推荐

  1. 超酷!!HTML5 Canvas 水流样式 Loading 动画

    今天我们要分享另外一款基于HTML5 Canvas的液体流动样式Loading加载动画,这款Loading动画在加载时会呈现液体流动的动画效果,并且由于和背景颜色的对比,也略微呈现发光的动画效果. 效 ...

  2. Java8 新特性,打破你对接口的认知

    Java 8 之前,接口里面只能写抽象方法,不能写实现方法 Java 8 开始是可以有方法实现的,可以在接口中添加默认方法和静态方法 默认方法用 default 修饰,只能用在接口中,静态方法用 st ...

  3. Python图像处理丨OpenCV+Numpy库读取与修改像素

    摘要:本篇文章主要讲解 OpenCV+Numpy 图像处理基础知识,包括读取像素和修改像素. 本文分享自华为云社区<[Python图像处理] 二.OpenCV+Numpy库读取与修改像素> ...

  4. 通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离

    一.docker的三个重要概念 1.镜像:打包项目带上环境,即镜像 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时准备的配置参数.镜像 ...

  5. 【ACM程序设计】前缀和

    前缀和 ​ 前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和 作用: 一种预处理,求出的前缀和数组可以使得,输出原序列中从第l个数到第r个数和的时间复杂度变成了O(1) . 一维前缀和 ...

  6. 2020年DevOps工程师入门指南

    DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...

  7. Web Api源码(路由注册)

    这篇文章只是我学习Web API框架的输出,学习方法还是输出倒逼输入比较行得通,所以不管写的好不好,坚持下去,肯定有收获.篇幅比较长,仔细思考阅读下来大约需要几分钟. 做.NET开发有好几年时间了,从 ...

  8. Maven生成可以直接执行的jar包

    要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1.在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的入口在哪里: 2.要能 ...

  9. 【python】python连接Oracle数据库

    python连接Oracle数据库 查看Oracle版本 select * from v$version 下载对应版本的InstantClient 下载网址 InstantClient 1.解压Ins ...

  10. 个人冲刺(五)——体温上报app(二阶段)

    冲刺任务:完成用户登录和随机验证码功能 loginActivity.java package com.example.helloworld; /** * 纯粹实现登录注册功能,其它功能都被注释掉了 * ...