快速入门学会tomcat!

快速入门学会tomcat!

文章转自:https://mp.ofweek.com/Internet/a156714965187

各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!

最新Tomcat下载安装详细教程

Tomcat下载链接: Tomcat下载

https://blog.csdn.net/hellow_xqs/article/details/135371205?spm=1001.2014.3001.5501

Tomcat是什么?

Tomcat是web容器。你在做web项目时,多数需要http协议,也就是基于请求和响应,比如你在百度输入一行内容搜索,那么百度服务器如何处理这个请求呢,他需要创建servlet来处理,servlet其实就是java程序,只是在服务器端的java程序servlet通过配置文件拦截你的请求,并进行相应处理,然后展示给你相应界面,那么servlet如何创建?

这时候tomcat用到了,它就是帮助你创建servlet的东西,所以也称web容器,没有它,没法运行web项目。相对应的web容器有很多,比如JBOSS,WEBLOGIC等。

Tomcat是一个应用服务器。他可以运行你按照J2EE中的Servlet规范编写好的Java程序。

简单的说它是一个Web网站的运行容器,把你写好的网站放进去就可以运行。

一、网络协议/网络协议包

在互联网通信过程中,在网络传递信息都是二进制形式。

此时接收方接收到信息之后必须进行一次解析。

但是由于传递信息量相对较大,增加接收方解析难度

浏览器: http://localhost:8080/myWeb/index.html

1010101010101010101011111000110101010

网络协议包:

一组有规律二进制数据,存在固定空间。在指定空间下专门存放指定数据,降低接收方解析难度

0000 服务端计算机ip地址 0000 Http服务器端口号 0000 资源文件 0000

二、Http网络协议包:

在B/S通信结构下,浏览器发送请求信息以及服务端返回资源文件内容都是通过Http网络协议包进行传递

三、Http网络协议包分类:

1.Http请求协议包:

1)在浏览器准备发送请求时,负责生成一个Http请求协议包

2)在浏览器准备发送请求时,负责将请求信息写入Http请求协议包

3)由浏览器负责推送Http请求协议包

2.Http响应协议包:

1)在Http服务器准备返回结果时,负责生成一个Http响应协议包

2)由Http服务器调用输出流将文件内容(文字,数字,像素,帧,命令)以二进制形式写入到Http响应协议包

3)由Http服务器负责将Http响应协议包推送回发起请求的浏览器

四、Http请求协议包内部结构:

自上而下分为4层结构

1.请求行:

url:请求地址

method:请求方式

2.请求头:

如果浏览器以GET方式发送请求

请求参数存放在请求头

3.空白行:

4.请求体:

如果浏览器以POST方式发送请求

请求参数存放在请求体

五、Http响应协议包内部结构

自上而下分为4层结构

1.状态行:

Http状态码

2.响应头:

content-type:指定浏览器使用对应解析器或则编译器

对返回二进制数据进行解析或则编译

3.空白行:

4.响应体:

本次索要文件内容(二进制形式存放)

六、Http服务器介绍

1.所有的Http服务器都是由java编程语言开发应用程序

2.Http服务器可以接收由浏览器发动的Http请求协议包

3.Http服务器可以解析Http请求协议包二进制数据了解用户请求

4.Http服务器可以自动定位被访问的资源文件

5.Http服务器可以自动将被访问文件内容或则文件运行结果通过输出流以二进制形式写入到Http响应协议包中响应体

6.Http服务器可以自动将Http响应协议包推送回发起请求的浏览器

七、Http服务器分类:

1.功能最强---Websphere

2.功能最新---GlassFish

3.最轻量级---tomcat

八、tomcat服务器安装与配置

1.tomcat服务器下载: tomcat.apache.org/

2.tomcat安装:tomcat9.0版本是绿色免安装版

3.tomcat配置:

1)JAVA_HOME环境变量: 用于向tomcat服务器提供当前计算机中JDK位置

2)CATALINA_HOME环境变量:通知本次启动的tomcat服务器存放位置

九、tomcat服务器启动与关闭

