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

Tomcat源码分析(一):版本选择

2017-08-18 15:04 169 查看
目前tomcat已经升级到9.0.0.M26 (alpha)版本,如何选择安装合适版本的Tomcat?

一般从以下两个因素来分析:

JDK版本

所需要支持的Servlet和JSP规范

比如如果想要安装最新版本的tomcat9.x,那么至少需要jdk1.8。

而对于Servlet规范可能有人会有点陌生,比如servlet3.0新增了@WebServlet、@WebFilter注解来替代web.xml的配置,新增了Servlet异步化方便将请求解析和业务处理线程分离等。具体在此处不展开描述。

tomcat9.0实现的servlet4.0版本目前还处于草案阶段,不推荐使用。

tomcat8.5取代了废弃的8.0版本,按照官方描述,tomcat8.5不仅仅实现了相同的Servlet规范,还额外实现了JASPIC 1.1规范,并且显著提升了性能、稳定性以及使用成本,具体可以参考Changelog

tomcat6.0目前已经不再更新,以后下载和查看文档将会有点困难。具体的版本选择可以参照以下表格。



对于源码阅读来说,一般是从早一点的版本开始。《How tomcat works》中已经对tomcat4和5做了详细分析,是不错的入门方式。

我对http协议的解析部分比较感兴趣,参考了更新日志后,在tomcat6.0中看到这样一条:高级IO(Advanced IO capabilities)。这个高级IO对应的配置在server.xml中:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />


这个protocol有三个可选项:

org.apache.coyote.http11.Http11Protocol
- same as HTTP/1.1

org.apache.coyote.http11.Http11NioProtocol
- non blocking Java connector

org.apache.coyote.http11.Http11AprProtocol
- the APR connector.

tomcat从6.x版本开始提供了bio、nio、以及apr三种连接器的实现,之后我们将会选择该版本并对这三种连接器进行源码分析。

参考文献:
http://tomcat.apache.org/whichversion.html http://tomcat.apache.org/tomcat-6.0-doc/config/http.html https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: