Tomcat服务部署

一、Tomcat服务器简介

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 一般来说,Tomcat虽然和Apache或者Nginx这些Web服务器一样,具有处理HTML页面的功能,然而由于其处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。

1.Java Servlet

运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。与CGI(公共网关接口)功能相类似。

2.JSP全称Java Server Pages

一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。 JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

3.Tomcat三大核心组件

Tomcat 由一系列的组件构成,其中核心的组件有三个

- Web :容器完成 Web 服务器的功能
- Servlet :容器名字为 catalina,用于处理 Servlet 代码
- JSP 容器:用于将JSP 动态网页翻译成 Servlet 代码 

4.Tomcat 功能组件结构

Tomcat的核心功能有两个,分别是负责接收和反馈外部请求的连接器Connector,和负责请求的容器Container。
其中连接器和容器相辅相成,一起构成了基本的web服务server。每个Tomcat服务器可以管理多个server。

-Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
-Container:负责对内处理业务逻辑。其内部由Engine、Host、Context和Wrapper四个容器组成,用于管理和调用Servlet相关逻辑。
-Serverlet:对外提供的web服务。主要包含Connector和Container两个核心组件,以及其他功能组件。Tomcat可以管理多个Service,且各Service之间相互独立

5.Container 结构分析

每个Service会包含一个Container容器。在Container内部包含了4个子容器
4个子容器的作用分别是
(1)Engine:引擎,用来管理多个虚拟主机,一个Service最多只能由一个Engine
(2)Host:代表一个虚拟主机,也可以叫站点,通过配置Host就可以添加站点
(3)Context:代表一个web应用,包含多个Servlet封装器
(4)Wrapper:封装器,容器的最底层。每一Wrapper封装着一个Servlet,负责对象实例的创建、执行和销毁功能。

Engine、Host、Context和Wrapper,这四个容器之间属于父子关系
容器由一个引擎可以管理多个虚拟主机,每个虚拟主机可以管理多个web应用,每个web应用会有多个service封装器。

6.Tomcat 请求过程

1.用户在浏览器中输入网址,请求被发送到本机端口8080,被在那里监听的connector获得
2.connector把该请求交给它所在的service的Engine(container)来处理,并等待Engine的回应
3.请求在Engine、Host、Context和Wrapper这四个容器之间层层调用,最后在servlet中执行相应的业务逻辑、数据存储等
4.执行完之后的请求响应在Context、Host、Engine容器之间层层返回,最后返回给Connectop,并通过Connector返回给客户端

7.Tomcat数据流向

Tomcat服务部署_第1张图片

用户请求(访问80端口)——》

发送请求发送给tomcat——》

tomcat有一个端口在监听8080端口)

从8080端口进入流量的会被在此端口的线程监听到

给与我们的web容器进行处理(有index.html页面显示出来  从8080端口来时会有交互界面  会读取到index.jsp这种java代码)

但是java代码无法直接使用——》

需要利用到jsp容器

将index.jsp中的java的servlet代码进行翻译

servlet容器处理 通过catalina程序/脚本来处理从JSP容器这过来的servlet代码

并不是直接对接mysql数据库

而是直接对接用户的请求例如app中的某个功能模块

比方说看个人信息  servlet容器与app接是api进行对接(具体的URL)

数据流向最终会通过用户请求内容  去mysql数据库寻找相应的内容

最后返回给用户

Tomcat服务部署_第2张图片

用户请求(访问80端口)——》当请求需要通过8080端口进入时 需要通过connector连接器  客户端和服务单简建立连接   http1.1建立长连接(请求行、请求体、请求头、方式:get、post)连接进入后需要发送给引擎engine(web容器)

1、web容器进行接受响应请求

会有index.html可视页面显示出来   

会读取到index.jsp这种java代码(java代码需要翻译为servlet格式)

但是java代码无法直接使用——》

2、需要利用到jsp容器

接受到请求时:将java时翻译成servlet

响应请求时servlet翻译成java代码——》

3、servlet容器处理 通过catalina程序/脚本来处理从JSP容器这过来的servlet代码(宏观)servlet代码简单来说就是具体执行动态任务的代码块需要把项目的代码块执行逻辑等等放在单独的一个目录中,同事有需要被tomcat所能加载这个就是webapps——》

webapps:默认的项目存放目录   (servlet容器需要和webapps需要进行连接需要用到一个核心组件  context)一般情况下会把这些war包和jsp这些包放在kgc-host这种目录下  当tomcat运行时会加载这些代码(最初的web容器中的代码需要获取路径——》jsp或者war寻找到kgc-host目录下的这些代码中间的过程就是整个数据走向  web中的jsp代码和下面项目块是由关联的)

三个项目块:

1、KGC-HOST   2、BENET-HOST  3、ACCP-HOST

      目录 环境     

注:java应用服务的执行、持续运行的平台(java应用每一个java应用都相当于是一个独立的项目存在的)

二、Tomcat服务部署安装

在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。

将JDK、Tomcat安装包拖入或共享到/opt目录中

1.关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.安装JDK

cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm 
rpm -ivh jdk-8u201-linux-x64.rpm 

java -version

桌面安装会默认安装jdk

在这里插入图片描述

3.设置JDK环境变量

vim /etc/profile.d/java.sh       //也可以写在/etc/profile中,/etc/profile.d是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64     //java的工作目录
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar   //"."指当前目录环境,输出指定java所需的类文件     
export PATH=$JAVA_HOME/bin:$PATH   //输出重新定义的环境变量,$JAVA_HOME/bin:要在前面让系统优先识别

source /etc/profile.d/java.sh
java -version

在这里插入图片描述

4.安装启动Tomcat

cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat

——启动tomcat——
可以先优化路径 :ln -s /usr/local/tomcat/bin/* /usr/local/bin/
//后台启动
/usr/local/tomcat/bin/startup.sh  //standdown
或
/usr/local/tomcat/bin/catalina.sh start
//前台启动
/usrlocal/tomcat/bin/catalina.sh run

netstat -natp | grep 8080   //或grep java

5.访问浏览器

Tomcat服务部署_第3张图片

你可能感兴趣的:(tomcat,servlet,java)