使用Tomcat部署静态项目并处理BUG

news2025/1/16 12:31:06

--听讲的习惯

Tomcat介绍

tomcat what_Arenaschi的博客-CSDN博客

 

 

Tomcat安装及配置教程(超详细)

那些年我们用过的tomcat_Arenaschi的博客-CSDN博客

 简单使用tomcat查看版本信息等·_windows查看tomcat版本命令-CSDN博客

 

Tomcat部署html静态网站的五种方式

 

注:这里的操作是建立在java jdk和tomcat已安装好并且已经配置好环境变量的情况下

方式一:直接把静态项目复制到Tomcat安装目录的webapps目录中。

例如:我们新建一个test文件夹,在文件夹里新建一个test.html文件,然后将整个test文件夹复制到Tomcat安装目录的webapps目录中,启动tomcat后在浏览器输入ip:port/test/test.html即可访问了。

方式二:在tomcat安装目录中有一个conf文件夹,打开此文件夹,其中包含配置文件server.xml,打开配置文件,并在<host>和</host>之间插入如下语句

<Context path="test" docBase="D:\test" debug="0" reloadable="true" crossContext="true"/>

其中,path为虚拟路径,docBase为项目的路径,启动tomcat后在浏览器输入ip:port/test/页面名.html即可访问了。


方式三:在conf目录中,在Catalina\localhost(此处需要注意目录的大小写)目录下新建一个XML文件,任意命名(例如:aaa),只要和当前文件中的文件名不重复即可,代码如下
<Context path="" docBase="D:\test" debug="0" reloadable="true" crossContext="true"/>

其中,path属性可以不写,docBase为项目的路径,启动tomcat后在浏览器输入ip:port/aaa/页面名.html即可访问了。

方式四:配置虚拟主机

在Tomcat8/conf/server.xml文件的host元素中配置

例如:<Context path="/WJ" docBase="D://WJ"/>

<Context psth="浏览器要访问的目录地址" docBase="网站所在磁盘目录"/>

访问方式:localhost:8080/WJ/hello.html

方式五:配置Tomcat8/conf/localhost/xxx.xml

提示:如果在Tomcat8/conf目录下没有Catalina/localhost,可以自己去创建文件夹

在Tomcat8/conf/Catalina/localhost目录下新建一个xml文件,xml的名字就是我们要访问的路径的名字。比如WJ.xml

在WJ.xml中写入:<Context docBase="D://TaoBao"/>

推荐第一种最简单
 

Tomcat配置域名

一、修改端口

tomcat默认监听端口是8080,我们如果想不带端口的直接访问项目,就必须监听80端口。

打开tomcat中conf文件夹下的service.xml

vi/usr/local/tomcat/apache-tomcat-8.5.38/conf/service.xml

将:

<Connector port=“8080” protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort=“8443”

/>

改为:

<Connector port="80"protocol=“HTTP/1.1” connectionTimeout="20000"redirectPort=“8443” />

 

二、配置

  1. <Host appBase="webapps"autoDeploy=“true” name="localhost"unpackWARs=“true” xmlNamespaceAware="false"xmlValidation=“false”>
  2. 至于 <Engine> 标签中的属性可以不修改,修改了 <host> 即可

    <!--没有改动defaultHost 修改其下的host即可-->
    <Engine name="Catalina" defaultHost="localhost">

把name的值修改成你的域名,这样就可以通过你的域名+目录+后缀访问了

<!--原本的标签-->
<!--<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" />
        -->
        <!--
        <Context docBase="" reloadable="" />
        -->

        <!-- 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 &quot;%r&quot; %s %b" />

      </Host>-->
      
     <!--自己添加的标签,配置域名解析-->
     <Host name="www.song.net"  appBase="webapps"
            unpackWARs="true" autoDeploy="true" xmlValidation="" xmlNamespaceAware="">

        <!--配置默认打开项目-->
        <Context docBase="/usr/local/tomcat/apache-tomcat-8.5.55/newwebapps/QingHeWeb" path="" debug="0"   reloadable="true" />

          <Value className="org.apache.catalina.valves.AccessLogValue"    directory="logs"    
                        prefix="qinghejiaoyu.net_access_log."    suffix=".txt"    
                        pattern="%h %l %u %c &quot;%r&quot; %s %b" />
      </Host>

 

静态网页在Tomcat上发布时去掉8080及后缀名.html

我的项目目录: /project/test.html
从 http://localhost:8080/project/test.html 到 http://localhost

一、去掉8080

因为浏览器默认端口是80,将8080端口改为80即可不用输入端口
打开tomcat文件夹–>找到conf–>server.xml–>用记事本打开
找到下面这段

