框架原理

Tomcat是如何响应我们的请求的

2019-01-17  本文已影响7人  简书徐小耳

而具体的响应逻辑则:
调用StandardHostValve的status方法
其内部会根据response的响应码做一些操作
最终调用了 org.apache.catalina.connector.Response(javax.servlet.http.HttpServletResponse的子类)的finishResponse方法

其会调用 OutputBuffer (java.io.Writer的子类)的close方法
该方法会关闭outputbuffer,同时将buffer中剩余的数据flush出去,同时调用
org.apache.coyote.Response的action方法
根据该方法的参数不同执行不同的逻辑
比如有COMMIT,CLOSE,ACK,CLIENT_FLUSH,AVAILABLE,REQ_SET_BODY_REPLAY,IS_ERROR,
CLOSE_NOW,DISABLE_SWALLOW_INPUT等
我们的响应就是CLOSE,最终调用的是Http11OutputBuffer的finishResponse
其底层使用了我们的selectorPool来协助

上一篇 下一篇

猜你喜欢

热点阅读