我们一起学Java之一步步学Tomcat

学习Tomcat之前让我们先来学习一下关于CS和BS架构的知识吧!

(一)、 CS 和 BS 架构

关于 CS 和 BS 架构相信大家也都听说过,或许只是这个概念没有那么清楚,其实无论 CS 还是 BS 都是软件架构的两种不同的表现形式而已,我们看下面的简单介绍!

C/S:Client/Server:客户端和服务端

B/S:Browser/Server:浏览器和服务端的架构(通过浏览器访问的应用)

1、C/S 简介

采用 CS 架构的一些软件一般都是运行在电脑桌面上:比如 QQ,一些视频软件的客户端。等

开发语言:VB,VC++,C#,Java 中的 swing,awt 等

1.1、特点

一般的,服务端仅仅是安装一个数据库和数据存储,所有程序的代码(功能和界面)都编写在客户端软件中(把所有的业务逻辑都编写在了客户端),界面渲染也在客户端

1.2、架构的优缺点

优点:直观,用户体验好,界面美观,安全性要高一点。等

缺点:升级需要重新安装,移植性较低,开发和维护成本要高。

2、B/S 简介

采用这种架构的软件一般都是通过浏览器访问,比如门户网站,管理系统等。

其实 B/S 属于特殊的 C/S,因为浏览器就是一个特殊的客户端。安装在电脑上。

开发语言:JSP,PHP,ASP 等

2.1、特点

在服务端编写代码,所有的业务逻辑都由服务端完成,客户端只负责界面的渲染展示

2.2、优缺点

优点:可移植性高,开发和维护较好

缺点:用户体验不够好,界面不够丰富,安全性很低。

3、综合(瘦富客户端)

3.1、瘦客户端

也即是传统的 BS 架构,服务端主要负责业务逻辑的处理,而客户端

则是负责页面的渲染,其中的优缺点也即是上面说的。

3.2、富客户端

富客户端其实是 BS 架构和 CS 架构的一种结合,这种客户端的特点就是界面华丽,综合两种架构的优点,在富客户端中,服务端依然是主要负责业务逻辑的处理,区别在于客户端,不像传统的 BS 架构中客户端只负责界面的渲染,头同时客户端还会处理少量的业务逻辑。

用到的开发技术:Extjs,Flash,EasyUI,JavaFX 等。使用的语言是

JavaScript 或者 action script

(二)、什么是服务器(Tomcat)

服务器一般分为软件服务器和硬件服务器,总的来说服务器就是提供服务的,就好比,你可以给服务器要点什么,他可以给你返回点什么,你也可以在他那存放点什么,没有它有些事你还做不了。接下来我们就软件服务器和硬件服务器简单做下介绍。

1、软件服务器

软件服务器软件服务器其实就是一个软件,这个软件提供了 BS 应用运行的环境。也就是说没有这个软件,采用 bs 架构的软件就无法运行。

2、硬件服务器

这里的硬件服务器其实就可以理解成我们平常说的主机,其实就是一台电脑,只不过这台电脑上安装了软件服务器

(三)、Tomcat 通关

3.1、什么是 Tomcat

Tomcat 其实就是一个软件服务器,当我们的电脑上安装了 Tomcat,那么我们的电脑就成了一个硬件服务器,也可以说是主机,它为我们提供了一些必要的运行环境。

3.2、Tomcat 的目录结构

好吧,我决定先来说说 Tomcat 的目录结构。

bin 目录:这里面主要是 Tomcat 的工具,比如启动,关闭等。 conf:这个目录里面是 Tomcat 的配置文件

lib:这个是非常重要的一个文件夹,里面存放着 Tomcat 的核心 jar 包以及一些依赖的 jar 包,其实就是放 jar 包的地方。

logs:日志文件

temp:这是一个临时目录,里面会有上传文件时的临时文件。

webapps:默认情况下,这是部署项目的路径。

work:英文单词工作的意思,所以这是一个工作目录,里面主要装 JSP 翻译成 Java 文件的代码。

