【tomcat】tomcat学习笔记

news/2024/9/20 7:11:48 标签: tomcat, 学习, 笔记

文章目录

  • 1.tomcat乱码问题
    • 1.1 linux乱码中文显示乱码问号问题
    • 1.2windows乱码
      • 1.2.1 方式一
      • 1.2.2方式二
    • 1.3 Idea中运行tomcat乱码问题
  • 2. 获取tomcat启动端口号
  • 3. idea运行tomcat 的配置问题
  • 4.dockerfile构建tomcat镜像问题
    • 4.1 替换端口号
  • 5.启动多个tomcat方法
  • 6.修改tomcat JAVA_HOME环境变量
  • 7. 启动报错
  • 8.jdk版本对应

tomcat_1">1.tomcat乱码问题

1.1 linux乱码中文显示乱码问号问题

启动文件中catalina.sh添加

JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8"

在这里插入图片描述
(最好单独放在一个脚本 setenv.sh中,要chmod +777 setenv.sh)
在这里插入图片描述

1.2windows乱码

1.2.1 方式一

在这里插入图片描述

1.2.2方式二

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tomcat_19">1.3 Idea中运行tomcat乱码问题

同样修改java.util.logging.ConsoleHandler.encoding = GBK

tomcat_22">2. 获取tomcat启动端口号

MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
try {
    QueryExp protocol = Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"));
    ObjectName name = new ObjectName("*:type=Connector,*");
    Set<ObjectName> objectNames = beanServer.queryNames(name, protocol);
    for (ObjectName objectName : objectNames) {
        String catalina = objectName.getDomain();
        if ("Catalina".equals(catalina)) {
            port=objectName.getKeyProperty("port");
        }
    }
} catch (MalformedObjectNameException e) {
    e.printStackTrace();
}    

tomcat__39">3. idea运行tomcat 的配置问题

在这里插入图片描述

tomcat_41">4.dockerfile构建tomcat镜像问题

4.1 替换端口号

RUN sed -i ‘s|“8080”|“6098”|g’ server.xml

tomcat_45">5.启动多个tomcat方法

tomcat服务器需配置三个端口才能启动,安装时默认启用了这三个端口,当要运行多个tomcat服务时需要修改这三个端口,不能相同。
端口一:
修改Shutdown远程停服务端口(默认为8005端口) <Server port="19080" shutdown="SHUTDOWN">

端口二:
修改http访问端口(默认为8080端口),配置文件为tomcat\ conf\service.xml
<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 
<!-- A "Connector" using the shared thread pool-->
<!-- <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />


端口三:(如果没有用到,可以不修改,因为有点版本是注释的)
修改AJP端口(默认为8009端口) <!-- Define an AJP 1.3 Connector on port 8009 --> 
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

tomcat_JAVA_HOME_62">6.修改tomcat JAVA_HOME环境变量

bin目录下setclasspath.sh
默认配置为
在这里插入图片描述
自定义配置后(如果没有配置系统环境变量的话)
在这里插入图片描述

7. 启动报错

https://www.jiweichengzhu.com/article/4920ecca8a784a4b92d449afe3fe76e5
在这里插入图片描述
去logs中找到localhost日志;
在这里插入图片描述
发现这个包版本不对,更新包.

8.jdk版本对应

JDK版本在官方对应的版本号列表如下:

JDK 8.0 = 52,
JDK 7.0 = 51,
JDK 6.0 = 50,
JDK 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

http://www.niftyadmin.cn/n/5666799.html

相关文章

汽车焊机数据通信:Profinet转Canopen网关的神奇连接

在汽车制造领域&#xff0c;汽车焊机的高效、稳定运行对于整车质量至关重要。而Profinet转Canopen网关在汽车焊机的数据通信中发挥着关键作用。 Profinet是一种广泛应用于工业自动化领域的通信协议&#xff0c;具有高速、实时、可靠等特点。Canopen则在汽车电子等领域有着广泛…

JSONC:为JSON注入注释的力量

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;广泛应用于Web开发、配置文件和数据存储等领域。 其简洁的语法和易于解析的特点&#xff0c;使得JSON成为了现代编程中不可或缺的一部分。然而&#xff0c;JSON的一个显著缺点是…

Delphi5利用DLL实现窗体的重用

文章目录 效果图参考利用DLL实现窗体的重用步骤1 设计出理想窗体步骤2 编写一个用户输出的函数或过程&#xff0c;在其中对窗体进行创建使它实例化步骤3 对工程文件进行相应的修改以适应DLL格式的需要步骤4 编译工程文件生成DLL文件步骤5 在需要该窗体的其他应用程序中重用该窗…

React + Vite 多环境配置

1.根目录创建文件&#xff1a; .env.dev //测试环境 .env.development //本地环境 .env.production //正式环境 .env.uat //预发布环境 注&#xff1a;变量名必须使用 VITE_API 开头 2.package.json 配置&#xff1a; --mode 设置读取制定 .env文件 &#xff0c;默认读取.en…

Java-Day02学习

Java-Day02 一维数组 1.声明数组 int[ ] a; //声明数组时不规定数组长度 2.分配空间 a new int[5]; //分配空间: 告诉计算机分配几个连续的空间。eg:scores new int[30]; avgAge new int[6]; name new String[30]; 3.赋值 a [0] 8; //向分配的格子里放数…

在WPF中自定义控件时如何选择基类

在WPF中需要自定义控件&#xff0c;首要要选择需要继承的基类 FrameworkElement 这是常用的最低级的基类。通常&#xff0c;只有当希望重写OnRender()方法并使用DrawingContext从头绘制内容时&#xff0c;才会继承该类。 Control 当从头开始创建控件时&#xff0c;这是最常用…

[Redis][String][上]详细讲解

目录 0.前言1.常见命令1.SET2.GET3.MSET && MGET4.SETNX && SETXX 2.计数命令1.INCR2.INCRBY3.DECR4.DECYBY5.INCRBYFLOAT6.注意 0.前言 字符串类型是Redis最基础的数据类型&#xff0c;关于字符串需要特别注意&#xff1a; Redis中所有的键的类型都是字符串类…

tasklist命令的应用实例

tasklist命令的应用实例 引言 在系统管理和故障排查过程中&#xff0c;了解当前正在运行的进程信息是至关重要的。Windows操作系统提供了一个强大的命令行工具——tasklist&#xff0c;它可以帮助用户查看当前系统中所有正在运行的进程及其相关信息。掌握这个命令的使用&…