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

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应用程序,基础阀使用一个映射器来查找一个自容器,由子容器负责处理接受到的请求



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值