Tomcat是apache的一个子项目,也是一个开源项目,主要是用于J2EE web容器,由于是一个开源项目,在学习与开发测试中经常被用到
,(而目前商业最为经常用到的web服务器是BEA WebLogic)。在开源项目中,鼎鼎大名的apache基金会大家肯定有所了解,网站链接:
http://www.apache.org/,而旗下的Jakarta Project 主要包括了Tomcat、Alexanda等Java项目,有兴趣者可看:
http://jakarta.apache.org/。考虑到各位学习者的机器配置与学习成本问题,这里选了Tomcat作为我们学习与测试J2EE的环境
以下为一些基本配置:
一、先从网上下载tomcat,目前最新版本是5.57,下载地址是:
http://apache.freelamp.com/jakarta/tomcat-5/v5.5.7/bin/jakarta-tomcat-5.5.7.zip,下载安装完后,在安装目录下有以下目录,主要介绍一下conf、common、webapps:
如果你现在等不急了,就想体验一下tomcat的魅力的话,把你的网页拷到webapps/ROOT目录下,然后再通过浏览器访问即可,默认如下格式:
http://localhost:8080/<你的网页>
1)webapps文件夹主要用于web应用程序部署,比如你可以把你的应用程序包,如war文件拷到该目录下,容器会自动部署。
2)conf文件夹下主要是放置tomcat的服务器的相关配置文件
3)common文件夹主要是对容器全局变量的文件放置地方,如common/lib下就是放置一些需要全文配置的文件包。
二、j2ee的相关部署规范:
一般来说作为一个符合规范的web程序,会包括以下文件夹和文件:/WEB-INF/(主要是放置一些配置文件与不希望外部程序访问的隐私文件),在网络上是不允许访问该文件夹的,如当你输入以下
http://localhost:8080/WEB-INF/的话就会出现错误。
在WEB-INF文件夹下有一个web.xml文件,这是对当前应用程序的相关设置,资源寻找等,/WEN-INF/文件夹下有个classes子文件夹,该文件夹是应用程序的根路径(等于是classpath的路径),/WEN-INF下还要有个lib文件夹,主要是放置需要引入的包,应用程序导入的包先从这里开始寻找,其次到容器的全局路径下$TOMCAT_HOME/common/lib下寻找。
以下是基本文件夹:
/tomcat
/common
/lib
/classes
/conf
/webapps
/ROOT
web.xml
/WEB-INF
/lib
/classes
/你部署的程序包
web.xml
/WEB-INF
/lib
/classes
三、容器的配置(server.xml)
到主目录/conf文件夹下server.xml文件是对web服务器的配置:
以下是一些常见的设置,http端口设置,找到以下:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
把8080端口改为你喜欢使用的端口,如常见的80,以后你就可以利用该端口进行访问你的网站了:
http://localhost:80 期中80是默认的,可以不写,其他的一下配置,可以参观相关的内容,入门就是这么简单。
web.xml为servlet的一些相关配置,可以参照一下规范。可以看我写的其他文章。
继续说一下server.xml文件的设置,
找到以下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
....
</Host>
在他们之间可以添加一个<Context>元素,如:<Context path="/axis" reloadable="true" docBase="axis" workDir="webapps/axis/work"/>,其中属性path代表是网络访问的上下文路径,reloadable表示可以在运行时在classes与lib文件夹下自动加载类包,docBase属性表示你的应用程序的路径,在windows在如:docBase="E:\Sun\axis",workDir表示是缓存文件的放置地点,可以方便跨平台移植时不用重编译。这样,你的应用程序就可以放到硬盘上的任意地方了。还有一个方法可以做到这点(推荐):编写一个xml文件,然后放到tomcat目录/conf/Catalina/<相应的网站>/目录下,如:现在我有个应用程序ACMEWeb,我编了一个文件ACMEWeb.xml内容如下:
<Context path="/ACMEWeb" reloadable="true" docBase="E:\eclipseproject\ACMEWeb" workDir="E:\eclipseproject\ACMEWeb\work" />
我把它放到了tomcat目录/conf/Cataline/localhost下,在浏览器打开
http://localhost/ACMEWeb 就会转向我放在E:\eclipseproject\ACMEWeb下的程序了
补充两点:
1.针对网页中文get提交参数情况,http connector可能需要加上
URIEncoding="GBK"防止乱码。若post提交则无所谓
2.tomcat5.5版本以上,独立的context xml配置文件既可以放到<tomcat_home>/conf/Catalina/<site name>/,也可放到<your web app's dir>/META-INF/ 下