Tomcat

什么是Tomcat

我们上面已经学过了HTTP协议,知道了HTTP协议就是HTTP客户端和HTTP服务器之间的交互数据的格式,知道了想要实现一个HTTP服务器我们可以通过Java Socket来实现。

但有没有什么现成的服务器呢?Tomcat就是基于Java实现的一个开源的、免费的、最广泛使用的一个HTTP服务器,基于tomcat我们程序员可以对它进行修改自己实现一个想要的服务器。(Tomcat 是一个基于 java 实现的"绿色软件",只要解压缩, 就可以使用,前提是大家需要提前安装好 JDK)
如何安装Tomcat,我这里就不多说了,如果有不知道小伙伴可以在csdn上进行搜索

推荐一篇:Tomcat8下载及安装配置教程(官网)-CSDN博客

启动tomcat服务器

那么怎么启动tomcat服务器呢?

进入bin目录,bin 目录下放的是 tomcat 的一些相关可执行脚本

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

双击startup.bat即可启动,你如果是linux,你就双击startup.sh

进入后,最后一行提示Server startup 就说明启动成功了

而对于上面的一堆看不懂的东西就是乱码

为什么会出现乱码呢?
Tomcat内部使用的编码方式是utf-8(我们当下最主流的编码方式)
但是我们的windows是"简体中文版",默认字符集是GBK,于是导致了cmd这个程序去跟随了系统的字符串。
数据是按照utf-8来构造的,但是cmd在显示时按照了GBK的方式来解析,这样就会出现乱码了。

那有没有办法让乱码消失?
有,但是风险很大,你可以改windows的注册表,但是如果一旦哪里改的有问题,你就等着重装系统。所以我这里非常不建议大家去修改。

另外,我们后续使用tomcat还有其他方式:
1.结合idea使用
2.在linux上使用
上面两种方法都是无乱码的,我们当前这点乱码无视即可。

当你启动服务器后,要想知道服务器是否真正启动运行?

你在网页中输入127.0.0.1:8080如果可以正常显示Tomcat的欢迎页面,那么就运行成功。

如果没显示就寄了

tomcat文件夹的各个文件作用

bin 目录下放的是 tomcat 的一些相关可执行脚本,这个我们刚才知道了


conf 中放的是 tomcat 的配置文件,一个程序的功能是非常丰富的.就需要按需开启这里的某些功能.给程序猿使用的专业程序,一般很少会专门做一个界面,来让大家修改配置.毕竟程序猿是专业人士,咱们一般就都是通过配置文件的方式来进行设置的


lib,temp,work以及下面的多个小文件这里没什么用,我们不多说了


logs中放的就是日志(就是通过 System.out.println 等方式打印的一些字符串.),日志是调试一个服务器程序最重要的手段,后续自己写的程序,代码中打印的日志,就可以在上述目录中看到,

调试程序,不应该使用调试器嘛~~ 调试器,不适合给服务器程序使用,因为调试器要中断程序,而服务器是全程工作的。


webapps 里面放的是若干个webapp(网站),我们可以通过往这里面添加我们的代码从而完成自定义网站的部署和加载

进入ROOT目录

ROOT目录里面就可以放一些我们自己写的HTML

我们这里新建一个hello.html文件,然后用vscode进行编辑

我们原先输入127.0.0.1:8080可以进入Tomcat的欢迎页面

我们在这个基础上做一些改动,把它变成127.0.0.1:8080/hello.html按下回车
发现正好跳转到我们之前在ROOT下创建并编写的页面

那么这里有个问题,你直接点击该文件不也能打开那个页面吗?

需要注意的是:
前者通过tomcat访问,是可以让别人通过网络访问你的html的(借助云服务器)
后者是通过本地文件来访问,仅限于你自己主机访问

静态网页和动态网页

静态网页和动态页面有什么区别?

静态网页内容都是固定的,比如我们刚才在tomcat上部署的一个简单的html就是一个静态页面

而动态页面就是每次打开内容都是不固定的,比如b站不同的用户打开b站就是不同的感兴趣内容。此时动态页面就需要通过大量的代码,复杂的逻辑来实现。

而Tomcat 不仅可以支持静态页面,还能支持动态页面

对于动态页面tomcat 提供了一组 api,可以让程序猿更方便的编写动态页面,称为 Servlet,这就是下节课的内容了,它的内容比较多,需要很详细的讲述。

相关推荐
A小码哥几秒前
大模型成本怎么降,5 个动作先做前两个
java·前端·spring
鬼手点金4 分钟前
构建有效 Agent 的核心原则
java·人工智能·git·学习·自动化
神魔皆以血嗜9 分钟前
Java 实现简单状态机(订单状态流转)
java·后端
随性而行36018 分钟前
企业微信 API 如何实现业务消息自动通知?接口应用场景解析
java·人工智能·后端·微信·机器人·企业微信
姜九笙56125 分钟前
python学习---归来仍是新人
java·python·学习
HEJOO937 分钟前
Java 并发运行中的安全问题详解
java·开发语言
2601_9621066441 分钟前
【无标题】
java·idea
汉吉龙测控技术44 分钟前
激光对中仪作用介绍(AS 激光对中仪)
java
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 完善用户信息章节复盘:套路清单与自检清单
java·dubbo·交友
用户3126874877201 小时前
Java 11-21 新特性盘点:var、record、sealed、虚拟线程
java