将8080 改为80

重启tomcat即可完成端口修改,再次访问就可使用 http://localhost/project/test.html不加端口访问

去掉后面的/project

还是编辑server.xml,
找到 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
在这行下面添加

<Context path="/" docBase="C:\tomcat\webapps\ROOT\project" reloadable="false" ></Context >

docBase为项目目录

保存重启tomcat后即可使用 http://localhost/test.html 不加项目目录进行访问

去掉test.html

编辑conf下web.xml文件
一直拖到最后我们可以看到这几行

 

在下面增加自己的文件名,如图:

重启Tomcat后即可使用 http://localhost 直接进行访问

tomcat和jdk版本兼容(Tomcat版本要比jdk高)

用的tomcat是低版本的,但是用的jdk却是高版本的,用Servlet做的项目运行都没有问题,但是直接运行jsp却死活都运行失败。

最后发现是tomcat和jdk的版本问题造成的。

总结如下:

tomcat v7.0-------support-------->Java EE 5 and 6

tomcat v8.0-------support-------->Java EE 5,6 and 7

tomcat v8.5-------support-------->Java EE 5,6 and 7

tomcat v9.0-------support-------->Java EE 5,6,7 and 8

(Tomcat版本要比jdk高)

所以 jdk1.8 需要运行在tomcat v9.0才不会出现上述问题

例如运行环境是:jdk1.8.0.1+tomcat8.5.1(实际上不应该会报错),但是还是报了版本不兼容问题。最后升级了tomcat为9.0成功。
一般是和jdk版本保持一致的,也就是说tomcat7对用jdk7版本;tomcat8对用jdk8版本(猜测:但是如果maven中的servlet-api高于tomcat中的servlet-api会出现不兼容的问题,解决这一问题:1、将pom.xml文件中的servlet-api版本与tomcat中的servlet-api保持一致。2、升级tomcat为9.0)。

通常情况下,可以依次类推的。
tomcat8.0最低可以兼容jdk1.7,jdk1.7以上的版本都可以

tomcat版本不能低于兼容的jdk的最低版本:

 
最优配置:
下载tomcat的官网,有兼容列表的;
tomcat v7.0-------support-------->Java EE 6 and 6以上
tomcat v8.0-------support-------->Java EE 7 and 7以上
tomcat v9.0-------support-------->Java EE 8 and 8以上

 

 

Tomcat启动闪退问题整理

Tomcat启动闪退一般有以下几个原因:

1、JDK环境变量配置错误;

2、JDK版本与tomcat版本不匹配(一般jdk1.6,tomcat8.**这样可能会出现类似问题)

3、tomcat内存配置有误(Catalina文件内存配置有误)

4、端口被占用

解决方案: 1、JDK环境变量配置错误;

     排查:

        1)检查环境变量:cmd启动命令行窗口→通过cd命令到tomcat的bin目录下→运行startup.bat。可以帮助查看变量正确性;

        2)打开startup.bat文件,在最后面加上:pause 然后,直接点击运行。也同样可以查看变量

如果是变量问题:

   1.1)配置变量方法一:

在桌面上右键 我的电脑à属性à高级à环境变量à系统变量à新建/编辑 JAVA_HOME\ Path\ CLASSPATH三个环境变量:

        1)JAVA_HOME: D:\Program Files\Java\jdk1.8

        2)Path: %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin;

        3)CLASSPATH:D:\ProgramFiles\Java\jdk1.8\lib\tools.jar;D:\Program Files\Java\jdk1.8\lib\dt.jar;

Step3、检测配置是否成功:开始à运行à输入命令:java –version,显示具体的jdk版本,那么说明jdk安装成功.

   1.2)配置变量方法二:

右键:startup.bat文件-》编辑,在最顶层加上环境变量代码:

        set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181

        set JRE_HOME=C:\Program Files\Java\jdk1.8.0_181\jre

        set CATALINA_HOME=D:\apache-tomcat-7.0.92-windows-x64\apache-tomcat-7.0.92

2、JDK版本与tomcat版本不匹配

        解决方案:升级JDK

3、tomcat内存配置有误(Catalina文件内存配置有误)

        找到配置内存的语句,删除重新配置。

        本人配置的语句为:set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=378m

4、端口被占用

        netstat -ano | findstr “8080”

查看此端口是否被占用。如果被占,则:1)修改tomcat端口;2)将现在使用端口的程序kill掉。

tomcat部署多个域名https

tomcat部署多个域名https

注:tomcat服务器需要8.5以上的版本

