【JavaEE】认识Tomcat

news2025/1/18 3:29:28

✨哈喽,大家好,我是辰柒!✨

🛰️🛰️系列专栏:【JavaEE】

✈️✈️本篇内容:如何构造 HTTP 请求同时认识HTTPS!

🚀🚀代码存放仓库github:JavaEE代码!

⛵⛵作者简介:一名双非本科大三在读的科班Java编程小白,道阻且长,星夜启程!

那么通过前三篇博客的学习,我们已经大致掌握http和https是怎么回事了;尤其是https加密那块,学的是不是晕头转向的哈哈;没关系,那么今天呢,我们就来学习一个新的东西叫Tomcat;

什么是Tomcat? 汤姆猫,是它嘛?

 很显然:不是!

Tomcat实际上是一个http服务器,之前我们学习过TCP/UDP服务器,http也认为是基于TCP的。

首先,我们需要下载Tomcat;下载之前咋们最好在D盘提前创建一个文件夹Tomcat来存放tomcat的下载内容;这样方便我们后续使用;

下载链接:Tomcat官网!

注意:Tomcat的版本会和JDK以及后面需要学习的servlet的版本绑定在一起;所以小伙伴们尽量同一版本,否者后续使用过程中可能会出现一些其他的问题;会与博主的API一些细节不一致;

点击zip即可下载!(注意博主这里下载的是Tomcat8,大版本是8即可,小版本没有影响!)

下载之后到文件中是这样的;

 解释:bin:启停脚本的目录;

.bat 后缀的文件是 windows 的批处理文件;.sh 后缀的文件是 linux 的 shell 脚本的文件;

conf:Tomcat的配置文件是通过xml的格式来组织的;

logs:这个目录中记录了很多的日志,日志就是表示了Tomcat运行过程中一些具体过程细节!

webapps:这个目录中放的是咱们部署的 servlet 程序;每个 servlet 程序,都是一个 war 后缀的文件;也是一种压缩包格式;tomcat 会自动把这个 war 解压缩,得到一个目录;每个 war 其实就对应了一个 webapp (相当于是一个网站);一个 Tomcat 上, 允许你同时部署多个 webapp (即多个网站)

正因为一个一个Tomcat上可以部署多个Servlet程序,所以也可以把Tomcat称为"servlet的容器",简称容器;那么容器这个词在计算机里面非常常见,Java的集合类,因为C++称为容器,所以渐渐地导致了很多Java程序员也管集合叫做容器;后面我们学习到Spring可以管理多个bean象,Spring也可称为是Bean的容器;

所以,当咋们以后看到容器这个词的时候,一定要仔细观察,到底是什么容器!

如何使用Tomcat呢?

1、启动Tomcat;

找到Tomcat目录下的bin文件夹,然后在找到startup.bat这个文件,双击;

运行后的结果;看到画红线的这句话说明运行成功了;

但是我们发现这个运行结果是一堆乱码,为什么呢?

因为Tomcat 内部使用的编码方式是 utf8;(utf8 就是咱们当下最主流的编码方式);咱们使用的 windows 是"简体中文版”,默认的字符集是 GBK ;cmd 这个程序,也是跟随了系统的字符集;数据是按照 utf8 来构造的,但是 cmd 在显示的时候按照了 GBK 的方式来解析,势必就会出现乱码;

能否修改?

答案是可以修改的;但是需要去Windows的系统配置中心即注册表编辑器;这个步骤很麻烦,而且由于大家电脑型号系统不一样,不一定能修改成功,所以博主在这里就不演示如何修改了,对咱们后续写代码也是没有影响的;感兴趣的小伙伴们可以查阅一下其他的资料;

使用浏览器来访问Tomcat;

step1、首先启动我们的Tomcat;

step2、在我们的浏览器中输入本机IP: 127.0.0.1:8080 按下回车会出现下面界面;(启动成功)

step3、我们给页面加上一点东西进去;

打开tomcat的目录,找到webapps-root在里面就可以新建一个hello.html的文件;

step4、这个时候在浏览器的URL里面输入:127.0.0.1:8080/hello.html

运行结果;

思考,既然tomcat可以让用户访问到这个页面,那么能否让小伙伴们访问博主的这个页面呢?

答案:不行!

这里大家要知道NAT => IPV4;我这里查询一下自己电脑的ip地址;

win+r输入cmd,然后再输入 ipconfig即可查看;

 可以看到博主这里的IP是192开头的,是内网ip,只局限于局域网内部访问,不能被其他局域网访问,除非你和我连接同一个网络;才能够访问到;

那么tomcat如何做到让外界访问到这个页面呢?

这里就需要搞一个外网IP;(买一个云服务器即可)后续博客会讲到哈!

刚才咱们只是简单的一个输出hello tomcat的html文件,但是如果这里面还需要加载一些图片,文档之类的,那么都写在这个root目录下,是不是显得非常凌乱呢?所以我们可以创建一个新的目录用来存放我们需要的文件;

那么上述只是一个静态页面,内容是固定不变的;我们重点学习的是动态页面;

tomcat的内容就先到这里啦,我们下篇博客先介绍一个"管理工具",maven;后续在继续学习servlet的相关内容;

有任何问题欢迎大家可以在下方添加博主的联系方式,一起交流学习!!

 

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

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

相关文章

排序模型进阶-WideDeepWDL模型导出

8.5 排序模型进阶-Wide&Deep 学习目标 目标 无应用 无 8.5.1 wide&deep Wide部分的输入特征: raw input features and transformed featuresnotice: W&D这里的cross-product transformation:只在离散特征之间做组合,不管是文本…

《从0开始学大数据》之构建一个大数据平台

在分布式系统中分发执行代码并启动执行,这样的计算方式必然不会很快,即使在一个规模不太大的数据集上进行一次简单计算,MapReduce 也可能需要几分钟,Spark 快一点,也至少需要数秒的时间。而互联网产品处理用户请求&…

微信短视频怎么提取gif?三步教你在线提取gif动画

