原文地址: http://www.blogjava.net/Supershen/archive/2007/11/22/162279.html
Tomcat的参数配置及一般问题的解决

如何解决端口冲突导致tomcat无法启动的问题

Tomcat在启动时主要使用下面的3个端口
< Server  port = "8005"  shutdown = "SHUTDOWN"  debug = "0" >
< Connector  className = "org.apache.coyote.tomcat4.CoyoteConnector"  port = "8080"  minProcessors = "5"  maxProcessors = "75" enableLookups = "true" redirectPort = "8443"  acceptCount = "100"  debug = "0"  connectionTimeout = "200000"  useURIValidationHack = "false"  disableUploadTimeout = "true"  />
< Connector  className = "org.apache.coyote.tomcat4.CoyoteConnector"  port = "8009"  minProcessors = "5"  maxProcessors = "75"  enableLookups = "true" redirectPort = "8443"  acceptCount = "10"  debug = "0"  connectionTimeout = "20000"  useURIValidationHack = "false" protocolHandlerClassName = "org.apache.jk.server.JkCoyoteHandler" />
端口被占用后的现象:
Ø         8080端口被占用,tomcat刚开始启动就立即停止;
Ø         8005端口被占用,tomcat启动后期停止;
Ø         8009端口被占用,tomcat会自动使用下一个未被占用的端口,无启动问题。
如果想查看端口的使用状态,在win2000下使用命令netstat –na;在winXP/2003下使用命令netstat –nao;把tomcat端口修改为未使用的端口然后再启动。
2、 修改java虚拟机内存
修改tomcat\bin\catalina.bat文件,在JAVA_OPTS变量使用前加入
set JAVA_OPTS=-Xms128m -Xmx256m
其中Xms为最小内存,Xmx为最大内存。
设定的最大内存可用如下命令测试:java -Xmx1048m -version
可以使用如下程序代码实现对内存的监控:
 

  
  1. <%  
  2. Runtime lRuntime = Runtime.getRuntime();  
  3. out.println("Free Memory: "+lRuntime.freeMemory()+"<br>");  
  4. out.println("Max   Memory: "+lRuntime.maxMemory()+"<br>");  
  5. out.println("Total Memory: "+lRuntime.totalMemory()+"<br>");  
  6. %> 
3、 修改tomcat连接数
修改tomcat\conf\server.xml文件中的如下部分
< Connector  className = "org.apache.coyote.tomcat4.CoyoteConnector" port = "8080"  minProcessors = "5"  maxProcessors = "75"  enableLookups="true"redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" disableUploadTimeout="true" />
其中minProcessors为最小连接数;maxProcessors为最大连接数;acceptCount为允许最大连接数;connectionTimeout为网络连接超时时间毫秒数。
4、  禁止列出目录下的文件
修改tomcat\conf\web.xml文件中的如下部分,把true设置为false。
< init-param >
< param-name > listings </ param-name >
     < param-value > true </ param-value >
</ init-param >
5、  设置session失效的时间
修改tomcat\conf\web.xml文件的如下部分,时间单位为分钟。
< session-config >
< session-timeout > 30 </ session-timeout >
</ session-config >
6、  设置MIME响应类型
如果文件在客户端中的响应程序类型和期望不一致,修改tomcat\conf\web.xml文件中的如下部分。
< mime-mapping >
< extension > zip </ extension >
< mime-type > application/zip </ mime-type >
</ mime-mapping >
< mime-mapping >
< extension > mht </ extension >
< mime-type > message/rfc822 </ mime-type >
</ mime-mapping >
7、  设置tomcat的默认访问页面
修改tomcat\conf\web.xml文件中的如下部分。
< welcome-file-list >
< welcome-file > login.jsp </ welcome-file >
< welcome-file > index.htm </ welcome-file >
< welcome-file > index.jsp </ welcome-file >
</ welcome-file-list >
8、  设置tomcat管理用户
修改tomcat\conf\tomcat-users.xml。
< tomcat-users >
  < role  rolename = "tomcat" />
  < role  rolename = "role1" />
  < role  rolename = "manager" />
  < role  rolename = "admin" />
  < user  username = "tomcat"  password = "tomcat"  roles = "tomcat" />
  < user  username = "role1"  password = "tomcat"  roles = "role1" />
  < user  username = "both"  password = "tomcat"  roles = "tomcat,role1" />
  < user  username = "admin"  password = ""  roles = "admin,manager" />
</ tomcat-users >
附:
1、  Tomcat 5.x Tomcat 4.x 在解析提交表单时发生了变化 ,Tomcat 4.x 无论是 post 还是 get, 都使用相同的编码,而 Tomcat 5.x  却把 get 方法单独了出来,具体可查看 tomcat source code
2、  Tomcat 5.x 允许 include jsp 页面重新定义解码方式(如下示例),而 Tomcat4.x 则不允许。
<%@  page  contentType = "text/html; charset=GBK"  %>