您的位置:首页 > 运维架构 > Tomcat

Tomcat整体结构(一)——连接器和容器

2017-06-03 23:17 330 查看
tomcat的心脏是连接器和容器

Connector

连接器等待http请求,创建request和response对象,调用容器的invoke方法,将对象传给servlet容器,servlet容器加载servlet类,调用其service方法,管理session,处理错误信息

工作流程主要创建服务器套接字监听端口,然后创建连接,转至处理线程,创建request和response对象,

Container

管道任务机制

它说明了servlet容器invoke后会发生什么事,管道是servlet容器将要执行的一系列任务,阀指具体的一个任务,类似于拦截连和拦截器,servlet容器的invoke交由管道完成

public void invoke(Resquest request,Response response)
{
Pipeline.invoke(request,response);
}管道遍历执行阀,tomcat使用另外的机制实现遍历,即实现一个pipeline的内部类valveContext类,该类可以访问管道的所有阀,通过invokeNext方法实现遍历
public void invokeNext(request,response)
{
int age = 0;
age = age+1;
if(age < valva.length)
{
valva[age].invoke(request,response)
}
else if(age == valva.length)
{
basic.invoke(request,response)
}
else{system.out.print(“ No valva")}
}

每个valva调用valvaContext,valva的参数变为invoke(request,response,valvaContext)
public invoke(request,response,valvaContext)
{
//...
valvaContext.invokeNext(request,response,this)
}
Wrapper容器

Wrapper容器表示一个servlet定义,是最底层的servlet容器,它需要负责servlet类的生命周期,即servlet的init、service、destory方法,它核心方法是load(载入并初始化一个servlet),allocate(分配一个初始化的实例)

容器通过一系列方法能够方便的接入各种组件比如载入器、阀等

一个简单的Wrapper应用程序

1、创建连接器

2、创建容器,指定servletname

3、创建载入器和阀

4、容器设置载入器和阀

5、将容器实例设置为连接器的servlet容器,初始化并启动连接器

Context容器

是一个web应用程序,基础阀使用一个映射器来查找一个自容器,由子容器负责处理接受到的请求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: