目录
一、Tomcat介绍
1.免费的、开放源代码的Web应用服务器
2.Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
3.由Apache、Sun和一 些公司及个人共同开发而成
4.得到部分软件开发商的认可
5.目前比较流行的Web应用服务器
二、Tomcat核心组件
通常意义上的 Web 服务器接受请求后,只是单纯地响应静态资源,如 HTML 文件,图片
文件等,不能在后端进行一定的处理操作。 Tomcat 是 Apache 下的一个子项目,它具备 Web
服务器的所有功能(WEB容器嵌入Servlet→动态请求),不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的 Java 代码 Servlet,同时将执行的结果以 HTML 代码的形式写回客户端。
Tomcat 由一系列的组件构成,其中核心的组件有三个:
(1)Web 容器:完成 Web 服务器的功能HTTP HTTPS请求的接受和响应。
(2)Servlet 容器:由名称为 catalina的脚本来处理 Servlet 代码(具体的一个任务,从数据库中拿取数据给与前端)。
(3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码 index.html index.php index.jsp。
① Web容器
负责WEB服务的TCP/IP、HTTP等协议响应、处理 (nginx 处理静态页面的应用交互)
② JSP容器(JAVA Scripts page)
简介:Tomcat 中 做为JAVA前端展示的一个组件 index.jsp
因为index.jsp <html /html> 标签,标签中会嵌套了很多JAVA代码,书写形式是, <%开头 以%>,是一种servlet(java后端逻辑业务的任务)
JSP全称:Java Server Pages:
是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头 以%>结束。JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。
JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP: 容器内提供了多个以index.jsp为结尾的JAVA前端页面展示,而index.jsp中由很多HTML标签,HTML标签中会嵌套很多JAVA代码,这些JAVA代码,最终会被翻译为Servlet 代码,(而本身JSP容器不具备解析与分析代码的功能,所以会给交给Servlet容器)
③ Servlet容器
Servlet 翻译index.jsp中这些java代码,执行一些servlet任务操作,比如数据库交互、加密、支付宝、人脸识别,处理完后,将这些数据返回给JSP ,通过jsp中的index.jsp 展示出来(JAVA)动态交互处理,会将JSP传递过来的代码翻译为Servlet,由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务(比如与数据库交互、加密、支付宝、人脸识别等),catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的。
三、Tomcat处理请求过程
用户请求→service(支撑tomcat的服务进程)
① 用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote(Tomcat 连接器框架/基础环境) HTTP/1.1 Connector(连接器,用于对接请求)获得。
② 接受请求之后交给container(容器)中的engine进行处理,engine(引擎)是做为容器运行的动力核心
③ 基于引擎支撑,容器中会跑很多host虚拟主机/项目,这些虚拟主机中也会有很多context(当前程序所处的环境),此处的context功能可以理解为:将JAVA前端和JAVA后端连接的展示的枢纽
④ Servlet处理完后会返回给context
⑤ context返回给engine引擎
⑥ engine返回给端口
⑦ 端口最后将页面展现给用户
开发→编译(gcc jdk)→打包(jar/war)→发布(tomcat),借助tomcat 这个运行环境,将代码对应的功能模块运行起来。
四、Tomcat部署
1.部署及管理流程
(1)下载并安装JDK(编译器(翻译官),类似gcc gcc-c++)
环境变量:PATH
用户环境变量:只针对用户生效
系统环境变量:只针对主机生效 bin目录
(2)安装并启动 Tomcat
(3)配置虚拟主机
(4)在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境
2.环境部署
(1)关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
(2) 安装 JDK
rpm -ivh jdk-8u201-linux-x64.rpm
java -version 查看当前系统环境下jav