3.3、Tomcat 的安装

这里写图片描述
这里写图片描述

对于 Tomcat 的安装最重要的是配置,当你下载好一个 Tomcat(下载如图),并且解压完成你会得到一个 Tomcat 的文件夹,打开就是上面介绍的那几个文件夹了,在上面也说过,Tomcat 的启动实在 bin 目录下的,直接说了吧就是 startup.bat,你双击这个文件就是启动 Tomcat,但是往往你会遇到这样的问题“一闪而过”

这个时候我们一般很想知道,这是为什么啊,我们可以通过 dos 来查看原因,在此文件夹下打开 dos 窗口输入 startup.bat 然后回车,你会看到这样的提示

这里写图片描述

什么意思呢?大概意思就是缺少 JAVA_HOME 或者 JRE_HOME 的运行环境导致这个应用无法执行,嗯就这样理解。

现在知道是什么问题了,那就要去解决这个问题从错误的原因我们知道应该去配置 JAVA_HOME 或者 JRE_HOME,在此之前我们先要来说以

下这个 JAVA_HOME 和 JRE_HOME 到底是个什么东西,有什么用?

首先这两个东西都是一种约定,就这样的,是一个约定好的变量,当某些程序需要用到的话就会默认的去找 JAVA_HOME 或者 JRE_HOME,然后拿到他们的值,这里就拿我们的 Tomcat 来说,当你双击 startup.bat 来启动 Tomcat 的时候,它就会默认去取 JAVA_HOME 或者

JRE_HOME 来用,另外 Tomcat 的运行是不需要 JDK 中的工具的只需要 JRE 来提供运行环境即可,也即是说要想启动 Tomcat 必须要有

JAVA_HOME 或者 JRE_HOME,当两者都不为空的时候默认使用

JRE_HOME。

那么 JAVA_HOME 具体值的是什么呢?这个想必大家都很清楚,通常它指的就是 JDK 的目录,如果需要 JDK 的话,大部分程序都会默认的去环境变量中取这个值来用,同样 JRE_HOME 就是指的 jre 目录了,当程序不需要 JDK 而需要 Java 的一个运行环境时就会取这个值了。相信说到这里你已经明白的差不多了,接下来我们就去配置这个

JAVA_HOME 吧!(因为 JAVA_HOME 比较全能,所以选择配置它),如果觉的接下来我会直接告诉大家怎么配置那你就错了。

3.3.1、在系统环境变量中配置

首先,最常规的就是在我们的电脑中的系统环境变量中取配置

JAVA_HOME 了,这个想必大家都会,这里不多说,直接上图。

这里写图片描述

OK,经过这样的操作就可以正常启动 Tomcat 了。

3.3.2、在 startup.bat 中配置

在系统环境变量中配置是一种方法,这个大家都知道想必也都会,这就没法装逼了,我们需要知道一种有那么几个人不知道的方法,接下来我们把系统环境变量中配置的 JAVA_HOME 删除掉,接下来我们将 startup.bat 以记事本方式打开。如下图

这里写图片描述

在图中所示位置添加上 set JAVA_HOME=D:\Java\jdk_8u131 然后保存即可。同样可以正常启动 Tomcat。

如果别人不知道这个方法,发现你的系统环境变量中没有配置

JAVA_HOME 但是却可以启动 Tomcat,你说他会怎么想,另外在 startup.bat 文件的最后加上一个 pause,你猜有什么效果?

这里写图片描述

3.3.3、如何判定 Tomcat 启动成功

我们可以通过浏览器访问来确认服务是否启动成功,那么如何访问呢?我们可以通过如下两种方式

http://服务器所在主机的 IP:服务器的端口号/资源名字

http://服务器所在主机的名字:服务器的端口号/资源名字

一般我们的服务都是在本机,因此可以通过如下方式访问

http://本机的 IP:服务器的端口号/资源名字
http://localhost:服务器的端口号/资源名字

我们这里通过 http://localhost:服务器的端口号来进行测试,这里要知道 Tomcat 的默认端口号是 8080,这个怎么看呢?我们再次点击 startup.bat

这里写图片描述

在浏览器中输入 http://localhost:8080/当看到如下这个界面表示 Tomcat 安装成功且已经启动

这里写图片描述

这个时候你要注意,以下界面是不能关闭的。

这里写图片描述

4、Tomcat 常见错误

4.1、没有成功启动 Tomcat 就开始访问

这样的后果是会导致无法显示此网页,比如你双击 startup.bat 启动了 Tomcat,但是手贱一下又给关了,这样你去访问网页的时候就会出现这个情况

这里写图片描述

所以一定要记住,启动了 Tomcat 之后就将它最小化吧。

4.2、出现 404 的错误

这是一个非常经典的错误,我们先来看下这个错误界面

这里写图片描述

之所以会出现这个界面是因为你访问的页面不存在,另外不知道大家有没有这样的疑惑,我们之前说验证 Tomcat 是否安装成功访问

http://localhost:服务器端口号/资源名字,
但是我们访问的时候只是输入了 http://localhost:8080,那么这个资源名字呢?其实完整的路径是这样子的

这里写图片描述

只不过这里的 index.jsp 被默认隐藏了,也就是即使我们不写他也是取默认打开这个界面,因此当你输入的界面不存在就会出现 404 的错误啦,比如这样

这里写图片描述

4.3、重复启动,端口冲突

这个是什么意思呢?你如说你现在已经启动一个 Tomcat 了,你又双击 startup.bat,结果会发现一闪而过,这个时候你也许会疑惑,这是怎么回事,这个时候你最好先看看是不是已经有一个 Tomcat 被启动了,想准确的查看错误信息我们可以去查看错误日志,还记的错误日志在哪吗?

这里写图片描述

日志文件是在 logs 目录下的,我们找到错误日志文件打开它,翻到最后

这里写图片描述

我们会发现这里有一个经典的错误,Tomcat 的端口已经被占用,端口冲突。

4.4、不能乱改 Tomcat 中配置文件的结构

这个一般就是我们不小心将 Tomcat 文件中的配置文件修改了,当发生这种情况,我们一般要先去查看日志文件,从文件中去查找原因然后再修改,这里我们做一个例子。我们打开配置文件夹 conf,然后将里面的配置文件 server.xml 文件稍作修改来模拟我们不小心改动了配置文件导致出错。

这里写图片描述

我们试着将这个删除,然后保存我们再运行 Tomcat 试试,这时候会一闪而过,明显是出问题了,接下来我们去查看日志文件。

这里写图片描述

我们可以看到,给出的日志还是非常详细的。

5、关于 Tomcat 的端口和服务器

5.1、如何修改默认端口

我们知道 Tomcat 的默认端口是 8080,这样我们在访问的时候就需要这样 http://localhost:8080/资源名字,我们知道 http 协议的默认端口是 80,而我们在进行网络访问的时候,默认都是遵循 http 协议的,因此如果我们的 Tomcat 的端口是 80 的话,我们在访问的时候就可以不写端口号了也就是 http://localhost/资源名字,接下来我们来修改一下 Tomcat 的默认端口。这个该怎么修改呢?我们打开 Tomcat 的配置文件,然后打开 server.xml,可以看到这些

这里写图片描述

没错我们就可以在这里修改默认端口,我们将它修改成 80,然后保存。这个时候我们再像如下方式访问就是不成功的。

这里写图片描述

必须是如下这个样子

这里写图片描述

好吧,我相信你已经懂了。

5.2、将 Tomcat 作为服务器安装在电脑上

首先我们要知道 Tomcat 的安装有两种形式,一种就是我们之前一直在讲的解压免安装版的,这个解压之后,配置好环境变量也就是

JAVA_HOME 就可以直接使用了。

另外一种是安装版的,这个有一定的好处就是可以设置成开机自启,这样就省去了我们每次启动 Tomcat 的麻烦。

