Tomcat架构设计

Servlet规范

    Servlet是JavaEE规范中的一种,主要是为了扩展Java作为Web服务的功能,统一定义了对应的接口,如Servlet接口,HttpRequest接口,HttpResponse接口,Filter接口。然后由具体的服务厂商来实现这些接口如Tomcat,jetty

    Servlet规范中规定了一个http请求到来的执行处理流程:对应的服务器容器会接收到对应的Http请求,然后解析该请求,创建对应的Servlet实例,调用对应init方法完成初始化,把请求相关信息封装为HttpServletRequest对象来调用Servlet的service方法处理请求,最后通过HttpServletResponse分装响应的信息交给容器,响应给客户端

Servlet核心API

ServletConfig      获取servlet初始化参数和servletContext对象

     容器在初始化servlet时,为该servlet创建一个servletConfig对象,并将这个对象通过init()方法来传递并保存在此Servlet对象中。核心作用:获取初始化信息、获取ServletContext对象

ServletContext    在整个Web应用的动态资源之间共享数据

     一个项目只有一个ServletContext对象,可以在多个Servlet中来获取这个对象,使用它可以给多个Servlet传递数据,该对象在Tomcat启动时创建,Tomcat关闭时才会销毁,作用在整个Wen应用的动态资源之间共享数据。

ServletRequest   封装Http请求信息,在请求时创建

    HttpServletRequest接口继承ServletRequest接口,用于封装请求信息,该对象在用户请求servlet时创建并传入servlet的service()方法,在该方法中传入的servletRequest将会被强制转化为HttpServletRequest对象来进行进行HTTP请求信息的处理。核心作用:获取请求报文信息、获取网络连接信息、获取请求域属性信息

ServletResponse 封装Http响应信息,在请求时创建

    HttpServletResponse继承自ServletResponse,封装了Http响应信息。客户端每个请求,服务器都会创建一个response对象,并传入给Servlet.service()。核心作用:设置响应头信息、发送状态码、设置响应正文、重定向

Tomcat结构

顶级元素:

Server:整个配置文件的根元素

Service:代表一个Engine元素以及一组与之相连的Connector元素

连接器

代表了外部客户端发送请求到特定Service的接口,同时也是外部客户端从特定Service接收响应的接口

容器

容器的作用是处理Connector接收进来的请求,并产生对应的响应,Engin,Host,Context都是容器父子关系

Engine:可以处理所有请求

Host:可以处理发向一个特定虚拟主机的所有请求

Context:可以处理一个特定Web应用的所有请求

当客户端请求发送过来后通过组建相互之间配合完成了对应的操作

Sever元素在最顶层,代表整个Tomcat容器,一个Server元素中可以有多个Service元素

Service在Connnector在Engine外面包了一层,把他们组装一起对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine,Connector接收请求,Engine处理请求

Engine,Host和Context都是容器,且Engine包含Host,Host包含Context。每个Host组件代表Engine中的一个虚拟机。每个Context组件代表在特定Host上运行的一个Web应用

Tomcat生命周期

LifeCycle接口设计

       为了统一管理Tomcat中的核心组件的生命周期,而专门设计LifeCycle接口统一管理

生命周期的方法

       

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值