《how tomcat work》 搬运工 Chapter 5: Container
2015-08-09 16:51
471 查看
Containner的作用是将请求送到servlet中,然后产生response给客户端。在tomcat 4中,container有四种:Enginer,Host,Context,和 Wrapper。这个章节主要是简单介绍下Context和Wrapper,其中的Context和Wrapper都是自定义比较简单的。
Engine:代表整个Catalina servlet的引擎。
Host:代表一个拥有多个context的虚拟主机。
Context:代表一个网站,一个Context拥有一个或多个Wrapper
Wrapper:代表独立的servlet。
Pipelining Tasks
变量pipeline的invoke方法。pipeline里有一个Basevalue,这是一个必定触发的value,而pipeline还可以添加
多个value,当调用pipeline的invoke方法是,会触发每一个value。而value的顺利触发则靠valuecontext来维
持。
Contanier的invoke方法
Pipeline的interface
Valve interface
ValveContext的interface
Context和Wrapper
Context里有一个Hash类型的children,这是Wrapper的一个哈希表。Context通过他的pipeline的basevalue根据request请求,来查找适合的wrapper,然后调用wrapper的invoke方法来处理请求。wrapper的invoke中又调用wrapper中的pipeline的basevalue,来创建servlet,然后就service(req,res)了。
Engine:代表整个Catalina servlet的引擎。
Host:代表一个拥有多个context的虚拟主机。
Context:代表一个网站,一个Context拥有一个或多个Wrapper
Wrapper:代表独立的servlet。
Pipelining Tasks
变量pipeline的invoke方法。pipeline里有一个Basevalue,这是一个必定触发的value,而pipeline还可以添加
多个value,当调用pipeline的invoke方法是,会触发每一个value。而value的顺利触发则靠valuecontext来维
持。
Contanier的invoke方法
public void invoke(Request request, Response response) throws IOException, ServletException { pipeline.invoke(request, response); }
Pipeline的interface
public Valve getBasic(); public void setBasic(Valve valve); public void addValve(Valve valve); public Valve[] getValves(); public void invoke(Request request, Response response) throws IOException, ServletException; public void removeValve(Valve valve);
Valve interface
public String getInfo(); public void invoke(Request request, Response response, ValveContext context) throws IOException, ServletException;
ValveContext的interface
public void invokeNext(Request request, Response response) throws IOException, ServletException; public String getInfo();
Context和Wrapper
Context里有一个Hash类型的children,这是Wrapper的一个哈希表。Context通过他的pipeline的basevalue根据request请求,来查找适合的wrapper,然后调用wrapper的invoke方法来处理请求。wrapper的invoke中又调用wrapper中的pipeline的basevalue,来创建servlet,然后就service(req,res)了。
相关文章推荐
- win7+ii7+tomcat7运行javaWeb开发的程序
- win2008 IIS与tomcat整合
- 花生壳如何发布tomcat网站到外网?
- 远程部署tomcat工程到Linux服务器
- Tomcat组件的生命周期Lifecycle
- Tomcat源码解析(一)下载源码与导入eclipse
- Tomcat 7 的七大新特性
- 00_02启动tomcat时 一闪而过解决方法
- 00_01Tomcat服务器配置简介
- Installing Tomcat 8 on OS X 10.10 Yosemite
- tomcat配置
- Apache + Tomcat 负载均衡 session复制
- solr5.2.1环境搭建
- tomcat环境变量的配置
- WebLogic、WebSphere、JBOSS、Tomcat之间的区别
- TOMCAT 异常启动的情况
- NetBeans启动Tomcat报“'127.0.0.1' 不是内部或外部命令”启动失败
- Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)
- eclipse tomcat 建立 web服务器
- 百度开放云java+tomcat部署web项目-小皇帝詹姆斯