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,这就是下节课的内容了,它的内容比较多,需要很详细的讲述。

相关推荐
lovebugs几秒前
Java利用构建器模式重构Excel导出工具类
java·后端
珹洺10 分钟前
数据库系统概论(十二)SQL 基于派生表的查询 超详细讲解(附带例题表格对比带你一步步掌握)
java·数据库·sql
zwjapple11 分钟前
Eclipse集成lombok
java·ide·eclipse
枣伊吕波12 分钟前
第十二节:第四部分:集合框架:List系列集合:LinkedList集合的底层原理、特有方法、栈、队列
java
异常君17 分钟前
HTTP vs HTTPS:深入理解加密传输的原理与实现
java·http·https
都叫我大帅哥28 分钟前
Mark Word 深度解析:对象头的“密码本”
java
钢铁男儿1 小时前
C# 类和继承(构造函数的执行)
java·开发语言·c#
有梦想的攻城狮1 小时前
maven中的maven-resources-plugin插件详解
java·maven·插件·maven插件·maven-resources
异常君1 小时前
深入理解 Java 类卸载:避免 90% 的内存泄漏问题
java·代码规范
Quke陆吾1 小时前
Maven概述,搭建,使用
java·maven