Tomcat的初步学习

Tomcat

~~ 一个 HTTP 服务器

HTTP协议就是HTTP客户端和HTTP服务器之间通信使用的协议,
HTTP客户端就是浏览器(当然也有别的).
HTTP服务器,则有很多种实现.
tomcat 是 Java 圈子中, 最知名, 最广泛使用的 HTTP 服务器

Tomcat的下载安装

官网链接

image-20231205114228448

Apache (阿帕奇)最早也是个开源的 http 服务器.后来逐渐影响力越来越大,形成了一个开源社区,开源社区又进一步的搞出了很多的开源产品. 开源社区: 一群大佬,凑到一起去研发一些开源软件.

  1. 在左侧的 Download 中选择Tomcat 8

image-20231205140656008

  1. 下载应该 zip 压缩包, 解压缩到任意路径就行了

image-20231205141938337

博主在这里使用的就是tomcat 8 .因为tomcat 的版本,和后续学习的 servlet版本是有强相关的 , 此处使用tomcat 8,对应的servlet就是 3.1.

当然,有些学校要求的是tomcat的其它版本,也不需要担心,选择其它版本下载即可.tomcat是个绿色软件,解压缩就能用,一个电脑上完全可以同时装多个版本的tomcat ,没什么影响.
博主提醒: tomcat是基于 java 实现的.要求你的机器上得有 jdk ! 如果你没 jdk, 显然tomcat是运行不起来的.


Tomcat的目录结构

针对 tomcat 目录解压缩之后, 可以看到如下结构

image-20231205151308305


启动 Tomcat 服务器

打开 bin目录 ,找到startup.batstartup.sh.
startup.bat: 给 windows 使用启动 Tomcat 服务器的
startup.sh: 给 linux 和 mac 使用启动 Tomcat 服务器的

image-20231205152524857

由于博主的是windows电脑,于是选择双击startup.bat.

image-20231205153040706

注: 服务器,都是上述这样的命令行程序.

此处乱码的原因: Tomcat 默认按照 UTF-8 的编码方式处理中文, 而 windows 的 cmd 默认是 GBK 编
码. 由于是 IDEA 中的终端来启动 Tomcat, 则没有乱码问题, 因此此处的乱码我们暂时不处理.


访问一下tomcat的欢迎页面

tomcat的欢迎页面: tomcat自带的一个 webapp

在浏览器中输入 127.0.0.1:8080 即可看到 Tomcat 的默认欢迎页面.

这个就是tomcat的欢迎页面(tomcat必须是运行状态,才能访问)

image-20231205232310582

127.0.0.1:8080
127.0.0.1=> IP 地址.
8080 => tomcat默认的端口号.
类似于mysql默认端口是3306.默认的端口号是可以修改的(当前没必要修改)


Tomcat启动异常的解决

如果你运行 startup.bat, tomcat启动不了,窗口一闪而逝.

这种情况原因可能有很多种,最关键的是能够看到出错信息!!! (把.bat这个程序拖到cmd中运行)

最常见的一种原因是端口号被占用.

Tomcat 启动的时候默认会绑定 8080 和 8005 端口.
如果有其他进程已经绑定了这两个端口中的任意一个, 都会导致 Tomcat 不能启动.
在命令行中使用 netstat -ano | findstr 8080 确定看 8080 是否被其他进程绑定, 把对方进程杀掉,
再重新启动 Tomcat 一般就可以解决问题

  1. 查看 8080 是否被其他进程绑定

image-20231206000036755

  1. 可以在任务管理器中找到这个进程, 并干掉这个进程

image-20231206003505784

image-20231206130332287

image-20231206130825715

还有一种典型的错误原因.

就是是没有配置环境变量(JAVA_HOME, JRE_HOME,CATALINA_HOME...).你看报错缺哪个就配置哪个即可.
其实理论上来说,不用配置环境变量,也能正常运行, 但是有的电脑就是得配环境电脑.

博主带你们配一下:

image-20231207143533945

image-20231207143734376

image-20231207144240865

image-20231207144657483

image-20231207144913674



tomcat的使用 ~~ 部署纯前端的页面

使用tomcat最大的用途,就是把我们写好的网站,给部署上去
网站 = 前端+后端
以部署博客系统页面设计的前端代码为例,来进行示范.

相关代码链接:

百度网盘链接
夸克网盘链接

  1. 就是把你的代码,拷贝到 webapps 目录中

image-20231207093350860

  1. 需要重启下tomcat

image-20231207093628853

  1. 再通过浏览器访问博客系统页面.

访问结果如下:

image-20231207151154353

image-20231207152112459

image-20231207152355855

image-20231207152533327



image-20231207153605750

BlogSystem为第一级路径,也叫做application path / context path

