Tomcat中的catalina.bat原理详细解析
前言
本文主要给大家详细解析了关于Tomcat中catalina.bat原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
tomcat 的真正启动是在 catalina.bat 设置并启动的。startup.bat 只是找到catalina.bat 然后执行catalina.bat 来启动tomat的。下面我们来分析下catalina.bat
验证CATALINA_HOME 环境变量
- 验证CATALINA_HOME 设置是否正确,如果不正确,重新设置CATALINA_HOME 环境变量。
- 如果在CATALINA_HOME\bin目录下找不到catalina.bat,则结束(这里基本不会出现这种情况的,除非catalina.bat 没在tomcat的bin目录下)
设置环境变量
1. 在 CATALINA_BASE 和 CATALINA_BASE 目录下查找 setenv.bat 文件并执行,找不到则不执行。
2. 查找 setclasspath.bat 文件,并执行,找不到则结束
setclasspath.bat 设置java相关的环境变量。
tomcat 日志管理
把tomcat-juli.jar 添加到classPath环境变量中。
并把日志的配置文件路径添加到 LOGGING_CONFIG 环境变量
tomcat-juli.jar 作用
Apache Tomcat由一个自己的实现了java.util.logging多个关键元素的实现。这个实现被称为JULI。实现的核心组件是定制化的LogManager,可以获取运行在Tomcat中的不同web应用(以及不同的class loader)。他支持为应用配置单独的日志配置。当有web应用从内在中是被卸载时,会接到Tomcat的通知,以便他所引用的类可以被清除,避免内存泄露。
控制台信息输出
输出如下:
设置tomcat的启动类
设置 tomcat 远程调试相关参数
开启远程调试功能后,eclipse 中配置 Host 和 Port 然后Debug 就可以远程调试tomcat中的程序了。
其它启动模式
除了远程调试启动模式,还有如下几种启动模式
从这可以看出,启动tomcat、关闭tomcat都是调用的catalina.bat。
run和start 的区别是,是否在新窗口启动tomcat。
run是在本窗口中执行。
start是新开一个窗口执行。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
maven自动部署到远程tomcat服务器的方法
使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配置tomcat的manager 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了) <role rolename="manager-gui"/> <role rolename="m
-
Tomcat实现session共享(session 会话复制)
一.如何保持session会话 目前,为了使web能适应大规模的访问,需要实现应用的集群部署.集群最有效的方案就是负载均衡,而实现负载均衡用户每一个请求都有可能被分配到不固定的服务器上,这样我们首先要解决session的统一来保证无论用户的请求被转发到哪个服务器上都能保证用户的正常使用,即需要实现session的共享机制. 在集群系统下实现session统一的有如下几种方案: 1.请求精确定位:session sticky,例如基于访问ip的hash策略,即当前用户的请求都集中定位到一台服务器中
-
Tomcat中的startup.bat原理详细解析
前言 在刚开始接触计算机,一开始就是win2000,所以对批处理脚本命令都不会.平时启TOMCAT都是鼠标双击startup.bat了,很少看过里面写的是什么,也借学习TOMCAT的机会学习一下批处理的常用命令,不求都记住,但求以后再见到批处理命令能看的懂,说的出是干什么的.本文主要给大家介绍了关于Tomcat中startup.bat原理的相关内容,下面话不多说了,来一起看看详细的介绍吧. startup.bat 解析 验证CATALINA_HOME 环境变量是否设置,如果没有设置则通过CATA
-
Centos7.3下Tomcat8的安装配置教程
本文为大家分享了Centos7.3安装和配置Tomcat8教程,供大家参考,具体内容如下 第一步:下载Tomcat8压缩包 进入http://tomcat.apache.org/download-80.cgi 下载tar.gz压缩包 第二步:用ftp工具把压缩包上传到/home/data/下 第三步:解压以及新建目录 [root@localhost ~]# ls /home/data/ apache-tomcat-8.5.16.tar.gz server-jre-8u131-linux-x64.
-
tomcat共享多个web应用会话的实现方法
tomcat共享多个web应用会话的实现方法 问题 今天有位朋友问了个问题,大致是:tomcat下两个Java web,一个是商城,一个是直播,从商城登录后,再跳转到直播,发现处于非登录状态. 解决思路 将session抽出来成一个session服务,统一通过该服务操作session. tomcat内部用会话管理器获取会话时遍历所有context内的会话. 方案1 重写获取session方法即可. 方案2 找了源码发现已经支持类似遍历所有context内的会话的形式,首先获取session时,如
-
修改Tomcat服务器默认端口号的实现方法
修改Tomcat服务器默认端口号的实现方法 一 修改方法 修改D:\apache-tomcat-7.0.81\conf\server.xml文件如下 二 测试 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
-
Tomcat中的catalina.bat原理详细解析
前言 本文主要给大家详细解析了关于Tomcat中catalina.bat原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. tomcat 的真正启动是在 catalina.bat 设置并启动的.startup.bat 只是找到catalina.bat 然后执行catalina.bat 来启动tomat的.下面我们来分析下catalina.bat 验证CATALINA_HOME 环境变量 验证CATALINA_HOME 设置是否正确,如果不正确,重新设置CATALIN
-
vue.js diff算法原理详细解析
目录 diff算法的概念 虚拟Dom h函数 diff对比规则 patch patchVnode updateChildren 总结 diff算法的概念 diff算法可以看作是一种对比算法,对比的对象是新旧虚拟Dom.顾名思义,diff算法可以找到新旧虚拟Dom之间的差异,但diff算法中其实并不是只有对比虚拟Dom,还有根据对比后的结果更新真实Dom. 虚拟Dom 上面的概念我们提到了虚拟Dom,相信大家对这个名词并不陌生,下面为大家解释一下虚拟Dom的概念,以及diff算法中为什么要对比虚拟
-
golang切片原理详细解析
目录 切片的解析 切片的初始化 字面量初始化 make初始化 切片的截取 切片的复制 切片的扩容 总结 切片的解析 当我们的代码敲下[]时,便会被go编译器解析为抽象语法树上的切片节点, 被初始化为切片表达式SliceType: // go/src/cmd/compile/internal/syntax/parser.go // TypeSpec = identifier [ TypeParams ] [ "=" ] Type . func (p *parser) typeDecl(g
-
Golang Mutex 原理详细解析
目录 前言 Lock 单协程加锁 加锁被阻塞 Unlock 无协程阻塞下的解锁 解锁并唤醒协程 自旋 什么是自旋 自旋条件 自旋的优势 自旋的问题 Mutex 的模式 Normal 模式 Starving 模式 Woken 状态 前言 互斥锁是在并发程序中对共享资源进行访问控制的主要手段.对此 Go 语言提供了简单易用的 Mutex.Mutex 和 Goroutine 合作紧密,概念容易混淆,一定注意要区分各自的概念. Mutex 是一个结构体,对外提供 Lock()和Unlock()两个方法,
-
Mybatis中的config.xml配置文件详细解析
经过前面的文章,我觉得对Mybatis的正题理解已经足够了,但是对Mybatis的使用,我觉得还是会有一点的模糊,就我个人而言,我觉得掌握好Mybatis框架,主要要明白三个文件,第一个就是等下要谈论的Mybatis-comfig.xml文件,还有就是**Mapper.xml,以及我们所定义的Mapper类,理解了这三个东西,然后有sql的基础,还有java的基础的话,后面不论是使用基于xml的方法,还是基于java-based Configuration的方法,都会简单的多. 废话不多说,现在
-
React函数式组件Hook中的useEffect函数的详细解析
目录 前言 useEffect的作用 useEffect的使用? 1.class组件 2.函数式组件 总结 前言 React函数式编程没有生命周期,因此需要借助useEffect来实现. useEffect的作用 发ajax请求获取数据 设置订阅/获取定时器 手动更改真实DOM useEffect的使用? 1.class组件 在class组件中可以使用生命周期函数,知道组件触发的过程. 代码如下(示例): import React, { Component } from 'react' expo
-
React函数式组件Hook中的useState函数的详细解析
目录 前言 一.什么是函数式组件 二.useState 前言 公司项目需要使用react,而函数式组件也是官方比较推荐的!!!所以学习hooks是很重要的. 一.什么是函数式组件 纯函数组件有以下特点: 没有状态 没有生命周期 没有 this 因存在如上特点,使得纯函数组件只能做UI展示的功能, 涉及到状态的管理与切换就不得不用到类组件或者redux. 但因为简单的页面也是用类组件,同时要继承一个React实例,使得代码会显得很重. 以前我们可以使用class来声明一个组件,其实使用functi
-
tomcat中Servlet的工作机制详细介绍
tomcat中Servlet的工作机制 在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init.service.destroy等方法,Servlet在初始化时要调用init方法,在销毁时要调用destroy方法,而对客户端请求处理时则调用service方法.对于这些机制的支持都必须由Tomcat内部去支持,具体则是由Wrapper容器提供支持. 在tomcat中消息流的流转机制是通过四个不
-
React Hook中的useState函数的详细解析
useState => 让函数组件具有维持状态的能力useState 这个 Hook 是用来管理 state 的,它可以让函数组件具有维持状态的能力.即在一个函数组件的多次渲染之间,这个 state 是共享的. Hooks 的最大的作用就是可以让你在不编写class的情况下使用state以及其他的 React 特性 useState的详细解析 在上一篇文章中, 我用到useState来让大家体验一下hooks函数 import { memo, useState } from "react&
随机推荐
- 使用js写的一个简易的投票
- JQuery中绑定事件(bind())和移除事件(unbind())
- 对Java中传值调用的理解分析
- 轻松搞定iOS本地消息推送
- 使用onbeforeunload属性后的副作用
- 在PHP中使用模板的方法
- PHP curl使用实例
- PHP编辑器PhpStrom运行缓慢问题
- 在笔记本电脑上安装Linux
- MongoDB学习笔记(一) MongoDB介绍与安装方法
- Java 使用poi把数据库中数据导入Excel的解决方法
- jQuery DOM操作 基于命令改变页面
- Android手机联系人带字母索引的快速查找
- PHP HTML代码串 截取实现代码
- 深入解析Java编程中面向字节流的一些应用
- C#生成code128条形码的方法
- Javascript 数组去重的方法(四种)详解及实例代码
- ftp类(example.php)
- 深度优先与广度优先Java实现代码示例
- Python编程argparse入门浅析