那么如何将我们的 Tomcat 作为服务器安装在电脑上呢?其实也很简单,我们一起来看看,在 Tomcat 的 bin 目录下有一个 service.bat 文件,这个文件就代表安装和卸载,我们在当前目录下打开 CMD,这里给大家说一个技巧,不知道大家平常如果要在当前目录下打开 cmd 都是怎么做的,是不是 win+r 输入 cmd,然后使用 cd 切换到当前目录下呢?如果你是这样那就太落后了

这里写图片描述

这个技巧我一般人还不告诉他们呢?进入 dos 窗口之后我们执行以下操作

这里写图片描述

这样我们就成功安装了,怎么验证呢?我们打开服务界面

这里写图片描述

可以看到 Tomcat 已经作为我们的服务安装在了本地,当然我们还可以使用 service remove 来卸载 Tomcat!

5.3、tomcat 的安全配置

我们先来看下这个界面

这里写图片描述

肯定不陌生吧!你们知道这个页面对应 tomcat 中的哪个文件吗?我们来看看

这里写图片描述

其实我们访问 localhost 就是默认打开的 ROOT 这个文件夹中的内容,那么我们再来看这个页面上的其他内容

这里写图片描述

比如这个 Documentation,我们点击

这里写图片描述

这就是 tomcat 的文档内容。那么这个页面有对应 tomcat 中的哪个文件夹呢?

这里写图片描述

对就是这个 docs。接下来我们看这个、

这里写图片描述

点击下看看

这里写图片描述

竟然让输入用户名和密码,这个好像真不知道,怎么办,还是先取消吧

这里写图片描述

哎呦,出现了这个页面,仔细一看,很有用啊,意思就是我们可以自己设置账户密码,去哪设置呢?在 conf/tomcat-users.xml 这个里面,好,咱去看看

这里写图片描述

就是这个,打开它

这里写图片描述

是这个样子的,然后怎么办,我们再看之前的那个 401 界面,其中提到好像要输入这些内容

这里写图片描述

好,我们直接复制过去

这里写图片描述

然后保存,我们试着这个账户和密码去登录一下试试

这里写图片描述
对了,tomcat 可是要重新启动才行的。

这里写图片描述

看见没,登录进来了,而且别有洞天啊。

这里写图片描述

我们点击这个

这里写图片描述

你看到了什么?这其实就是部署在 tomcat 中的项目也就是这些

这里写图片描述

好啦,差不多了,好好理解理解!

6、如何配置 Javaweb 项目

6.1、标准 web 结构

这里写图片描述

根据这个图要能够手动创建一个 web 项目文件,其中的 web.xml 文件中的内容可以到 Tomcat 中的示例文件中去拷贝,然后只保留根部文件即可,也就是这个

这里写图片描述

6.2、使用 eclipse 搭建一个干净的 web 项目

这里写图片描述

这里面有两点需要注意,第一就是 web.xml 这个文件不要忘记了,可以去 tomcat 的示例文件中去拷贝,最后要是图中那个样子,第二点就是一般的 Java 项目,编译后的文件都会存放在 bin 目录,这个可以怎么看呢?我们打开这个项目的根目录

这里写图片描述

打开这个文件,会看到这样的

这里写图片描述

但是这里我们要去改变这个路径,怎么改呢?在你的项目名字上右击选择 build path,然后选择最后一个配置 path

这里写图片描述

紧接着选择我们项目下的 WEB-INF 中的 classes 作为此路径

这里写图片描述

点击 ok,我们再看看此时的路径

这里写图片描述

而且你发现没,此时我们项目中的 classes 这个文件也没有了。

当搭建好一个纯净的 web 项目时,我们怎么去部署项目呢?我们先来写一个 html 文件,就叫做 index.html,也许你会问为什么叫 index 啊,其实叫什么都无所谓,但是你要知道在访问的时候会默认去访问叫 index 的文件,还记得之前我们启动 Tomcat 的时候去浏览器访问 http://localhost:8080/index.jsp吗?不过我们当时可是没有写 index.jsp 啊,但是依然能够成功访问,这是为什么呢?因为浏览器会默认去打开 index.jsp 这个文件!

