Web Container包含的组件有:
JDK, Servlet, JSP等
Web Container实现:
商业实现: WebSphere(IBM) WebLogic(BEA --> Oracle) Oc4j Glassfish Geronimo JOnAS JBoss 开源实现: Tomcat jetty resin
Tomcat的核心组件:
catalina: servlet container Coyote: http connection Jasper: JSP Engine
Tomcat的开发语言: 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;
注意:每个组件都由”类“来实现,有些组件的实现还不止一种; *类组件: server 服务类组件: service 容器类组件: 即可以部署webapp的组件,engine, host, context 连接器组件:connector 被嵌套类组件: valve, logger, realm
上面的组件用xml格式来表示的话,大体如下:
<server> <service> <connector /> <connector /> ... <engine> <host> <context /> ... </host> ... </engine> </service> </server>
Tomcat的运行模式:
standalone: 通过内置的web server(http connector)来接收客户端请求 proxy:由专门的web server服务客户端的http请求,; in-process: 部署于同一主机 network: 部署于不同主机
安装Tomcat
官方站点:http://tomcat.apache.org 这里下载的版本是tomcat 8.5.63:https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.63/bin/apache-tomcat-8.5.63.tar.gz
部署前提:
jdk: Oracle JDK OpenJDK 这里用的是 Oracle JDK:jdk-8u102-linux-x64.rpm
安装jdk:
# rpm -ivh jdk-8u102-linux-x64.rpm
添加环境变量
# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest export PATH=$JAVA_HOME/bin:$PATH
# . /etc/profile.d/java.sh
安装tomcat
# tar xf apache-tomcat-8.5.63.tar.gz -C /usr/local/ # cd /usr/local/ # ln -sv apache-tomcat-8.5.63 tomcat # cd tomcat/ # vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat export PATH=$CATALINA_HOME/bin:$PATH
# . /etc/profile.d/tomcat.sh
测试tomcat: # configtest.sh # catalina.sh version # catalina.sh configtest # catalina.sh --help # catalina.sh start
Tomcat的目录结构:
bin:脚本及启动时用到的类 lib:类库 conf:配置文件 logs:日志文件 webapps: 应用程序默认部署目录 work:工作目录 temp:临时文件目录
配置文件:
server.xml:主配置文件 context.xml:每个webapp都可以有专用的配置文件。这些配置文件通常位于webapp应用程序目录下的WEB-INF目录中,用于定义会话管理器、JDBC等, conf/contxt.xml是为各webapp提供默认配置 web.xml:每个webapp“部署”之后才能被访问;此文件则用于为所有的webapp提供默认部署相关的配置; tomcat-users.xml:用户认证的账号和密码配置文件 catalina.policy:当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略; catalina.properties:java属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数; logging.properties:日志相关的配置文件;