说明:

  • port:端口号;
  • certificateKeystoreFile:证书路径(例如:conf/1xxxx.jks);
  • certificateKeystorePassword:证书密码;
  • certificateKeyAlias:证书别名

多个项目配置多个域名

<Host name="xxx.xxx1.com" appBase="webapps/xxx.xxx1.com"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase ="xxx.xxx1.com"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
              prefix="xxx.xxx1.com_access_log" suffix=".txt"
              pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host> 
<Host name="xxx.xxx2.com" appBase="webapps/xxx.xxx2.com"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase ="xxx.xxx2.com"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
              prefix="xxx.xxx2.com_access_log" suffix=".txt"
              pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

一个项目对应多个域名
<Host name="xxx.xxx1.com" appBase="webapps、xxx.xxx1.com" unpackWARs="false" 
 	autoDeploy="true" defaultHost="xxx.xxx1.com">
<!--多个域名别名-->
<Alias>xxx.xxx1.com</Alias>
<Alias>xxx.xxx1.com</Alias>
<!--默认项目访问路径-->
<Context path="" docBase="" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
     prefix="localhost_access_log" suffix=".txt"
     pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1294153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android hook式插件化详解

引言 Android插件化是一种将应用程序的功能模块化为独立的插件,并动态加载到主应用程序中的技术。通过插件化,开发者可以将应用程序的功能分解成独立的模块,每个模块可以作为一个插件单独开发、测试和维护,然后通过动态加载的方式集成到主应用程序中,实现功能的动态扩展和…

骨传导耳机是怎么传声的?骨传导和入耳式哪个危害大一点?

先说结论&#xff0c;骨传导耳机通过人体骨骼来传递声音&#xff0c;骨传导和入耳式耳机&#xff0c;入耳式耳机的危害要大一些&#xff01; 一、骨传导耳机传声原理 骨传导耳机利用骨传导技术&#xff0c;通过将声音转化为机械振动信号&#xff0c;然后通过头骨、颌骨等头骨…

第二十一章——网络通信总结

网络程序设计基础 局域网与互联网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称&#xff0c;是一种网络协议。Internet 网络采用的协议是TCP/IP协议&#xff0c;其全称是Transmission…

基于Java SSM框架实现二手车交易网站系统项目【项目源码+论文说明】

基于java的SSM框架实现二手车交易网站系统演示 摘要 二手车交易网站采用B/S模式&#xff0c;促进了二手车交易网站的安全、质量、快捷的发展。传统的管理模式还处于手工处理阶段&#xff0c;管理效率极低&#xff0c;随着用户的不断增多&#xff0c;传统基于手工管理模式已经无…

ECharts的颜色渐变

目录 一、直接配置参数实现颜色渐变 二、使用ECharts自带的方法实现颜色渐变 一、两种渐变的实现方法 1、直接配置参数实现颜色渐变 横向的渐变&#xff1a; //主要代码 option {xAxis: {type: category,boundaryGap: false,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yA…

国产化软件突围!怿星科技eStation产品荣获2023铃轩奖“前瞻优秀奖”

11月11日&#xff0c;2023中国汽车供应链峰会暨第八届铃轩奖颁奖典礼在江苏省昆山市举行。怿星科技凭借eStation产品&#xff0c;荣获2023铃轩奖“前瞻智能座舱类优秀奖”&#xff0c;怿星CEO潘凯受邀出席铃轩奖晚会并代表领奖。 2023铃轩奖“前瞻智能座舱类优秀奖” 铃轩奖&a…

倚天屠龙:Github Copilot vs Cursor

武林至尊&#xff0c;宝刀屠龙。号令天下&#xff0c;莫敢不从。倚天不出&#xff0c;谁与争锋&#xff01; 作为开发人员吃饭的家伙&#xff0c;一款好的开发工具对开发人员的帮助是无法估量的。还记得在学校读书的时候&#xff0c;当时流行CS架构的RAD&#xff0c;Delphi和V…

CDN是什么?对网站的作用大吗?

CDN即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络&#xff0c;依靠部署在各地的边缘服务器&#xff0c;通过中心平台的负载均衡、内容分发、调度等功能模块&#xff0c;使用户就近获取所需内容&#xff0c;降低网络拥塞&#xff0c;提高用户访问响应速度和命中率…

带你解锁Python操作文件的姿势

什么是文件 文件是计算机中用于存储数据的一种数据结构。它可以是文本文件、图像文件、音频文件、视频文件等等。文件由一系列字节组成&#xff0c;每个字节都有一个唯一的地址。文件可以在计算机的硬盘、固态硬盘、光盘等存储介质上存储&#xff0c;并且可以在需要时被读取和…

2024 年甘肃省职业院校技能大赛信息安全管理与评估赛项规程

2024 年甘肃省职业院校技能大赛高职学生组电子与信息大类信息安全管理与评估赛项规程 一、赛项名称 赛项名称&#xff1a;信息安全管理与评估 赛项类别&#xff1a;团体赛 赛项归属&#xff1a;电子与信息大类 二、竞赛目的 极安云科专注技能竞赛&#xff0c;包含网络建设…

CentOS系统中设置反向代理服务器的步骤

在CentOS系统中设置反向代理服务器可以帮助你隐藏原始服务器的细节&#xff0c;并提高服务器的安全性。以下是在CentOS系统中设置反向代理服务器的步骤概述&#xff1a; 安装反向代理软件&#xff1a; 常见的反向代理软件包括Nginx和Apache。你可以选择其中之一来作为你的反向…

Java的Font类createFont方法创建 +~JF 临时文件

一、问题背景 有一个创建图片的项目&#xff0c;每个图片都包含很多的文字&#xff0c;项目中需要生成海量的这类图片。在windows电脑上运行程序发现C盘的存储空间不断下降&#xff0c;直至为0。 二、问题定位 1、定位磁盘的问题文件 当C盘存储空间为0时&#xff0c;使用《全…

针对Google 的 fuzzer-test-suite 的 pcre2-10.00 编译失败的解决方法

针对Google 的 fuzzer-test-suite 的 pcre2-10.00 编译失败的解决方法 查看文件 fuzzer-test-suite/pcre2-10.00/build.sh&#xff0c;文件内容如下&#xff1a; get_svn_revision svn://vcs.exim.org/pcre2/code/trunk 183 SRCbuild_lib build_fuzzer我们获悉&#xff0c;由…

OpenCvSharp从入门到实践-(07)绘制图形

目录 1、线段的绘制 1.1实例1-绘制线段拼成一个"王"字 2、矩形的绘制 2.1实例2-绘制一个矩形边框 2.2实例3-绘制一个实心矩形 3、圆的绘制 3.1实例4-绘制"交通灯" 4、多边形绘制 4.1实例5-绘制等腰梯形 5、文字的绘制 5.1实例6-绘制文字OpenCvS…

直流负载箱的技术发展趋势和创新有哪些?

直流负载箱广泛应用于电子、通信、航空航天等领域&#xff0c;随着科技的不断发展&#xff0c;直流负载箱也在不断创新和改进&#xff0c;直流负载箱在负载电流和电压的测量方面要求高精度和高稳定性。未来的发展趋势是提高负载箱的测量精度和稳定性&#xff0c;以满足更高要求…

2023年12月7日:QT实现登陆界面

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//窗口设置this->resize(600,500);//重新设置窗口大小this->setWindowTitle("QQ-盗版");//设置窗口名为QQ-盗版this->setWindowIcon(QIcon("D:\\Qt\\funny\\pi…

gma 空间绘图实战(1):绘制多个子图,连接并展示局部放大区域

安装 gma&#xff1a;pip install gma 本文基于&#xff1a;gma 2.0.3&#xff0c;Python 3.10 本文用到的矢量数据为&#xff1a;CTAmap 1.12。来源于 https://www.shengshixian.com/ 。&#xff08;感谢锐多宝&#xff09; 绘图目标 参考代码 import matplotlib.pyplot as p…

网站建设app开发小程序制作|企业软件定制

网站建设app开发小程序制作|企业软件定制 网站建设和软件开发是现代社会非常重要的领域&#xff0c;它们对于企业、机构和个人来说都具有非常大的意义。随着移动互联网的快速发展&#xff0c;小程序制作也逐渐成为一种非常受欢迎的方式。 在过去&#xff0c;建立一个网站需要具…

避雷针防雷接地工程应用方案

避雷针是一种用于防止建筑物或其他设施被雷击的装置&#xff0c;它的原理是利用避雷针的尖端产生的电晕放电来释放空气中的电荷&#xff0c;从而降低雷电的危险性。 地凯科技避雷针的类型主要有以下几种&#xff1a; 普通避雷针&#xff1a;这是最常见的避雷针&#xff0c;它由…

Unitree B2:打破波士顿动力Spot垄断地位的机器狗

原创 | 文 BFT机器人 在技术高速发展的时代&#xff0c;机器狗的出现标志着科技领域在机器人技术方面的显著进步&#xff0c;这些曾经只存在于幻想中的机器狗现在已经成为各领域的新星&#xff0c;为安防巡逻、应急救援、工业检测、教育科研等各行各业带来了新的可能性和机遇…