Tomcat文件夹和server配置文件解析

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

  • Tomcat属于解压即安装的软件,当我们在官网下载好了Tomcat安装包之后解压的道德文件夹如下图:

 我们尽量不要去修改这个文件夹的名字

  • 打开这个目录之后:

 我们可以看到这些目录:

  • bin   各种exe二进制文件,包括启动和关闭;
  • conf     Tomcat所需要的配置文件,包括配置端口号,默认访问文件,local地址等等
  • lib     各种jar包
  • logs   日志文件
  • webapps    下面存放的文件夹,每一个文件夹对应一个项目
  • work    工作台

然后我们在bin目录下双击startup.bat文件启动Tomcat

 会看到如下界面:

(第一次启动会中文乱码,不过没影响)

此时我们打开浏览器输入:http://localhost:8080   回车会出现Tomcat的默认访问页面:

 Tomcat的默认访问页面其实就是webapps下的ROOT文件夹里的index.jsp文件:

 

我们可以修改index.jsp里面的内容进行证明:

我们把第一行的标签修改成“迎风少年”然后退出Tomcat重新启动再次通过浏览器访问:http://localhost:8080   :

 当我们输入localhost:8080时我们访问到Tomcat服务器,Tomcat服务器默认的响应界面是ROOT项目下的index.jsp

但是我们知道,在webapps目录下还有很多项目:

 加入我们要访问docs项目,那么因为docs并不是Tomcat的默认访问项目,我们就必须指定相应的访问目录:

 其实当我们访问docs目录的时候,默认访问的就是docs下面的index.html

我们把路径输全:

 两个界面完全一样

但是如果一个文件里面并没有index.*文件,那么我们只输入到这个文件夹的路径是不会访问到页面的,例如我们的自建项目hello:

当我们只把路径输入到:

 回车的结果是:

 因为在hello文件夹下面并没有一个index.*的文件所以Tomcat服务器找不到index.*文件所以返回未能找到资源。

这个时候我们想访问我们的自建项目有两种办法:

  1. 设置访问路径到具体文件(加后缀名)
  2. 把我们的想要访问的文件名改成index.*

第一种方式:

 回车显示:

 第二种方式:

 先把名字修改为index.*的格式,然后在浏览器上输入到hello的路径即可:

回车如下:

 我们一样访问到了index.html文件

(我们需要知道Tomcat的默认访问文件是index.*文件,当我们制定一个访问路径时,如果该路径没有具体到具体文件,那么这个路径下就一定要有一个index.*的默认访问文件)

接下来我们对Tomcat的配置文件(conf)里面的server.xml进行一下讲解:

 打开server.xml文件,里面的<Connector>标签里面的内容:

其中port="8080"代表就是把我们的服务器端口设置成8080

比如前面我们访问的时候,都要加上8080端口号:

 这是Tomcat的默认端口号,但是我们看的网上的浏览地址并没有写相应的端口号,那是因为http的默认端口号是80,所以我们在网上访问的时候80端口是可以省略的;

我们可以将Tomcat的端口号改成80进行测试:

 然后我们重新启动服务器进行Tomcat的主页访问:

这个时候我们再输入8080端口:

 回车:

 我们换成80端口:

 回车:

成功访问并且80端口不在地址栏显示:那么我们直接打localhost呢?

 回车:

所以使用http进行访问的时候80端口是可以省略不写的

那么为什么打localhost就会访问我们的电脑呢?

我们再次打开server.xml配置文件

查看<Host>标签里面的name属性是localhost,这不是巧合,我们把它改了再进行访问试试:

 就不会再找到页面

那我们试一下我们设置后的地址:

 满怀激动的回车:

尼玛竟然是一个卖域名的,

那么为什么不是我们的Tomcat默认主页呢?

我们打开:C:WindowsSystem32driversetc下面有一个hosts的配置文件

 我们打开然后在下面加入下面这一行映射:

 保存之后我们再次在搜索栏输入我们设置好的www.yfsn.com

再次满怀激动的回车:

它来了,它来了~~~

原理就是当我们输入一个网址的时候,浏览器会首先把这个映射给我们的电脑里面的hosts配置文件里面的映射比较,

看看有没有对应的映射,如果有就访问映射对应的ip地址(刚才我们设置的ip地址时192.168.0.0.1,这是一个计算机回环地址代表我们计算机本身),

如果没有,浏览器就会根据我们输入的网址去DNS远程服务器上去查看(DNS上保存着全世界所有的域名):

计入我们访问百度的网址:www.baidu.com

很明显我们并没有在hosts文件中添加过www.baidu.com的映射,所以浏览器并不能在hosts文件中找到,就回去DNS云端去寻找www.baidu.com这个映射对应的

真正的ip。

我们可以进行一个实验:

我们在搜索栏输入www.baidu.com回车,然后打开浏览器开发者模式(fn+f12)进行一下检测:

我们打的实际上是www.baidu.com

但是在DNS上相对应的真正的ip地址(远程地址+端口)是:61.135.169.121:443

Tomcat大概就这么多内容

迎风少年
原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13607218.html