Web服务(10)——Tomcat服务

Web服务(10)——Tomcat服务

一、Tomcat简介

Tomcat是Apache软件基金会(Apache Software Foundation)的jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普追使用,是开发和调试JSP程序的首选。

Tomcat官网:http://tomcat.apache.org

二、Tomcat核心组件

Tomcat和Nginx、Apache(httpd)、ghttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式,不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器,Java容器还有resin.weblogic等。

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

(1)web容器:完成web服务器的功能。

(2)Servlet容器:名字为catalina,用于处理Servlet代码。

(3)JSP容器:用于将JSP动态网页翻译成Servlet代码。

因此Tomcat是Web应用服务器,也是一个Servlet/JSP容器。Tomcat作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。

什么是servlet?

servlet 是javaservlet的简称,可以理解为是一个服务连接器,使用java编写的服务器端程序,具有独立于平台和协议的特性。

简单的理解:servlet就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建。

什么是JSP?

JSP全称Jave Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入java代码。标签通常以<%开头,以%>结束。

JSP是一种java servlet,主要用于实现java web应用程序的用户界面部分。

JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

各组件功能详解

1.web容器

• 接收、响应请求

• 展示动态页面的入口和出口

• web通过http协议来访问一个动态页面文件(index.jsp),web容器中封装了一组这样的文件,可以通过集中化管理各组

2.JSP容器

• 翻译java——→servlet

安装定影的规则:index.php—→php、index.jsp—→tomcat、html—→nginx。这里一般指index.jsp因为其中的java代码一般无法直接被调用,所以需要使用servlet先进行翻译。

三、Tomcat功能组件结构

Tomcat的核心功使有两个,分别是负责接收和反馈外部请求的连接器Connector,和负责处理请求的容器Container

其中连接器和容器相辅相成,一起构成了基本的web服务Service。每个Tomcat服务器可以管理多个Service。

Connector

负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容
器处理后的结果响应给外界。

Container

负责对内处理业务逻辑。其内部由Engine、Host、Context和Wrapper四个容器组成,用于管理和调用Servlet相关逻辑。

Container结构分析:

每个Service会包含一个Container容器,在Container内部包含了4个子容器:

(1)Engine:引擎,用来管理多个虚拟主机,一个Service最多只能有一个Engine

(2)Host:代表一个虚拟主机,也可以叫站点,通过配置Host就可以添加站点

(3)Context:代表一个web应用,包含多个Servlet封装器:

(4)Wrapper:封装器,容器的最底层,每一个Wrapper封装着一个Servlet,负责对象实例的创建、执行和销吸功能。

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

Service

对外提供的Web服务。主要包含Connector和Container两个核心组件,以及其他功能组件。Tomcat可以管理多个Service,且各Service之间相互独立。

tomcat处理请求的过程

用户在浏览器中输入网址,请求被发送到本机端口8080,被在那里监听的Connector获得:

Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应:

请求在Engine、Host、Context和Wrapper这四个容器之间层层调用,最后在Servlet中执行对应的业务逻辑、数据存储等。

执行完之后的请求响应在Context、Host、Engine容器之间层层返回,最后返回给Connector,并通过Connector返回给客户端。

四、Tomcat基础JDK

jDK是java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了java的运行环境JVM+jva系统类库)和JAVA工具。

JDK包含了一批用于java开发的组件,其中包括:

javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
java:运行工具,运行.class的字节码
jar:打包工具,将相关的类文件打包成一个文件
javadoc:文档生成器,从源码注释中提取文档,注释需匹配规范
jdb debugger:调试工具
jps:显示当前java程序运行的进程状态
javap:反编译程序
appletviewer:运行和调试applet程序的工具,不需要使用浏览器
javah:从Java类生成c头文件和c源文件。这些文件提供了连接胶合,使Java和c代码可进行交互。
javaws:运行JNLP程序
extcheck:一个检测jar包冲突的工具
apt:注释处理工具
jhat:java堆分析工具
jstack:栈跟踪程序
jstat:JVM检测统计工具
jstatd:jstat守护进程
jinfo:获取正在运行或前溃的java程序配置信息
jmap:获取java进程内存映射信息
id们j:IDL-to-Java编译器。将IDL语言转化为java文件
po11 cytoo1:一个GUI的策略文件创建和管理工具
jrunscript:命令行脚本运行

JDK中还包括完整的JRE (Java Runtime Environment),Java运行环境,也被称为private runtime,包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化的类库、IDL库等等。

JDK中还包括各种样例程序,用以属示java API中的各部分。

JDK下载面页:https://www.oracle.com/java/technologies/downloads/

五、Tomcat&JDK的部署

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

安装时选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要和tomcat保持一致。需要提前将软件包放入系统中,内存需要2G以上。

#查看centos版本
[root@TTTTTTT ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
查看内核版本
[root@TTTTTTT ~]# uname -a
Linux TTTTTTT 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@TTTTTTT ~]# getenforce 
Enforcing
[root@TTTTTTT ~]# setenforce 0
[root@TTTTTTT ~]# systemctl stop firewalld
#安装JDK
[root@TTTTTTT ~]# cd /opt
[root@TTTTTTT ~]# rpm -ivh jdk-8u201-linux-x64.rpm
#设置环境变量
[root@TTTTTTT ~]# vim /etc/profile
[root@TTTTTTT ~]# source /etc/profile
#添加以下三行到末尾
#指定java安装目录
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
#类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#用于指定java系统查找命令的路径
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

CLASSPATH:编译、运行Java程序时,JRE会去该变量指定的路径中搜索所需的类(.class)文件。

dt.jar:是关于运行环境的类库,主要是可视化的swing的包。

tools.jar:主要是一些jdk工具的类库,包括javac、java、javap(jdk自带的一个反编译工具)、javadoc等。

JDK:java development kit(java开发工具)

JRE:java runtime environment(java运行时环境)

JVM:java virtuak machine(java虚拟机),使java程序可以在多种平台上运行class文件。

#测试JDK是否安装成功
[root@TTTTTTT ~]# java -version
#安装tomcat
[root@TTTTTTT ~]# tar zxvf apache-tomcat-9.0.16.tar.gz
[root@TTTTTTT ~]# mv apache-tomcat-9.0.16 /usr/local/tomcat
#设置环境变量
[root@TTTTTTT ~]# echo 'export TOMCAT_HOME=/usr/local/tomcat'>> /etc/profile
[root@TTTTTTT ~]# source /etc/profile
#统一授权
[root@TTTTTTT ~]# chown -R root:root  /usr/local/tomcat /usr/java/jdk1.8.0_201-amd64
#开启tomcat服务
[root@TTTTTTT ~]# /usr/local/tomcat/bin/startup.sh
#关闭tomcat服务
[root@TTTTTTT ~]# /usr/local/tomcat/bin/shutdown.sh

END

猜你喜欢

转载自blog.csdn.net/tu464932199/article/details/126014996
今日推荐