tomcat核心概念及使用初步_第1张图片

此图为JSP格式的源代码的运行流程


Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。【来源于百度百科】



JAVA EE包含多个独立的API,Servlet和JSP就是其中的两个,而JAVA EE中著名的API中还包含如下的几个:


JAVA EE APIs:

EJB(Enterprise JavaBeans):JAVA相关的诸多高级功能的实现,如RMI(Remote Method Invocation), 对象/关系映射,跨越多个数据源的分布式事务等;


JMS(Java Message Service):高性能异步消息服务,实现JAVA EE应用程序与非JAVA程序的“透明”通信;


JMX(Java Management Extensions):在程序运行时对其进行交互式监控和管理的机制;


JTA(Java Transaction API):允许应用程序在自身的一个或多个组件中平滑地处理错误的机制;


JavaMail:通过工业标准的POP/SMTP/IMAP协议发送和接收邮件的机制;



Java SE APIs:

JNDI(Java Naming and Directory Interface):用于与LDAP服务交互的API;

JAXP(Java API for XML Processing):用于分析及转换XML(基于XSLT实现);


Java SE API + JDK


Tomcat版本:

tomcat核心概念及使用初步_第2张图片



所有的web contoiner基本上都会提供一个类似于http服务的程序

Tomcat支持远程部署和管理

Tomcat的核心组件:

          catalina: servlet container

            Coyote: http connection

    Jasper: JSP Engine


Tomcat的开发语言:JAVA    Tomcat运行在jvm上,所有的java代码都运行为java虚拟机进程


Tomcat Instance: 运行中的tomcat进程(java进程)

Server: 即一个tomcat实例;

Service: 用于将connector关联至engine组件;一个service只能包含一个engine组件和一个或多个connector组件;

Engine:Tomcat的核心组件,用于运行jsp或servlet代码;

Connector:接入并解析用户请求,将请求映射为Engine中运行的代码;之后,将运行结果构建成响应报文;

                   支持http协议, ajp协议

Host:类似httpd中的虚拟主机;

Context:类似于httpd中的alias; 把一个路径部署成一个单独的应用程序,因为java是比较重量级的

注:大多数情况下,一个server中只提供一个service

注意:每个组件都由“类”来实现,有些组件的实现还不止一种;

顶级类组件:server

服务类组件:service

容器类组件:即可以部署webapp的组件,engine, host, context

连接器组件:connector

被嵌套类组件:valve, logger, realm


把各种组件的组织形式定义成html格式:


tomcat核心概念及使用初步_第3张图片

                                  


Tomcat的运行模式:

standalone:通过内置的web server (http connector)来接收客户端请求;

proxy:由专门的web server服务客户端的http请求;把客户端的请求反代至tomcat

           in-process: 两个组件部署于同一主机;

           network: 两个部署于不同主机;


安装Tomcat:

    官方站点:http://tomcat.apache.org


部署前提:

jdk:注:先安装jdk

    Oracel JDK

    OpenJDK


官网下载

jdk-8u151-linux-x64.rpm

# rpm -ivh jdk-8u151-linux-x64.rpm

dsf.png

jdk默认安装在/usr/java/


声明JAVA-HOME变量

# vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/latest

export PATH=$JAVA_HOME/bin:$PATH


# . /etc/profile.d/java.sh   注:重读此配置文件

d111111.png

上图为java命令查看其版本,能看到上图的信息,说明环境变量配置成功


官网下载 apache-tomcat-8.0.23.tar.gz 

#tar xf apache-tomcat-8.0.23.tar.gz -C /usr/local

#cd /usr/local

# ln -sv apache-tomcat-8.0.23 tomcat

# vim /etc/profile.d/tomcat.sh       注:指明tomat的环境变量

export CATALINA_HOME=/usr/local/tomcat

export PATH=$CATALINA_HOME/bin:$PATH


# . /etc/profile.d/tomcat.sh       注:重读此脚本生效


tomcat核心概念及使用初步_第4张图片


# catalina.sh start  注:启动tomcat,tomcat监听在8080端口上


tomcat核心概念及使用初步_第5张图片


部署Tomcat:

Tomcat的目录结构:

bin: 脚本及启动时用到的类

lib: 类库

conf: 配置文件

logs: 日志文件

webapps: 应用程序默认部署目录

work:工作目录

temp:临时文件目录


配置文件:

server.xml: 主配置文件

context.xml:每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的WEB-INF目录中,用于定义会话管理器、JDBC等;conf/context.xml是为各webapp提供默认配置;

web.xml:每个webapp“部署”之后才能被访问;此文件则用于为所有的webapp提供默认部署相关的配置;

tomcat-users.xml:用户认证的账号和密码配置文件;

catalina.policy:当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略;

catalina.properties:Java属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数;

logging.properties:日志相关的配置信息;