24-Tomcat

news2024/11/26 22:50:47

目录

1.Tomcat是什么?

2.版本号

3.下载

4.目录介绍

4.1.bin目录

4.2.conf目录

4.3.logs目录

4.4.webapps目录

5.启动服务器

PS:解决Tomcat乱码问题

PS:Tomcat点击启动,控制台一闪而过,啥也没有解决方案

PS:Windows系统命令提示符中输入ls命令报错解决方案

6.部署静态页面

6.1.部署 HTML 到ROOT的根目录中

6.1.1.创建 HTML文件(jsdemo.html)

6.1.2.把 HTML 文件拷贝到 Tomcat 的 webapps/ROOT 目录中

6.1.3.启动Tomcat

6.1.4.在浏览器中通过 URL来访问

6.2.部署 HTML/某个系统到单独的目录中

6.2.1.在 webapps 中创建目录 blog,和 ROOT 目录并列

6.2.2.把创建的对应页面拷贝到 blog 目录中

6.2.3.调整相关代码引用的 css、js、图片等的路径

--->PS:"相对路径" vs "绝对路径"

6.2.4.启动Tomcat

6.2.5.在浏览器中通过 URL访问其中一个页面:login.html


1.Tomcat是什么?

Tomcat 是⼀个 HTTP 服务器,使⽤它可以部署和发布网站(HTTP服务端),(后端的程序和前端的页面都需要部署和发布)让外⽹的⽤户直接访问。

如果不使⽤ Tomcat,你是没办法让外⾯的⽤户访问你的系统的,你总不能把你的电脑直接拿给每个⽤户让他使⽤吧?⽽⽤了 tomcat 之后就可以实现让外部的普通⽤户访问你的⽹站了(当然在实现这个⽬标的时候你还需要⼀个固定的外⽹IP【或⼀台云服务器,都会带有固定IP】)

(家庭网或企业网(私网)是动态IP,没有固定IP,可以去用那个网络,但是没有一个名分,别人不能通过固定IP定位到你的机器;且这个网络以外的人不能访问)

Servlet 项目必须通过 Idea + Tomcat 来进行运行。

2.版本号

Tomcat版本很多,这里使⽤ Tomcat 8。

3.下载

在 Tomcat 官⽹下载即可。

下载https://tomcat.apache.org/download-80.cgi

Tomcat不像.exe文件,它不需要安装,它是一个zip压缩包,下载后解压缩就能用。解压缩的⽬录、用户名中最好不要带 "中⽂" 或者特殊符号。

它只针对windows-x64,若买了云服务器Linux,把这个Tomcat放到云服务器上,是用不了的。

4.目录介绍

4.1.bin目录

4.2.conf目录

4.3.logs目录

4.4.webapps目录

其中最关注的⽬录就是 webapps ⽬录。web applications 的简称,意思是⽤来存放 web 应⽤的⽂件夹。

理解 "web 应⽤":⼀个具有独⽴完整功能的 "⽹站",我们就可以称为⼀个 "web 应⽤"。例如,搜狗搜索实现了独⽴完整的 "搜索引擎功能",淘宝⽹实现了独⽴完整的 "电商功能",⼀个 Tomcat 服务器上是可以同时部署多个这样的 web 应⽤的。这些 web 应⽤以⽬录的形式被放到 webapps ⽬录中。

5.启动服务器

在 bin ⽬录中,双击 startup.bat 即可启动 Tomcat 服务器。

注意:在 Windows 上通过 cmd ⽅式启动 Tomcat 会出现乱码,但是不影响 Tomcat 的使⽤。乱码的原因是 Tomcat 默认按照 UTF-8 的编码⽅式处理中⽂,⽽ windows 的 cmd 默认是 GBK 编码。如果使⽤ Linux 或者 IDEA 中的终端来启动 Tomcat,则没有乱码问题。

PS:解决Tomcat乱码问题

在conf/logging.properties文件中:

Tomcat启动起来之后就可以访问Tomcat了。Tomcat默认端口号是8080,在浏览器中输⼊本地回环地址 127.0.0.1:8080 或localhost:8080 即可看到 Tomcat 的默认欢迎⻚⾯。如果看不到欢迎⻚⾯,检查 URL 的 IP 地址是否正确以及端⼝号是否被占用,同时也要检查 Tomcat 是否启动成功。

