这里我们从tomcat7.0下的conf目录文件下找到server.xml,打开它,发现它配置啦三个端口号,那么这些端口号有啥作用,我们来看看,第一个,我们可以看到这里是tomcat监听的关闭端口号,这里指定端口号为8005,
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
下一部分,connector(连接器)用于监听请求,protocol(协议)HTTP/1.1协议,用于监听浏览器发送过来的请求,如果设置80或者8080端口,可以直接用http/://localhost访问。connectionTimeout连接超时时间,这里是20秒。如果发送的是https(http安全版)就将请求转发到8443端口。Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器。
这个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
下一部分,使用8009接收其他服务器转发的请求,AJP/1.3协议,用来监听其他服务器转发的请求,这里AJP13是定向包协议,因为性能原因,采用二进制格式来传输可读性文本。
这个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Web客户访问Tomcat服务器上JSP组件的两种方式如图1所示。
图1 Web客户访问Tomcat服务器上的JSP组件的两种方式
在图1中,Web客户1直接访问Tomcat服务器上的JSP组件,他访问的 URL为http://localhost:8080 /index.jsp。Web客户2通过HTTP服务器访问Tomcat服务器上的JSP组件。假定HTTP服务器使用的HTTP端口为默认的80端口, 那么Web客户2访问的URL为http://localhost:80/index.jsp 或者 http://localhost/index.jsp。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
为
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
这样tomcat将 利用java的异步io护理技术,no blocking IO技术. 进行请求处理。
再补充一点
tomcat8以后默认编码格式是utf-8;7之前的都是iso8859-1,如果默认情况下,tomcat使用的的编码方式:iso8859-1,修改tomcat下的conf/server.xml文件找到如下代码:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改完成后:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />