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.*文件所以返回未能找到资源。
这个时候我们想访问我们的自建项目有两种办法:
- 设置访问路径到具体文件(加后缀名)
- 把我们的想要访问的文件名改成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:\Windows\System32\drivers\etc下面有一个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大概就这么多内容