Jetty和Tomcat 配置上的一些异同

来源:互联网 发布:java Callable 结束 编辑:程序博客网 时间:2024/05/21 19:39

Jetty和Tomcat在有些关键地方的配置有一些异同,这里简单列举下:

  • 字符编码

      Jetty 7 get URI queryString编码默认使用UTF-8编码,可以通过request.setAttribute(“org.eclipse.jetty.server.Request.queryEncoding”,”GBK”)设定查询参数的编码,如果不设定则默认读取系统属性-Dorg.eclipse.jetty.util.URI.charset=GBK 的编码,如果系统属性也没有设定,则默认为UTF-8

       POST 参数默认使用Content-type中的Charset编码,如果Charset没有,则默认使用UTF-8编码,当然可以在使用之前使用request.setCharacterEncoding设定编码。


Tomcat  get 编码默认是ISO-8859-1,可以通过ConnectorURIEncoding=GBK设定编码,也可以强制useBodyEncodingForURI=true URIbody编码一致。

 

  • Connector配置

       Tomcat Connector 配置参数和jetty的参数对应关系

Tomcat

Jetty

原生socket

备注

acceptCount

AcceptQueueSize

Backlog,默认50

连接被accept前允许等待的连接数

connectionLinger

SoLingerTime

soLinger

 

connectionTimeout

MaxIdleTime

SoTimeout

ServerSocket来说是accept最大阻塞时间,对Socket来说是read调用阻塞时间

enableLookups

ResolveNames

是否反查getRemoteHost()

是否反查客户机主机名

 

 

 

 

 

 

 

 

  • Tomcat 特有增强性能的APR

        Tomcat connector配置AJP/1.3HTTP/1.1 可能会使用APR,如果类路径中org.apache.tomcat.jni.Library可以用,那么则会使用APR.其实Library是在默认加载  tcnative-1.so  和libtcnative-1.so动态本地连接库来增强其性能,经过测试,APR大概给Tomcat带来约15%的性能提升,的确很给力。

       假想: Jetty如果用上这个本地库性能会有多大提升呢?最近我在进行Jetty支持APR的Connector迁移测试,我们拭目以待!