惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog
Jina AI
Jina AI
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
美团技术团队
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
The Cloudflare Blog
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
GbyAI
GbyAI
腾讯CDC
MongoDB | Blog
MongoDB | Blog

博客园 - allonkwok

http header as3 打开窗口类 select 中使用 case when 和 replace SVN 安装配置快速入门 JS中常用的xpath特性 天极网软件频道的用JS实现的图片切换特效 div动态展开和关闭 DOM属性速查 div+css兼容性问题 asp常用函数 Flash使用正则进行注册验证 javascript 获取URL参数 仿163弹出层 GridView 介绍 转:GridView 72般绝技 [作者:清清月儿] Javascript Unicode 编码和反编码函数 提取文章内容的纯文本,并截取一定的字数 javascrip动态时钟 手机号码验证的JS代码(包含153、159)
Tomcat Server 原理
allonkwok · 2016-06-03 · via 博客园 - allonkwok

构成:

1.server代表整个catalina serverlet容器

2.service:由一个或多个connector以及一个共享的engine处理引擎组成

3.connector 在指定端口上监听客户请求,并将请求交给Engine处理(coyote http 和coyoteJK2)

4.Engine 必须配置在Service组件下,Engine可以配置多个虚拟主机。

5.host 代表一个虚拟主机,每个虚拟主机下配置一个或多个web应用,每个web应用对应一个context,有一个context path

6.context 在创建时根据$catalina_home/conf/web.xml 和 $webapp/web-inf/web.xml 载入servlet

载入器:

如何放置class和资源文件
A.对应于某个web应用:class置于web应用下的web-inf/classes 下 jar置于web-inf/lib下

B.对应于多个web应用:class置于$catalina_home/shared/class目录.

TomCat类的加载(ClassLoader):
Bootstrap($JAVA_HOME/jre/lib/ext/*.jar) 
System($CLASSPATH/*.class和指定的jar) 
Common($CATALINA_HOME/common 下的classes,lib,endores三个子目录) 
Catalina ($CATALINA_HOME/server/下的classes和lib目录仅对Tomcat可见)
& Shared($CATALINA_HOME/shared/下的classes和lib目录以及$CATALINA_HOME/lib目录)仅对Web应用程序可见,对Tomcat不可见
WebApp($WEBAPP/Web-INF/*仅对该WEB应用可见classes/*.class lib/*.jar)

对于web应用,加载类和资源的顺序为:

/Web-INF/classes -->/Web-INF/lib/*.jar -->Bootstrap -->System --> $CATALINA_HOME/common/classes
-->$CATALINA_HOME/common/endores/*.jar --> $CATALINA_HOME/common/lib/*.jar --> $CATALINA_HOME/shared/classes
-->$CATALINA_HOME/shared/lib/*.jar