1.tomcat服务器启动时生成一个管理对象。如果手动关闭,时间一长。

这个管理对象将脱离管理,导致无法再次启动tomcat

2.管理命令位置: tomcat安装地址/bin文件夹

3.启动tomcat命令: startup

4.关闭tomcat命令: shutdown

十、tomcat服务器启动失败原因

1.忘记配置JAVA_HOME

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

At least one of these environment variable is needed to run this program

2.JAVA_HOME地址写错了

The JRE_HOME environment variable is not defined correctly

This environment variable is needed to run this program

3.CATALINA_HOME地址写错了

The CATALINA_HOME environment variable is not defined correctly

This environment variable is needed to run this program

4.tomcat服务器默认端口号8080.一个计算机只能启动一个tomcat

java.net.BindException: Address already in use: JVM_Bind

十一、tomcat服务器工作文件

1.bin : tomcat管理命令

2.conf:tomcat配置文件。server.xml是tomcat核心配置文件

3.lib: tomcat应用程序在运行时依赖的第三方jar

4.logs:存放tomcat运行日志

5.temp:存放tomcat运行时生成临时文件

6.webapps:tomcat在默认情况下,接收到请求之后到webapps下定位资源文件

7.work: tomcat在默认情况下,在work文件下将jsp文件编辑为java文件并编译为class文件

十二、第一次BS通信模拟

1.在webapps下创建一个网站

网站:网络资源站点,存放可以被浏览器访问的资源文件

2.启动tomcat

3.启动浏览器,向tomcat发起请求

在地址栏输入资源文件定位命令(url):

http://服务端计算机IP地址:http服务器端口号/网站名/资源文件名.后缀名

http://localhost:8080/myWeb/one.html

十三、标准网站内部结构

|_________src文件夹:java文件和动态资源文件

|_________web文件夹 :静态资源文件/第三jar/网站核心配置文件

|________WEB-INF: 第三jar/网站核心配置文件

|______lib文件夹(手动) 第三jar

|______web.xml 网站核心配置文件

|______________静态资源文件

十四、模拟tomcat调用动态资源文件

1.对于一个网站来说,tomcat只能调用网站中Servlet接口实现类

2.Tomcat接收到请求之后,根据url中文件名称定位被访问Servlet接口实现类。

1)Tomcat通过Class.forName方法将硬盘类文件加载到内存

2)Tomcat通过反色机制通知JVM创建当前类的实例对象

3)Tomcat通过实例对象调用init方法来实现对实例对象初始化操作

4)Tomcat通过实例对象调用service方法处理当前用户请求

5)Tomcat通过输出流将service方法处理结果写入到响应体交还给发起请求浏览器

十五、适配器设计模式

1.作用: 降低接口实现类开发难度的。可以让接口实现类自由选择接口中方法重写

2.解决方案:

1)使用抽象类实现接口,对接口中不受欢迎抽象方法进行空实现

2)创建接口实现类 继承与抽象类,此时接口实现类开发时只要重写感兴趣方法

十六、模板设计模式:

1.作用:子类只需要考虑相关方法重写实现,不需要考虑方法调用场景。子类方法调用规则由父类负责控制

相关推荐
杨充4 分钟前
13.观察者模式设计思想
java·redis·观察者模式
Lizhihao_6 分钟前
JAVA-队列
java·开发语言
喵叔哟15 分钟前
重构代码之移动字段
java·数据库·重构
喵叔哟15 分钟前
重构代码之取消临时字段
java·前端·重构
fa_lsyk18 分钟前
maven环境搭建
java·maven
Daniel 大东37 分钟前
idea 解决缓存损坏问题
java·缓存·intellij-idea
wind瑞43 分钟前
IntelliJ IDEA插件开发-代码补全插件入门开发
java·ide·intellij-idea
HappyAcmen43 分钟前
IDEA部署AI代写插件
java·人工智能·intellij-idea
马剑威(威哥爱编程)1 小时前
读写锁分离设计模式详解
java·设计模式·java-ee
鸽鸽程序猿1 小时前
【算法】【优选算法】前缀和(上)
java·算法·前缀和