|  | 
 
| 什么是Tomcat? Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是6.0.18(截止到2008-08-27)。
 
 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
 
 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
 
 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
 
 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
 
 II如何查看Tomcat 的版本?
 
 看它的日志catalina.out
 注意红色部分
 2006-6-12 15:31:53 org.apache.coyote.http11.Http11Protocol init
 ÐÅÏ¢: Initializing Coyote HTTP/1.1 on http-8080
 2006-6-12 15:31:53 org.apache.catalina.startup.Catalina load
 ÐÅÏ¢: Initialization processed in 3687 ms
 2006-6-12 15:31:54 org.apache.catalina.core.StandardService start
 ÐÅÏ¢: Starting service Catalina
 2006-6-12 15:31:54 org.apache.catalina.core.StandardEngine start
 ÐÅÏ¢: Starting Servlet Engine: Apache Tomcat/5.0.28
 2006-6-12 15:31:54 org.apache.catalina.core.StandardHost start
 ÐÅÏ¢: XML validation disabled
 2006-6-12 15:31:54 org.apache.catalina.core.StandardHost getDeployer
 ÐÅÏ¢: Create Host deployer for direct deployment ( non-jmx )
 2006-6-12 15:31:54 org.apache.catalina.core.StandardHostDeployer install
 ÐÅÏ¢: Processing Context configuration file URL file:/opt/wondertek/jakarta-tomcat-5
 
 
 IIITomcat 得安全配置
 1.下载http://www.blogcn.com/images/aurl.gifhttp://www.eu.apache.org/dist/jakarta/tomcat-5/
 这里注意,在jakarta-tomcat-5.0.28.exe以前是有默认的admin模块,在jakarta-tomcat-5.5.9.exe则没有安装默认的admin模块,这时http://www.blogcn.com/images/aurl.gifhttp://127.0.0.1:8080/admin打开时则会出现
 Tomcat'sadministrationwebapplicationisnolongerinstalledbydefault.Downloadandinstallthe"admin"packagetouseit.
 因此我们现在需要下载"admin"package包
 把jakarta-tomcat-5.5.x.zip与jakarta-tomcat-5.5.x-compat.zip与jakarta-tomcat-5.5.x-admin.zip
 三个文件解压在同一个目录中
 (如果使用jdk1.4,才需要compat.zip用jdk1.5就可以免了这个。)
 
 2.修改jakarta-tomcat-5.5.x/conf/tomcat-users.xml.
 添加管理员账号lizongbo,密码为lizongbopass.
 新xml如下:
 <?xmlversion='1.0'encoding='utf-8'?>
 <tomcat-users>
 <rolerolename="tomcat"/>
 <rolerolename="role1"/>
 <rolerolename="manager"/>
 <rolerolename="admin"/>
 <userusername="tomcat"password="tomcat"roles="tomcat"/>
 <userusername="role1"password="tomcat"roles="role1"/>
 <userusername="both"password="tomcat"roles="tomcat,role1"/>
 <userusername="lizongbo"password="lizongbopass"roles="admin,manager"/>
 </tomcat-users>
 
 有时在%CATALINA_HOME%/server/webapps/admin/WEB-INF/web.xml里面也要做些修改
 
 
 <!--Securityisactiveonentiredirectory-->
 <security-constraint>
 <display-name>TomcatServerConfigurationSecurityConstraint</display-name>
 <web-resource-collection>
 <web-resource-name>ProtectedArea</web-resource-name>
 <!--Definethecontext-relativeURL(s)tobeprotected-->
 <url-pattern>*.jsp</url-pattern>
 <url-pattern>*.do</url-pattern>
 <url-pattern>*.html</url-pattern>
 </web-resource-collection>
 <auth-constraint>
 <!--Anyonewithoneofthelistedrolesmayaccessthisarea-->
 <role-name>admin</role-name>
 </auth-constraint>
 </security-constraint>
 
 <!--Loginconfigurationusesform-basedauthentication-->
 <login-config>
 <auth-method>FORM</auth-method>
 <realm-name>TomcatServerConfigurationForm-BasedAuthenticationArea</realm-name>
 <form-login-config>
 <form-login-page>/login.jsp</form-login-page>
 <form-error-page>/error.jsp</form-error-page>
 </form-login-config>
 </login-config>
 
 <!--Securityrolesreferencedbythiswebapplication-->
 <security-role>
 <description>
 TherolethatisrequiredtologintotheAdministrationApplication
 </description>
 <role-name>admin</role-name>
 </security-role>
 无论是Authetication(身份验证还是Authorization(权限管控都只有设置相关的adminROLE,当你想要新增或修改相关的AA,就必须修改这一个文件,来符合你的环境.
 3.修改jakarta-tomcat-5.5.x/conf/server.xml来解决编码问题。
 (给Connector添加URIEncoding参数,参考http://www.blogcn.com/images/aurl.gifhttp://blog.csdn.net/darkxie/archive/2004/10/25/TOMCATAPP.aspx)
 (可以设置成GB18030)
 <Connectorport="8080"
 maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
 enableLookups="false"redirectPort="8443"acceptCount="200"
 connectionTimeout="20000"disableUploadTimeout="true"URIEncoding="GBK"
 compression="on"compressionMinSize="2048"
 noCompressionUserAgents="gozilla,traviata"
 compressableMimeType="text/html,text/xml"/>
 
 <Connectorport="8009"
 enableLookups="false"redirectPort="8443"protocol="AJP/1.3"URIEncoding="GBK"/>
 
 
 4.启用支持gzip压缩.
 (http://www.blogcn.com/images/aurl.gifhttp://www.linuxaid.com.cn/forum/showdoc.jsp?l=1&i=81169)
 添加下列属性
 compression="on"
 compressionMinSize="2048"
 noCompressionUserAgents="gozilla,traviata"
 compressableMimeType="text/html,text/xml"
 
 5.设置虚拟主机。
 在jakarta-tomcat-5.5.x/下建立文件夹vhost/www.mydomain.com。
 然后修改jakarta-tomcat-5.5.x/conf/server.xml
 
 <EnginedefaultHost="localhost"name="Catalina">
 <HostappBase="vhost/www.mydomain.com"name="http://www.blogcn.com/images/aurl.gifhttp://www.mydomain.com/">
 </Host>
 <HostappBase="webapps"name="localhost">
 </Host>
 <RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"/>
 </Engine>
 
 6.添加数据库驱动,更新mail.jar和actiovation.jar
 复制mysql-connector-java-3.0.16-ga-bin.jar,pg74.215.jdbc3.jar到jakarta-tomcat-5.5.x/common/lib/
 还有javamail1.3.2的mail.jar,jaf-1_0_2的activation.jar
 msSQl2000JDBCsp3,msbase.jar,msutil,jar,mssqlserver.jar
 
 
 7.配置SSL
 参考http://www.blogcn.com/images/aurl.gifhttp://jakarta.apache.org/tomcat/tomcat-5.5-doc/ssl-howto.html
 D:/j2sdk1.4.2_06/bin>%JAVA_HOME%/bin/keytool-genkey-aliastomcat-keyalgRSA
 输入keystore密码:lizongbossl
 您的名字与姓氏是什么?
 [tomcat5.5.x]:tomcat5.5.x
 您的组织单位名称是什么?
 [jakarta]:jakarta
 您的组织名称是什么?
 [apache]:apache
 您所在的城市或区域名称是什么?
 [hzcity]:hzcity
 您所在的州或省份名称是什么?
 [gdp]:gdp
 该单位的两字母国家代码是什么
 [CN]:CN
 CN=tomcat5.5.x,OU=jakarta,O=apache,L=hzcity,ST=gdp,C=CN正确吗?
 [否]:y
 
 输入<tomcat>的主密码
 (如果和keystore密码相同,按回车):
 
 (必须密码一致,因此直接回车)
 然后再把userhome(例如:C:/DocumentsandSettings/lizongbo/)下的.keystore复制到
 tomcat的conf/目录下。
 (例如:D:/jakarta-tomcat-5.5.x/conf/.keystore
 配置jakarta-tomcat-5.5.x/conf/server.xml
 加上
 <Connectorport="8443"
 maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
 enableLookups="false"disableUploadTimeout="true"
 acceptCount="100"scheme="https"secure="true"
 clientAuth="false"sslProtocol="TLS"
 keystoreFile="conf/.keystore"
 keystorePass="lizongbossl"><!--与先前设置的密码一致-->
 </Connector>
 8.禁止文件目录列表,
 修改jakarta-tomcat-5.5.x/conf/web.xml,把listing设置为false
 
 <servlet>
 <servlet-name>default</servlet-name>
 <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
 <init-param>
 <param-name>debug</param-name>
 <param-value>0</param-value>
 </init-param>
 <init-param>
 <param-name>listings</param-name>
 <param-value>true</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>
 
 9.指定了自己的javaEncoding
 (参考http://www.blogcn.com/images/aurl.gifhttp://gceclub.sun.com.cn/static ... bapp/ch6/ch6-4.html
 
 <servlet>
 <servlet-name>jsp</servlet-name>
 <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
 <init-param>
 <param-name>fork</param-name>
 <param-value>false</param-value>
 </init-param>
 <init-param>
 <param-name>javaEncoding</param-name>
 <param-value>GB18030</param-value>
 </init-param>
 <init-param>
 <param-name>xpoweredBy</param-name>
 <param-value>true</param-value>
 </init-param>
 <load-on-startup>3</load-on-startup>
 </servlet>
 10.添加rar,iso等的mime-type映射
 避免在浏览器里直接打开。
 <mime-mapping>
 <extension>mht</extension>
 <mime-type>text/x-mht</mime-type>
 </mime-mapping>
 <mime-mapping>
 <extension>rar</extension>
 <mime-type>application/octet-stream</mime-type>
 </mime-mapping>
 <mime-mapping>
 <extension>iso</extension>
 <mime-type>application/octet-stream</mime-type>
 </mime-mapping>
 <mime-mapping>
 <extension>ape</extension>
 <mime-type>application/octet-stream</mime-type>
 </mime-mapping>
 <mime-mapping>
 <extension>rmvb</extension>
 <mime-type>application/octet-stream</mime-type>
 </mime-mapping>
 <mime-mapping>
 <extension>ico</extension>
 <mime-type>image/x-icon</mime-type>
 </mime-mapping>
 10.1对html静态页面设置编码
 <!--修改下面两行以支持静态超文本的自动编码
 -->
 <mime-mapping>
 <extension>htm</extension>
 <mime-type>text/html;charset=gb2312</mime-type>
 </mime-mapping>
 <mime-mapping>
 <extension>html</extension>
 <mime-type>text/html;charset=gb2312</mime-type>
 </mime-mapping>
 </web-app>
 
 11.添加welcome-file-list,并调整顺序。
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 <welcome-file>index.html</welcome-file>
 <welcome-file>index.htm</welcome-file>
 <welcome-file>default.html</welcome-file>
 <welcome-file>default.htm</welcome-file>
 <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
 | 
 |