PS:Tomcat点击启动,控制台一闪而过,啥也没有解决方案

原因:

①端口号8080被占用了

Tomcat 启动的时候默认会绑定 8080 和 8005 端⼝,如果有其他进程已经绑定了这两个端⼝中的任意⼀个,都会导致 Tomcat 不能启动。

解决

  • 重启。
  • 用命令关闭占用8080端口的线程:

  • 重新手动给Tomcat配置端口号:在conf/server.xml中。

②jdk环境变量没有配好,Tomcat在运行时需要借助Home环境变量,检查是否配置成功:

③若以上2种还未解决,需要去查看Tomcat的日志

通过日志信息百度搜索,排查解决问题。

PS:Windows系统命令提示符中输入ls命令报错解决方案

原因:

ls是Linux的命令,Windows本身没有这条命令。

解决①:

ls对应Windows上的命令是dir,可执行dir命令:

解决②:

如果就想用ls命令而不想用dir命令,可自定义一个ls命令,实际上执行的还是Windows的dir命令。

步骤:

1)在电脑桌面右键新建文本文档,里面copy如下内容:

@echo off
dir

2)文件另存为文件名:ls.bat,保存类型:所有文件。

3)将ls.bat文件拖到Windows根目录下:

成功!

6.部署静态页面

可以把⾃⼰写好的 HTML 部署到 Tomcat 中。

6.1.部署 HTML 到ROOT的根目录中

