Tomcat整体结构简单介绍

Tomcat是一个开源的servlet/JSP容器,是广泛使用的Java Web应用服务器之一。下面我来整理一下Tomcat的整体结构简单介绍攻略。

目录结构

Tomcat的安装目录结构如下:

* bin                    // 存放Tomcat的执行脚本和命令
* conf                   // 配置文件目录
* lib                    // 存放Tomcat需要的基础类库和JAR包
* logs                   // 存放Tomcat的日志文件
* webapps                // 存放Web应用程序的文件夹。这里是我们开发时最常用到的目录,把开发好的Web应用程序引入到webapps即可
* work                   // 这个文件夹用来保存Tomcat在运行时JSP编译生成的Servlet文件,它也可以在server.xml作为一个内部标记
* temp                   // Tomcat配置默认的工作目录(在线Java代码编译的时候使用到)

bin目录:存放启动、关闭Tomcat服务器的脚本和命令。其重要文件有startup.sh(启动Tomcat)、shutdown.sh(关闭Tomcat)等。

conf目录:存放配置文件。主要文件如下:

  • server.xml:Tomcat服务器的主要配置文件,定义Tomcat的网络端口,Web应用程序的根目录等。
  • web.xml:Web应用程序的部署描述文件,定义Web应用程序的servlet、JSP、过滤器等。
  • context.xml:Web应用程序的上下文配置文件,定义Web应用程序特殊的参数(例如JNDI等)

lib目录:存放Tomcat需要的基础类库和JAR包。

logs目录:存放Tomcat的日志文件。主要文件有catalina.out和localhost_access_log.yyyy_mm_dd.txt。

webapps目录:用于存放Web应用程序的文件夹。我们可以准备好WAR包,放到webapps下面启动Tomcat即可自动解压(只有部署方式为自动部署时会解压)。

work目录:用于在运行时储存JSP页面的编译代码以及Servlet类文件。

temp目录:Tomcat配置默认的工作目录。

Tomcat的核心组件

Tomcat的核心组件包括:

  • Catalina:Tomcat 的Servlet 容器和 Web 服务器。
  • Jasper:Tomcat 的JSP 引擎。
  • Coyote:Tomcat 的HTTP 连接器。
  • Cluster:Tomcat 的集群服务。
  • Tomcat Native:Tomcat 的本地组件,提供用于Tomcat的APR/Native实现。

其中,Coyote是实现 Tomcat 基本功能的核心组织, 是提供 HTTP(S) 访问的组件;而 Catalina 则是继承于 Coyote 之上的业务组件,是实现servlet和JSP规范API的Java类库集合。

示例说明

示例1:修改Tomcat默认端口

在conf/server.xml文件中找到如下两条配置:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

如上所示,Connector标签中的port参数用于设置Tomcat监听的端口号。我们可以把8080端口改成其他的端口号(如9090),并重启Tomcat服务器即可生效:

<Connector port="9090" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

示例2:添加添加新的Web应用程序

我们把项目目录拷贝到Tomcat的webapps目录下,Tomcat会自动帮我们把这个项目进行解压并部署。如果我们要自己手动部署一个Web应用程序,需要创建一个新的目录,然后在该目录中添加Web应用程序工程结构。例如,假设我们把项目拷贝到了/home/projects/myapp目录下,我们可以使用如下命令为Tomcat添加一个新的上下文:

$ cd $CATALINA_HOME/conf/Catalina/localhost
$ sudo vi myapp.xml

在myapp.xml文件中添加一个Context标签,设置docBase属性并保存:

<Context path="/myapp" docBase="/home/projects/myapp" />

以上代码会在http://localhost:8080/myapp路径下显示我们自己的Web应用程序。需要注意的是,这样添加的Web应用程序通常都需要手动启动和停止。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Tomcat整体结构简单介绍 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • redis删除指定key的实现步骤

    Redis是一种高性能的键值对存储系统,删除指定key在实际中用得非常频繁。下面,我将详细讲解Redis删除指定key的实现步骤,希望能够帮助你更好地使用Redis。 步骤一:确定要删除的key 首先,确定需要删除的key。可以使用Redis的KEYS命令或SCAN命令来获取指定规则的key列表。 redis-cli> keys * 1) "…

    database 2023年5月22日
    00
  • PHP5.3以上版本安装ZendOptimizer扩展

    安装ZendOptimizer扩展是加速PHP代码运行的一种方法,这里是PHP5.3以上版本安装ZendOptimizer扩展的完整攻略。 安装ZendOptimizer扩展 步骤一:下载ZendOptimizer扩展 首先需要到Zend官网下载对应的ZendOptimizer扩展(下载链接)。请注意选择合适的版本和系统环境。 步骤二:解压ZendOptim…

    database 2023年5月22日
    00
  • mysql服务启动却连接不上的解决方法

    我来为你讲解如何解决mysql服务启动却连接不上的问题。 首先,我们需要检查以下几个方面: mysql服务是否启动成功 打开命令行界面,在windows系统中,使用命令:net start mysql,在Linux系统中使用命令:service mysql start。如果mysql服务已经启动成功,则会显示相应提示。 mysql服务是否监听了正确的IP地址…

    database 2023年5月18日
    00
  • Windows7下通过命令行获得System权限问题解决方法

    下面是 “Windows7下通过命令行获得System权限问题解决方法”的完整攻略。 1. 问题描述 在Windows7操作系统下,有时候我们需要获取System权限来执行某些操作,但是普通用户并没有这个权限。那么如何通过命令行获取System权限呢? 2. 解决方法 要解决这个问题,我们可以使用Sysinternals Suite工具集中的PsExec.e…

    database 2023年5月21日
    00
  • Linux怎么添加mysql系统环境变量

    这篇文章主要讲解了“Linux怎么添加mysql系统环境变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么添加mysql系统环境变量”吧! Linux添加mysql系统环境变量 昨天安装完mysql后,直接在export PATH上面一行,增加了export PATH=/usr/local/my…

    MySQL 2023年4月8日
    00
  • MySQL索引机制的详细解析及原理

    MySQL索引机制的详细解析及原理 什么是索引 索引是一种数据结构,能够快速地找到满足特定条件的记录。在数据库中,索引用于加速数据的查询和检索操作。 MySQL的索引类型 MySQL支持多种类型的索引,下面是MySQL支持的主要的索引类型: B-tree索引: B-tree索引是MySQL中最常见的数据结构,它的优点是可以快速插入、删除和搜索数据。 哈希索引…

    database 2023年5月22日
    00
  • mysql查询的控制语句图文详解

    MySQL 是一种常用的关系型数据库管理系统,提供了多种查询数据的控制语句,查询控制语句是 MySQL 最常用的功能之一。本文将详细讲解 “MySQL 查询的控制语句图文详解”,以帮助读者更好地掌握 MySQL 数据库查询的技能。 1. 查找表数据 可以使用以下命令来查找表中数据: SELECT columns FROM table_name WHERE c…

    database 2023年5月21日
    00
  • Springboot整合shiro、jwt、redis总结

    涉及技术: 1. SpringBoot + Mybatis核心框架2. PageHelper插件 + 通用Mapper插件3. Shiro + Java-JWT无状态鉴权认证机制4. Redis(Jedis)缓存框架 5. PostgreSql 实现 完全使用了 Shiro 的注解配置,保持高度的灵活性。 放弃 Cookie ,Session ,使用JWT进…

    Redis 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部