文章目录

  • 核心结构
  • localhost主机域名
  • 配置虚拟目录
  • 在主机配置中添加``标签
  • 在主机目录中添加配置
  • 配置虚拟主机
  • 查看域名
  • 配置第一个虚拟主机
  • 默认主机`Engine`标签
  • 配置默认应用
  • 修改默认端口号


本文所有的操作基于 apache-tomcat-9.0.52\conf\server.xml

核心结构

java应用端口无法访问_java应用端口无法访问

  • Host:主机域名
  • Context:主机中的应用名称
  • Connector:由指定端口号所对应的程序通过指定访问协议所创建的来凝结对象

localhost主机域名

我们所部署到 Tomcat 的 webapps 中的各个应用,其实是作为默认主机 localhost 的子应用模块出现的。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
      </Host>
  • name:主机名,即域名
  • appBase:该主机所对应的目录。该目录是一个相对于 Tomcat 安装目录的相对路径。
  • unpackWars:是否会自动解压 war 包。为 true,则会自动解压。
  • autoDeploy:在服务器运行状态下,将一个项目放入当前目录中,是否会自动部署到服务器,由 Tomcat 来管理。即将一个项目放入当前目录中是否会自动运行在 Tomcat 下。为 true,则会自动运行。
    <Host/>中包含<Context/>子标签,则该<Context/>标签所指定的项目将通过该主机域名访问。当然,appBase 目录中所有的项目默认也是通过该主机域名访问的。

配置虚拟目录

在主机配置中添加<Context/>标签

就是在Host标签内部添加

<Context path="/webapp" docBase="E:/000Java/000JavaWeb/manual"/>

java应用端口无法访问_javaweb_02

  • path:指定在当前主机域名下访问该应用的 URI。
  • docBase:指定应用目录的路径。

缺陷: 每次修改server.xml后需要重新启动Tomcat

在主机目录中添加配置

server.xml<Engine name="Catalina" defaultHost="localhost">会自动创建一个文件目录

java应用端口无法访问_tomcat_03

我们在localhost中新建一个xml文件,并写入以下代码

<Context docBase="E:/000Java/000JavaWeb/manual"/>

这里我们直接通过xml的文件名访问

java应用端口无法访问_端口号_04


配置虚拟主机

查看域名

只所以我们通过域名 locahost 可以访问本机,是因为我们 Windows 系统本身也充当前DNS 服务器的角色。

C:/Windows/System32/drivers/etc/hosts

这里localhost 域名所对应的 IP 地址为 127.0.0.1,即本地回送地址,表示本机。

java应用端口无法访问_javaweb_05

配置第一个虚拟主机

  1. 在Tomcat下的webapps创建同级目录mywebapps
  2. server.xml下添加一个Host标签
<Host name="www.hello.com"  appBase="mywebapps"
      unpackWARs="true" autoDeploy="true">
</Host>
  1. 修改hosts文件需要管理员权限

java应用端口无法访问_java应用端口无法访问_06

默认主机Engine标签

指如果直接通过 127.0.0.1访问,则是默认localhost

<Engine name="Catalina" defaultHost="localhost">
<Engine/>

配置默认应用

默认与ROOT对应

java应用端口无法访问_java_07

既然这直接与ROOT对应,那我们直接把自己的网页作为ROOT即可

java应用端口无法访问_端口号_08


修改默认端口号

修改在server.xml下添加一个Connector标签

若8080端口号被占用了,则可进行修改

在应用真正上线后,默认端口号是必须修改为 80 的。因为浏览器发出的 HTTP 请求默认端口号为 80。所以在项目真正上线后,会将 Connector 的默认端口号改为 80。这样的话, 用户通过浏览器提交 HTTP 请求,就不用再写端口号了。

java应用端口无法访问_java_09