6.1.1.创建 HTML文件(jsdemo.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第一个js案例</title>
</head>
<body>
    <h2>计算器</h2>
        数值1:<input type="text" id="ipt_num1"><br>
        数值2:<input type="text" id="ipt_num2"><br>
        <input type="button" value="计算" onclick="mycalc()">
        <p></p>
        <div id="resultDiv"></div>
    <script>
        function mycalc() {
            //1.得到第一个输入框的值
            var num1 = document.getElementById("ipt_num1").value;
            //2.得到第二个输入框的值
            var num2 = document.getElementById("ipt_num2").value;
            //3.类型转换,输入框1的值 + 输入框2的值
            document.getElementById("resultDiv").innerHTML="相加的结果:<span style='color:red;font-size:30px;'>" + parseInt((parseInt(num1) + parseInt(num2))) + "</span>";
        }
        function mytest() {
            //给num1和num2赋一个默认的值0
            //1.得到控件
            var iptNum1 = document.getElementById("ipt_num1");
            var iptNum2 = document.getElementById("ipt_num2");
            //2.操作控件
            iptNum1.value = 0;
            iptNum2.value = 0;
        }
        mytest();
    </script>
</body>
</html>

6.1.2.把 HTML 文件拷贝到 Tomcat 的 webapps/ROOT 目录中

6.1.3.启动Tomcat

6.1.4.在浏览器中通过 URL来访问

http://localhost:8080/jsdemo.html 或 http://127.0.0.1:8080/jsdemo.html

注意:127.0.0.1 为环回 IP,表示当前主机。此时别人⽆法通过这个 IP 访问到自己电脑上的⻚⾯。

6.2.部署 HTML/某个系统到单独的目录中

实际开发中的 HTML 可能不⽌⼀个,依赖的 CSS / JavaScript ⽂件也可能⽐较多,这个时候就不适合全都拷⻉到 webapps/ROOT ⽬录中了(这就会显的⽐较乱)。可以创建⼀个单独的⽬录,和 ROOT 并列,来存放要部署的内容。

6.2.1.在 webapps 中创建目录 blog,和 ROOT 目录并列

6.2.2.把创建的对应页面拷贝到 blog 目录中

为了结构更清楚,在 blog 中创建⼀些⼦⽬录:css、img、js 来分别放 css、图⽚、JavaScript ⽂件。

6.2.3.调整相关代码引用的 css、js、图片等的路径

相对路径需要先确定当前路径,然后再找到⽬标路径。其中 "当前路径" 是根据当前的 HTML ⽂件确定的。

--->PS:"相对路径" vs "绝对路径"

  • 绝对路径以 / 开头
  • 没有 / 开头的路径就是相对路径

若图片按相对路径的写法,浏览器在真正访问这个图⽚时会基于当前路径⽣成绝对路径。也可以直接写成绝对路径的⽅式,效果相同。⼀般建议写成相对路径,这样如果修改了 Context Path,代码仍然可以正常运⾏。

6.2.4.启动Tomcat

6.2.5.在浏览器中通过 URL访问其中一个页面:login.html

可以看到路径上和之前发⽣了变化。由于把这些⽂件都放到了 blog ⽬录中,通过 GET 请求访问这些⽂件时的路径也要带上 blog。此处的 blog 称为 Application Path (应⽤路径) 或者 Context Path (上下⽂路径)。

不仅可以抓html页面,图片,css等都可以访问:

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

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

相关文章

【花雕学AI】4月5日,ChatGPT中国财经背景分析:昨天沪指重返3300点,这说明了什么?

在这里插入图片描述 附录&#xff1a; 一、ChatGPT是一个可以和你聊天的人工智能程序&#xff0c;它可以用文字回答你的问题&#xff0c;也可以根据你的提示写出文章、歌词、代码等内容。ChatGPT是由一个叫OpenAI的机构开发的&#xff0c;它使用了一种叫做GPT的技术&…

TCP协议的相关特性(续)

TCP协议的相关特性&#x1f50e;滑动窗口&#x1f50e;流量控制&#x1f50e;拥塞控制&#x1f50e;延时应答&#x1f50e;捎带应答&#x1f50e;面向字节流(粘包问题)&#x1f50e;异常情况&#x1f50e;总结关于 确认应答 超时重传, 连接管理 请参考: 点击这里 &#x1f50e…

IT知识百科:什么是基站?

一、基站介绍 基站&#xff08;Base Station&#xff09;&#xff0c;也称为基站站点或基站设备&#xff0c;是无线通信网络中的关键设备之一。基站用于与移动设备&#xff08;如手机、无线网卡等&#xff09;进行通信和数据传输&#xff0c;实现无线通信覆盖。 二、基站的功…

基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;能够在不同操作系统和平台使用&#xff0c;简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库&#xff0c;还有丰富的第三方库&#xff0c;Python在数据处理、科学计算、数学建模、数据挖…

Web服务器压力测试

Web服务器压力测试 使用WebBench去进行网站的压力测试 1、去github下载项目源码webbench 2、download到本地 3、将压缩包上传到虚拟机上 4、解压&#xff0c;使用命令&#xff1a;unzip 压缩包名 5、 cd WebBench-mask6、构建项目 makemake install7、上述动作完成后&…

【Vue3】如何用Vue CLI 创建一个Vue3的初始化项目

第一步、安装Vue Cli npm install -g vue/cli 安装成功后&#xff0c;就可以在命令行工具中&#xff0c;使用vue命令。 检测是否安装成功&#xff0c;可以用 vue -V 出现版本号&#xff0c;代表安装成功。 第二步、创建项目 为了方便管理项目&#xff0c;我先在 github 创建了…

队列实现图书信息管理(C语言)

文章目录Queue.hmain.cQueue.c用队列实现一个图书信息管理&#xff0c;这里放一下有哪些文件。&#xff08;ps&#xff1a;我之前写的是学生信息管理&#xff0c;但是有人说我们的作业是写图书&#xff0c;就该了下内容&#xff0c;没有改文件名&#xff09;队列是用链表实现的…

***大论文中插入Visio不失真方法:word插入viso图片方法

***大论文中插入Visio不失真方法&#xff1a;word插入viso图片方法1、可以直接导出emf2、如果利用emf导致字符间距过大&#xff0c;可以选择下面方式1、可以直接导出emf 导出emf方法&#xff1a; 打开visio --> 另存为 --> 选择emf格式文件 打开word --> 插入图片&a…

6 计时器(三)

6.4 输出比较演示** 演示1&#xff1a;PWM驱动呼吸灯** 函数解释&#xff1a; 输出比较单元&#xff08;掌握&#xff09; void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCIni…

对Redis 的数据结构的更深刻理解

文章目录简单动态字符串SDS与C字符串的区别链表字典哈希算法 —— 添加新键值对的过程rehashrehash一般过程渐进式rehash渐进式rehash的详细步骤跳跃表实现整数集合intset升级步骤升级好处降级压缩列表 ziplistziplistnode连锁更新对象字符串对象列表对象哈希对象编码转换集合对…

RK356X 解除UVC摄像头预览分辨率1080P限制

平台 RK3566 Android 11 概述 UVC&#xff1a; USB video class&#xff08;又称为USB video device class or UVC&#xff09;就是USB device class视频产品在不需要安装任何的驱动程序下即插即用&#xff0c;包括摄像头、数字摄影机、模拟视频转换器、电视卡及静态视频相机…

详解C++中的命名空间(namespace)

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】 目录C关键字(C98)命名冲突命名空间命名空间的定义局部域和全局域的关系命名空间域小结命名空间中可以定义哪些内容嵌套命名空间…

音视频开发常用分析工具介绍

综述 工欲善其事&#xff0c;必先利其器&#xff1b;兵马未到&#xff0c;粮草先行。 在音视频开发过程中&#xff0c;利用工具可以更方便、更直观、更快捷的分析音视频的数据&#xff0c;便于开发过程中分析、调试和解决问题。 现总结一些音视频开发过程中常用的分析工具。…

Android library native 代码不能调试解决方法汇总

android native开发会碰到native代码无法调试问题&#xff0c;而app主工程中的native代码是可以调试的。如果项目中存在多个module&#xff0c;那么在application模块中依赖library模块&#xff0c;并且library模块中有native代码的时候&#xff0c;当debug library模块中的这些…

如何高效获取数据价值?

导读&#xff1a;上一篇《大数据架构知识点详解&#xff1a;国产数据库创新、湖仓一体实践…》中我们阐述了四大体系之数据架构体系&#xff0c;解释了云原生大数据实践、国产数据库创新变革、湖仓一体落地实践、OLAP 发展趋势四个论坛的架构思路。 接下来是四大体系之二数据效…

【Linux】2、Linux 的基本命令

目录一、Linux 的目录结构二、Linux 命令三、ls 命令四、cd五、pwd六、特殊路径符七、mkdir八、touch九、cat 命令十、more十一、cp十二、mv十三、rm十四、which十五、find十六、grep十七、wc十八、管道符十九、echo二十、重定向符二十一、tail 命令一、Linux 的目录结构 &…

直播观看指南|SOFA 五周年,Live Long and Prosper!

SOFA 五周年活动将于 2023 年 4 月 15 日&#xff08;周六&#xff09;12:00 在北京朝阳区恒通国际创新园 C6 栋 C work 举行&#xff01;期待社区的小伙伴和对开源感兴趣的小伙伴们一起来现场玩哦&#xff5e;当然啦&#xff0c;不能来现场的小伙伴们也别担心&#xff0c;我们…

第二十一章 案例TodoList之新增数据

前一小节&#xff0c;我们已经完成了数据的动态展示&#xff0c;现在我们要完成数据的动态添加。如何添加呢&#xff1f;肯定是要通过Header组件来添加&#xff0c;但是Header组件如何将收集的任务数据&#xff0c;交给App组件并更新状态数据呢&#xff1f; 在Header组件中收集…

实现vue的条件渲染

我的需求是根据设备不同的状态 渲染不同的标签。设备状态用device_State表示。 在线上面是一个vue的标签&#xff0c;我有一个数据state &#xff0c;如何让这个标签根据数据的取值 &#xff0c;修改内容&#xff0c;如state1时&#xff0c;标签修改为离线 要根据数据的取值动态…

Python曲线拟合详解

文章目录入门参数多元拟合入门 scipy.optimize中&#xff0c;curve_fit函数可调用非线性最小二乘法进行函数拟合&#xff0c;例如&#xff0c;现在有一个高斯函数想要被拟合 yaexp⁡−(x−bc)2y a\exp-(\frac{x-b}{c})^2 yaexp−(cx−b​)2 则调用方法如下 import numpy as…