未读代码 未读代码
首页
  • Java 18 新功能介绍
  • Java 17 新功能介绍
  • Java 16 新功能介绍
  • Java 15 新功能介绍
  • Java 14 新功能介绍
  • Java 8 新特性

    • Java 8 Lambda 表达式
    • Java 8 Stream 流式操作
    • Java 8 时间处理介绍
    • Java 8 Optional 介绍
  • Java 开发工具
Java 源码分析
Spring Boot 系列
  • Arthas 问题定位
  • JMH 基准测试
GitHub (opens new window)
首页
  • Java 18 新功能介绍
  • Java 17 新功能介绍
  • Java 16 新功能介绍
  • Java 15 新功能介绍
  • Java 14 新功能介绍
  • Java 8 新特性

    • Java 8 Lambda 表达式
    • Java 8 Stream 流式操作
    • Java 8 时间处理介绍
    • Java 8 Optional 介绍
  • Java 开发工具
Java 源码分析
Spring Boot 系列
  • Arthas 问题定位
  • JMH 基准测试
GitHub (opens new window)
  • Java web 开发

    • Web笔记(一) Web 简介与开发环境搭建
    • Web笔记(二)Tomcat 使用总结
      • Web笔记(三)Servlet 的类与接口API
      • Web笔记(四)Servlet 程序开发
      • Web笔记(五)Servlet 的生命周期
    • Java web 开发
    • Java web 开发
    程序猿阿朗
    2018-08-23

    Web笔记(二)Tomcat 使用总结

    # Tomcat 介绍

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。(摘录自Wiki (opens new window))(Apache Tomcat (opens new window))

    # Tomcat 安装

    Tomcat是免费的开源软件,可在直接在官方网站下载。 http://tomcat.apache.org/ (opens new window) 1.可以直接在左侧选择版本:

    enter image description here

    2.选择版本后可以在下方进行下载,可以选择下载安装版或者解压版,这里选择了解压版 tar.gz文件是Linux操作系统下的安装版本 exe文件是Windows系统下的安装版本 zip文件是Windows系统下的压缩版本

    enter image description here

    3.下载完成后解压缩,得到Tomcat目录,

    Tomca目录

    # Tomcat 的默认端口

    Tomcat 修改HTTP默认端口,可以直接修改Tomcat 目录下\conf \server.xml文件。默认端口号为8080,修改为想要的端口,重启Tomcat即可。

    <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    1

    若要修改成8081端口:

    <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>
    
    1

    # Tomcat 的虚拟目录配置

    什么是虚拟目录呢,简单的说,我们可以根据请求的路径不同,来发布不同的项目。如此形式:我们想要 在访问http://www.codingme.net/testA 时,进入A项目。 在访问http://www.codingme.net/testB 时,进入B项目。 这个时候我们就需要配置虚拟目录来完成这个操作。 此时的URL:http://www.codingme.net/testA 不是单纯的路径,而是协议域名端口号+WEB应用testA。

    # 自动映射虚拟目录

    在Tomcat 默认情况下,我们可以看到 %Tomca%\conf \server.xml文件最底部有配置如下:

          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <!-- SingleSignOn valve, share authentication between web applications
                 Documentation at: /docs/config/valve.html -->
            <!--
            <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
            -->
            <!-- Access log processes all example.
                 Documentation at: /docs/config/valve.html
                 Note: The pattern used is equivalent to using pattern="common" -->
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t "%r" %s %b" />
          </Host>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    这里Tomcat 默认配置了虚拟主机localhost,基础应用目录webapps,也就是%Tomca%\webapps\ 目录,Tomcat 服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。 因此在需要配置虚拟目录时我们可以直接把项目复制到webapps 目录下进行发布 示例:

    1. 复制项目到webapps下

    复制项目到webapps 2. 查看test/ index.html 文件内容 Index内容 3. 运行%Tomcat%/bin/startup.bat 启动Tomcat 4. 进行访问测试http://localhost:8080/test/index.html

    访问测试

    注意:http://localhost:8080 会默认访问 webapps/ROOT文件夹中的内容。

    # 修改server.xml 映射虚拟目录

    我们也可以通过在server.xml 文件中的host 元素之间添加配置代码来配置虚拟目录:添加代码如下;

    Context path="/app" docBase="D:/app" debug="0" reloadable="true" crossContext="true"/>
    
    1

    配置中我们配置了访问路径为/app ,项目路径D:/app 因此我们只要把要发布的内容放入D:/app 文件夹中即可。 配置完毕后 运行%Tomcat%/bin/startup.bat 启动Tomcat,可以通过

    http://localhost:8080/app/index.html

    访问到D:/app/index.html,需要多个虚拟目录可以直接配置多条配置。

    注意:若想使用http://localhost:8080 访问项目则需要配置 path="" 注意:配置中的path值和docBase中的文件夹名称没有任何关系。

    # 在conf /Catalina /localhost 增加xml文件映射虚拟目录

    博主比较推荐这一种。 在%Tomcat%/conf/Catalina/localhost目录中,增加配置文件来配置虚拟目录。 配置文件名称格式为:虚拟目录路径.xml 举个栗子: 在%Tomcat%/conf/Catalina/localhost目录中增加文件 blog.xml 写入内容:

    <?xml version="1.0" encoding="utf-8"?>
     <Context
    	 docBase="d:/blog"
    	 reloadable="true">
    </Context>
    
    1
    2
    3
    4
    5

    Tomcat-localhost

    D盘下blog文件夹中内容:

    docBase="d:/blog" 指定了Web应用存放位置为D盘下blog文件夹中。 reloadable="true"表示当blog文件夹中文件有变化中,自动加载。 配置完毕启动Tomcat后就可以通过访问到blog文件夹中的内容。

    http://localhost:8080/blog

    注意:需要多个虚拟目录可以多建立几个配置文件,文件名不能相同。 注意:若想使用http://localhost:8080 访问项目则需要配置文件名为ROOT.xml。 注意:文件名blog.xml 和配置中d:/blog 没有关系,文件名可以写成其他,如blog111.xml,那么在访问时就要访问http://localhost:8080/blog111

    # Tomcat 的虚拟主机

    首先我们先了解虚拟主机的用处,一个虚拟主机也就是一个网站。比如我们只有一个服务器,一个服务器上只有一个80端口,我们需要发布两个web项目,那么我们可以使用虚拟目录,把两个项目发布到两个不同的路径之下,但是如果我们有两个不同的域名需要把两个项目对应两个域名,我们就需要配置虚拟主机了。

    示例:两个域名 一个是www.aaaa.com 一个是 www.bbbb.com

    为了实验效果,我们配置C:\Windows\System32\drivers\etc\hosts 文件,添加两行映射。

    127.0.0.1	www.aaaa.com
    127.0.0.1	www.bbbb.com
    
    1
    2

    此时我们本机可以使用 localhost / www.aaaa.com / www.bbbb.com 进行访问。

    配置虚拟主机指定www.aaaa.com访问是的内容。 1:在server.xml中Engine元素中添加一个host子元素

    <Host name="www.aaaa.com" debug="0" appBase="d:/aaaa" unpackWARs="true"
    autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    	<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"
    	prefix="aaaa_log." suffix=".txt" timestamp="true" />
    </Host>
    
    1
    2
    3
    4
    5

    其中的

    1. name表示在访问的域名是www.aaaa.com时会使用此配置。
    2. appBase="d:/aaaa" 指定了项目的发布路径。

    启动Tomcat后,此时在使用www.aaaa.com进行访问时候,会默认显示d:/aaaa/ROOT中的内容。

    如果存在 d:/aaaa/test,则可以通过http://www.aaaa.com:8080/test 进行访问。
    此时test也就是www.aaaa.com的虚拟目录。 添加www.bbbb.com 访问同上。

    # Tomcat 的单例多实例配置

    参考之前文章 Linux配置Tomcat的单机多实例 (opens new window)

    订阅

    文章持续更新,订阅可以关注「 程序猿阿朗 」公众号或者未读代码博客。

    文章作者: 程序猿阿朗
    文章链接:https://www.wdbyte.com/2018/08/develop/web/web/base-02/
    版权声明:本网站当前文章采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 未读代码!
    #Tomcat#Java EE
    上次更新: 2022/12/05, 08:18:32
    Web笔记(一) Web 简介与开发环境搭建
    Web笔记(三)Servlet 的类与接口API

    ← Web笔记(一) Web 简介与开发环境搭建 Web笔记(三)Servlet 的类与接口API→

    最近更新
    01
    如何搭建一个自己的音乐服务器
    12-04
    02
    JUnit 5 单元测试教程
    11-17
    03
    使用 StringUtils.split 的坑
    11-02
    更多文章>

    提示:评论前请刷新页面,否则评论的可能不是当前文章。

    Theme by Vdoing | Copyright © 2018-2022 程序猿阿朗 | MIT License | 皖ICP备20000567号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式