好了,言归正传,开始在你的 web 项目中新建一个 index.html 文件吧!然后写上一句话。

这里写图片描述

要看清了,是在 webapp 目录下新建 html 文件。然后我们怎么去访问这个界面呢?接下来我们就来看一下最原始的页面是如何通过 tomcat 被访问的。我们先找到我们 tomcat 的安装目录,找到这个文件夹

这里写图片描述

打开它

这里写图片描述

接下来,我们启动 tomcat,然后访问如下网址

这里写图片描述

这个时候我们就可以发现,这个网址打开的就是 tomcat 中 webapp 中的 ROOT 中的 index.jsp。

当我们去访问如下网址的时候

这里写图片描述

其实就是访问的 examples 中的 index.html,好,到这里也许你就明白了,然后我们将我们在 eclipse 中创建的 web 项目的根目录也就是 webapp 复制到 tomcat 中的 webapps 中,复制如下文件夹

这里写图片描述

然后复制到如下目录

这里写图片描述

然后访问

这里写图片描述

看到没,看到没,其实这里的完整路径应该是

这里写图片描述

到这里,你应该知道一个 web 项目是如何部署在 tomcat 上然后运行起来的了,不过,我们使用 eclipse 不能还这样做吧,那肯定不是啦!

6.3、安装 eclipse 的 tomcat 插件

安装 eclipse 插件的方式有很多中,其中有一种连接的方式,这一块我认为不是什么大问题,在 Java 中需要研究的地方太多了,我们哪有那么多时间去一一研究,所以像安装插件这种事我们掌握一种二其他的有所了解就行,这里我们就选取将插件拷贝到 eclipse 种特定文件的方式安装插件

这里写图片描述

这个 tomcat 插件安装完成之后会在 eclipse 中显示三只猫

这里写图片描述

这三只猫分别代表打开,关闭和重启,但是如果你先在去点击这三只猫会出现这样的提示

这里写图片描述

这是因为我们只是把插件安装好了,但是并没有连接到我们的 tomcat,因此需要做一下配置,操作如图

这里写图片描述
紧接着

这里写图片描述

这时候我们再点击第一只猫启动 tomcat

这里写图片描述

成功启动。

7、部署 web 项目

首先什么是部署 web 项目呢?我们需要明白的是部署项目其实就是将我们创建的 web 项目部署在 tomcat 服务器中,这样我们才可以通过浏览器去访问我们写的页面,我们在之前也提到过一种部署 web 项目的方式,就是将 web 项目中的 webapp 整个文件夹拷贝到 tomcat 中的 webapps 中,这样我们就可以通过拼凑访问路径进行访问了,比如我们的 web 项目中在 webapp 下我们写了一个 html 页面,那么我们如何访问这个页面呢?

这里写图片描述

我们可以将 webapp 整个文件拷贝到一下目录中去

这里写图片描述

然 后 我 们 启 动 tomcat , 在 浏 览 器 中 输 入 http://localhost/webapp/index.html就可以访问到我们写的那个页面了。

直接说了吧,以上这种方式可行是可行但是会有很多缺点,我们在实际开发中可能也不会用这种方式,那么我们需要使用哪种方式去部署项目呢?

7.1、在 server.xml 中去配置部署 web 项目

这个方式是我们比较常用的方式,具体该怎么做呢?我们打开 tomcat 中的 conf 文件夹,打开其中的 server.xml,找到 Host,在这个里面进行如下配置。

这里写图片描述

这里主要配置了两个东西,第一个是 docBase,这是一个路径,就是我们 web 项目中 webapp 的路径,这个路径可以这样获取

这里写图片描述

然后可以看到

这里写图片描述

这个路径就是 docBase 的路径,另外一个是 path,这个是干什么的呢?首先你要明白,在 tomcat 我们可以部署多个项目,那么这个 docBase 就有可能相同,那么我们该如何区分要访问的是哪个项目呢?就通过这个 path,这里有点像是别名的意思,我这里的 path 写成了 ithuanqging,然后保存。