http://127.0.0.1:8080/BlogSystem/blog_list.html => 通过网络来访问的
file:///D:/S/Tomcat/apache-tomcat-8.5.96/webapps/BlogSystem/blog_list.html => 通过文件路径来访问的

区别: 通过网络,可以跨主机访问,而通过文件路径不行!

博主的遗憾:

当前博主电脑上的tomcat这里的博客系统页面,能够让你们访问一下嘛??
答案是不能的! NAT惹的祸!要想能让你们访问,需要有外网IP,博主得买个云服务器.等博主过段时间学习linux,购买云服务器之后,再来给你们操作.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[BJDCTF2020]EzPHP 许多的特性

这道题可以学到很多东西 静下心来慢慢通过本地知道是干嘛用的就可以学会了 BJDctf2020 Ezphp_[bjdctf2020]ezphp-CSDN博客 这里开始 一部分一部分看 $_SERVER[QUERY_SRING]的漏洞 if($_SERVER) { if (preg_match(/shana|debu|aqua|cute|arg|code|flag|system|exec|passwd|…

python+paddleocr 进行图像识别、找到文字在屏幕中的位置

目录 前言 1、安装paddleocr 2、安装PIL 3、安装numpy 4、 安装pyautogui 5、进行文本识别 6、识别结果 7、获取文字在图片/屏幕中的位置 8、pyautoguipaddleocr鼠标操作 9、完整代码 前言 最近在做自动化测试,因为是处理过的界面,所以使用pyw…

class036 二叉树高频题目-上-不含树型dp【算法】

class036 二叉树高频题目-上-不含树型dp code1 102. 二叉树的层序遍历 // 二叉树的层序遍历 // 测试链接 : https://leetcode.cn/problems/binary-tree-level-order-traversal/ code1 普通bfs code2 一次操作一层 package class036;import java.util.ArrayList; import java…

EarCMS 前台任意文件上传漏洞复现

0x01 产品简介 EarCMS是一个APP内测分发系统的平台。 0x02 漏洞概述 EarCMS前台put_upload.php中,存在pw参数硬编码问题,同时sql语句pdo使用错误,没有有效过滤sql语句,可以控制文件名和后缀,导致可以任意文件上传。 0x03 复现环境 FOFA:app="EearCMS" 0x0…

JVM虚拟机(已整理,已废弃)

# JVM组成 ## 简述程序计数器 线程私有,内部保存class字节码的行号。用于记录正在执行的字节码指令的地址。 线程私有-每个线程都有自己的程序计数器PC,用于记录当前线程执行哪个行号 ## 简述堆 ## 简述虚拟机栈 ## 简述堆栈区别 ## 方法内局部变量是…

leetcode 622. 设计循环链表

这道题讲了两种方法,第一个代码是用数组实现的,第二个是用指针实现的,希望对你们有帮助 622. 设计循环链表 题目 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并…

SwiftUI 中创建一个自定义文件管理器只需4步!你敢信!?

概览 在 SwiftUI 中写一个自定义文件内容的管理器有多难呢? 答案可能超乎小伙伴们的想象:仅需4步!可谓是超级简单! 在本篇博文中,您将学到如下内容: 概览1. 第一步:定义文件类型2. 第二步&…

智能优化算法应用:基于人工大猩猩部队算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于人工大猩猩部队算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于人工大猩猩部队算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工大猩猩部队算法4.实验参数设…

python六子棋ai对战(alpha-beta)剪枝算法

核心代码 def __init__(self): #初始化函数self.num0 #对yi次数self.rows 10 #初始化棋盘10行self.cols 10 # 初始化棋盘10列self.rank6 #阶数 代表六子棋self.empty_board() #清空棋盘self.V 10 #攻击程度self.E10 #防守程度self.depth2 #思考深度…

嵌入式板级系统设计【课设】

笔记【嵌入式板级系统设计】 前言版权笔记【嵌入式板级系统设计】资料学习面包板焊接注意焊接教程 焊接电路板基础代码GPIO 外部中断 定时中断 三合一串口 综合实验 风扇控制系统下板三合一窗口综合实验 最后 前言 2023-11-20 08:49:57 以下内容源自《【创作模板五】》 仅供学…

【AIGC】prompt工程从入门到精通

注:本文示例默认“文心大模型3.5”演示,表示为>或w>(wenxin),有时为了对比也用百川2.0展示b>(baichuan) 有时候为了模拟错误输出,会用到m>(mock)表示(因为用的大模型都会…

网络排错思路

⽹络模型 国际标准化组织制定的开放式系统互联通信参考模型(Open System Interconnection Reference Model),简称为 OSI ⽹络模型。 为了解决⽹络互联中异构设备的兼容性问题,并解耦复杂的⽹络包处理流程,OSI 模型把…