现在各大社交软件上短视频是越来越多,为了方便传播、保存可以将短视频制作成GIF。那么,如何从视频中提取动图呢?很简单,两招就能完成在线视频转换成gif动图的操作,只需要使用【GIF中文网】的视频转gif(http…

OBS使用WebRTC进行腾讯云推流播流

推流: 首先:OBS想要推送WebRTC格式的推流需要满足以下两点: 1:OBS版本在26及以上 2:需要给OBS安装腾讯云插件,而且只支持Windows版。 OBS下载地址:Download | OBSDownload OBS Studio for W…

电路方案分析(十六)带有C2000微控制器且精度为 ±0.1° 的分立式旋转变压器前端参考设计

带有C2000微控制器且精度为 0.1 的分立式旋转变压器前端参考设计 tips:参考Ti设计资源:TIDA-01527 旋转变压器详细介绍: https://blog.csdn.net/qq_41600018/article/details/127597875?spm1001.2014.3001.5501 该参考方案设计…

用投资思维做好招商工作:湘商回归,长沙急企业之所急

在中国经济发展40年后,当下经济发展的底层逻辑已发生了根本性变化。企业发展所面临的问题,投资所思考的方向也已不同以往。一味再强调本地资源优势,介绍当地优惠政策的招商工作方式不再适应当下形式,往往反而会导致忽略企业的真实…

58.Isaac教程--OTG5 直线运动规划器

OTG5 直线运动规划器 ISAAC教程合集地址文章目录OTG5 直线运动规划器最大值和期望值的配置OTG5 的 Flatsim 演示用于直线运动的在线轨迹生成 - V 型 (OTG5) 规划器允许线性运动,同时明确防止曲线。 这在即使与一般直线运动方向有轻微偏差也会导致意外结果的情况下很…

Redis核心技术-高可靠-集群方案(客户端分片、代理分片、Redis Cluster)

Redis在3.0版本前只支持单实例模式,虽然Redis的开发者Antirez早在博客上就提出在Redis 3.0版本中加入集群的功能,但3.0版本等到2015年才发布正式版。 各大企业等不急了,在3.0版本还没发布前为了解决Redis的存储瓶颈,纷纷推出了各…

【每日一题】【LeetCode】【第二十四天】【Python】两个数组的交集 II

解决之路 题目描述 测试案例(部分) 第一次 顺着“两个数组的交集”的思路想,先用集合处理nums1和nums2,然后通过“交集”运算得出列表res,然后循环检查列表res,得出各个元素在两个数组中出现的最小次数&…

2022生化原理I复习资料汇总

文章目录1.2022复习重点及参考题2022年考试复习题:附录:参考答案及复习重点2.2021复习重点及参考题3.往年复习重点及参考题汇总4.复习重点整理及考试题型生化原理I复习资料及往年考题1.2022复习重点及参考题 2022年考试复习题: 1.2021-2022…

Python Stock安装与使用

这个是使用python 开发股票系统。 使用 tushare 获取股票数据,然后使用tornado 进行web 展示。 使用pandas numpy 数据处理。 项目代码 项目代码放到github上面 GitHub - pythonstock/stock: stock,股票系统。使用python进行开发。 因为为了简单&#x…

【Netty学习】七、详解ByteBuf缓冲区

七、详解ByteBuf缓冲区 为了确保引用计数不会混乱,在Netty的业务处理器开发过程中,应该坚持一个原则:retain和release方法应该结对使用。简单地说,在一个方法中,调用了retain,就应该调用一次release。 pub…

视图存储过程存储函数

文章目录视图常见数据库对象视图概述为什么使用视图?视图的理解创建视图创建单表视图创建多表联合视图基于视图创建视图查看视图更新视图的数据一般情况不可更新的视图修改、删除视图修改视图删除视图总结视图优点视图不足存储过程&存储函数存储过程概述理解分类…

NFT Insider #84:The Sandbox与华纳音乐集团合作举办全世界最大的DemoDrop,英超联赛签署NFT协议

引言:NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据,艺术新闻类,游戏新闻类,虚拟世界类&#…

[论文分享] How could Neural Networks understand Programs?

前言 读一篇 ICML 2021 的论文How could Neural Networks understand Programs? 程序语义理解是程序设计语言处理(PLP)的一个基本问题。最近基于NLP预训练技术学习代码表示的工作,推动了该方向的前沿。然而,PL和NL的语义有着本质的区别。忽略这些&…

CPP----精选常识100例

1 静态全局变量的作用域 本文件 2 判断一个程序是C还是C编译的 #ifdef __cpluspluscout << "c"; #else cout << "c"; #endif3 C函数传递方式 值传递&#xff0c;引用传递&#xff0c;指针传递 4 虚函数定义及用法 虚函数是C中用于实现多态(p…

vue2 a-tree-select树形结构-懒加载(无限子级)---笔记

实现效果 思维导图 HTML代码&#xff1a;treeData是绑定的数组&#xff0c;onLoadData是懒加载函数 <a-tree-select style"width: 100%; margin-left: 20px" tree-data-simple-mode multiplelabelInValueplaceholder"请选择…" v-decorator"[lea…

史上最详细的KMP算法教程,看这一篇就够了

&#x1f9d1;‍&#x1f4bb; 文章作者&#xff1a;Iareges &#x1f517; 博客主页&#xff1a;https://blog.csdn.net/raelum ⚠️ 转载请注明出处 目录一、BF算法二、KMP算法2.1 字符串基础2.2 next数组2.3 KMP的实现2.4 next数组的生成三、改进的KMP算法3.1 nextval数组3.…

turf.js实现行政区(多边形)图形合并边界提取,掩膜等效果

在做前端行政区展示的时候,可能经常会遇到这样的需求,就是给定一个行政区比如杭州市各个区,县的行政区边界图形,但是我们现在需要一个杭州市的行政区边界,我们是否可以通过前端合并这些行政区,答案当然是可以的,我们可以使用turf.js来实现这个需求。 turf官网:Turf.js…

纯滞后系统的数字Smith预估控制-2

在纯滞后系统的数字Smith预估控制-1的基础上进行Simulink仿真。采用 Simulink 进行数字化仿真&#xff0c;按Smith算法设计Simulink模块。在PI控制中&#xff0c;kp0.5&#xff0c;ki0.01。其响应结果如图1和图2所示。图1 Smith阶跃响应结果图2 只采用PI控制时的阶跃响应结果初…