经过这样的操作,docBase 所指的这个路径的项目就相当于部署到了 tomcat 的服务器中,接下来我们去访问我们写的 index.html 这个文件,这个时候按理说我们是可以通过访问 http://locahost:80/index.html直接访问的,可是呢?

这里写图片描述

无法访问,显示 404 无法找到页面,这是为什么呢?因为你没有用到我们的别名 path 啊!其实我们应该这样访问

这里写图片描述

这样就可以正常访问了,所以,来,再看一遍这个配置

这里写图片描述

你以为到这里就结束了吗?你没觉得每次还要输入这个 path 的名称才能访问很不爽吗?

我们先来看下我们这样配置之后启动 tomcat 的时候给了我们一个警告

这里写图片描述

这个警告告诉我们这个 path 要么是空字符串,要么在字符串前面加一个反斜杠,我们先来加一个反斜杠试试(配置发生改变要重新启动 tomcat)

这里写图片描述

然后依然去访问看看

这里写图片描述

没啥影响,正常访问,那么我们再来试试空字符串

这里写图片描述

然后再去访问,

这里写图片描述

这是怎么回事?你发现没,当我们把 Ppath 设置成空字符串的话我们再去访问的时候是不是就不需要再写 ithuanqging 这个别名

了,是不是就应该访问 http://localhost:80/index.html这个地址呢?我们试试

这里写图片描述

好完美!接下来总结一下,最终的配置一般是这个样子的

这里写图片描述

然后我们可以直接这样访问

这里写图片描述

好了,部署项目就是这些了!

8、可以耍酷的虚拟主机(tomcat)

我们知道,当我们成功启动 tomcat 的时候,我们可以访问 http://localhost:80/index.html这个网址去打开这个index.html文件,但是不知道大家有没有想过,这个 localhost 是什么玩意啊?为什么要写 local host 啊,想必大家还记的验证 tomcat 是否启动成功要通过浏览器访问去验证,一般的访问网址格式是这个样子的 http://本机 ip 地址:端口号/资源名字

我们现在启动 tomcat,然后去访问 http://127.0.0.1:80/index.jsp

这里写图片描述

出现的是这个页面,这时候我们输入的那个网址在浏览器中是这个样子的

这里写图片描述

而且只输入一个 127.0.0.1 也是可以访问到的,前提是 tomcat 成功启动

这里写图片描述

这个时候你要知道为什么只输入一个 127.0.0.1 就可以实现访问,因为 tomcat 的默认端口被我们改成 80 了,而浏览器访问统一遵循 http 协议,而 http 协议的默认端口正是 80 所以不写也可以,而 index.jsp 一般都会默认打开这个叫 index 的文件,因此不写也可以,所以说一切都是默认惹的祸,你可要清楚了。

这个时候我们再想,为什么输入 127.0.0.1 可以访问,输入 localhost 有相同的效果呢?我们来找到我们电脑中的 host 文件

这里写图片描述

打开它

这里写图片描述

我们看到最后一行似乎明白了啥,在此之前我们需要先来了解一下这个 hosts!

Hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 Hosts 文件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。

也就是说 localhost 其实就是对应着 127.0.0.1 的,因此我们不管输入哪一个效果都是一样的。

现在我们再来谈一下我们的 tomcat 虚拟主机,首先你要明白这样一个概念,tomcat 是一个软件服务器,当你在你的电脑中成功安装一个 tomcat 并且成功启动以后,这时你的电脑就成为了一个硬件服务器,也就是一个主机(安装了软件服务器的电脑)

这个时候我们再想,验证 tomcat 为什么使用的是 localhost,为什么不是其他的,我们来看看 tomcat 中的这个文件

这里写图片描述

又是这个文件,好吧,打开它

这里写图片描述

看到没,其实这里的 Host 就代表虚拟主机,而我们的名字就是 localhost,因为在我们的电脑中 localhost 对应着 127.0.0.1 啊,下面我们来做一下测试

这里写图片描述

我们将 name 从 localhost 改成 ithuangqing,然后是不是可以直接输入 ithuangqing 进行访问呢?我们试一下

这里写图片描述

我们发现不行,其实我们还差一步

这里写图片描述

需要在我们的 hosts 文件中添加这个对应代码,添加之后保存,我们再来试试

这里写图片描述

完美成功访问。

也就是说在 tomcat 中的 conf 中的 server.xml 中的 Host 就代表主机

这里写图片描述

8.1、配置自己的虚拟主机

接下来,我们就来配置一下自己的虚拟主机,是这个样子的

这里写图片描述

然后我们将原本的哪个虚拟机主机的名字还改为 localhost

这里写图片描述

对了,可不要忘记这个

这里写图片描述

接下来,该让我们的虚拟主机显示点什么呢?

这里写图片描述

我们在 D 盘下新建一个文件夹就叫百度,然后里面有一个 html,就是显示一行字“我的百度呢?” 然后将路径配置在我们虚拟主机中的 docBase,是这个样子的

这里写图片描述

好了,然后重启 tomcat 服务器然后我们输入 localhost

这里写图片描述

然后再输入 ithuanqging

这里写图片描述

完美!这个时候你再想想,我们的主机名字是不是可以随便修改啊,如果改成 www.baidu.com是不是可以呢?我们试试

这里写图片描述

另外别忘了修改 hosts 文件

这里写图片描述

然后重启 tomcat,输入 http://www.baidu.com

这里写图片描述

怎么样,是不是很。。。。好吧,其实没啥技术含量,不过这里有几个问题,首先,我们在我们电脑中的 hosts 文件中分别将 localhost 和 ithuangqing 还有 www.baidu.com都对应着 127.0.0.1,还记的我们之前说输入 localhost 和输入 127.0.0.1 是同样的效果吗?那个时候我们 hosts 文件中只有一个 localhost 对应着 127.0.0.1,可是现在,你猜在浏览器输入 127.0.0.1 会出现什么?我们来试试吧!

这里写图片描述

你会说,这不还跟之前一样吗?好吧,确实跟之前一样,可是我们要往更深层理解,为什么输入 127.0.0.1 会显示 tomcat 的东西而不是我们自定义的内容呢?毕竟我们都对应着 127.0.0.1 啊,所以肯定有个设置什么的,对我们继续来看我们的 server.xml

这里写图片描述

我们可以找到这行配置,对,就是这个 defaulthost,它所对应的主机名字就是输入 127.0.0.1 会显示的主机所配置的内容,为什么我们输入 127.0.0.1 会出现 tomcat 的内容,就是因为我们配置的虚拟主机有一个叫 localhost 的而这个默认的主机也叫 localhost,所以 localhost 和 127.0.0.1 是一样的,因此如果我们将这个默认的主机名字改成 www.baidu.com那么输入127.0.0.1和输入 www.baidu.com就会显示

一样的内容,因为此时两者是相同的。我们来验证一下

这里写图片描述

重启 tomcat 输入 127.0.0.1

这里写图片描述

看见没,这正是我们自定义的内容,也就是说现在 127.0.0.1 就等同

于 www.baidu.com,另外我们的 hosts 文件中 ithuangqing 还对应这

127.0.0.1,是不是输入 ithuangqing 也会显示相同的内容

这里写图片描述

答案是正确的,还是因为此时的 127.0.0.1 已经默认对应这这个叫

www.baidu.com的虚拟机主机了。

理解最重要,就到这了。

获取PDF版本

说实在的把这个文章更新到CSDN真心不容易,因为有太多的图片了,如果你需要本篇文章的PDF版本,请关注微信公众号:一个自学的程序员,后台回复”汤姆猫“即可获得PDF,而且有目录哦,学习更方便!

猜你喜欢

转载自blog.csdn.net/sinat_33921105/article/details/80148264