Tomcat请求处理(四) -- Request, Response, 和Pipeline

1. Request和Response
当处理请求的时候,Tomcat使用org.apache.coyote.Request和org.apache.coyote.Response对象来封装对Socket的数据处理,就好像它们是输入流和输出流一样。
Request和Response是low-level的,并不是用于在开发中使用的,所以,Tomcat使用了适配器模式定义了两个类org.apache.catalina.connector.Request和org.apache.catalina.connector.Response来对前面的low-level对象进行封装,并且扩展了HttpServletRequest和HttpServletResponse接口,实现了Servelt规范。

2. Pipeline和Valve(不是half-life那个)
Tomcat有四个级别的容器,在server.xml中出现了出现过3个,Engine,Host,Context。另外一个是Wrapper,是对Servlet,JSP或者静态资源调用的一种封装,是最后一层容器了。Tomcat使用Pipeline模式在各层容器间传递请求,将请求通过管道依次通过Engine,Host,Context和Wrapper。另外,每一个容器都可以设置一系列的Valve去对请求进行拦截,就像管道中的阀一样对请求的行为进行一些干涉。

你可能感兴趣的:(apache,tomcat,jsp,socket,servlet)