收稿日期:2002208224;修返日期:2002210206
Tomcat 和Apache 集成支持J SP 技术探讨
边清刚,潘东华
(大连理工大学系统工程研究所,辽宁大连116024)
摘 要:介绍了JSP ,T omcat ,Apache 的产生、发展,对T omcat 和Apache 作为服务器的功能进行了比较,描
述了T omcat 的安装和配置,讨论了T omcat 和Apache 集成,并对两者结合的配置做了详尽的阐述。重点突出了与以前版本之间集成的不同。关键词:JSP ;T omcat ;Apache ;集成中图法分类号:TP312JA 文献标识码:A 文章编号:100123695(2003)0620012203
The Research of T omcat Supporting JSP T echnology Integrating with Apache
BI AN Qing 2gang ,PAN D ong 2hua
(Institute o f Systems Engineering ,Dalian Univer sity o f Technology ,Dalian Liaoning 116024,China )
Abstract :The paper describes the development of JSP ,T omcat ,Apache ,and the difference between T omcat and Apache ,and integrat 2ing of T omcat with Apache.At the same time ,the paper gives a particular description of the con figuring of the T omcat and Apache ,and em phasizes on the difference between T omcat4and T omcat3.Lastly an exam ple is given to describe the result of the making T omcat with Apache.
K ey w ords :JSP ;T omcat ;Apache ;Integration
1 引言
近年来,IT 行业涌现了一大批能够构建W eb 应用系统、支持动态处理的程序设计技术,如ASP ,PHP ,Perl 等。但只有20世纪末诞生的JSP ,一问世就吸引了各大软件开发商的注意,表现出了强大的生命力。由于JSP 技术不仅能够跨平台和兼容各种W eb 服务器产品,还把强大的服务器端Java 技术有机地融合到了静态网页的构造中去,因此,利用JSP 技术可以建立跨平台、可靠性高和先进的动态网站。
T omcat 是Apache Jakarta 的子项目之一。作为一个优秀的开放源代码的W eb 应用服务器,T omcat 基于Java 技术,全面支持JSP1.2以及Servlet2.3规范(T omcat4.0以前版本支持JSP1.1以及Servlet2.2,T omcat5.0将支持JSP2.0以及Servlet2.4)。因其技术先进、性能稳定,而且免费,因而得到了许多软件开发商的认可,成为目前比较流行的W eb 应用服务器。1996年4月起,Apache 成为全球最流行的W eb Server 。2002年7月,NWSS (Netcraft W eb Server Survey )调查发现[1],全球57%的站点应用A 2pache ,这比所有其它W eb Server 应用之和还要多。A 2pache 是一个自由软件,其志在为各种网络操作系统提供安全、可靠的W eb Server 。
T omcat 作为运行的服务器使用,存在一些问
题:①在解释静态网页时,T omcat 没有Apache 快;②T om 2
cat 的鲁棒性没有Apache 好;③T omcat 的可配置性没有Apache 好;④这也可能是最主要的,许多网站由于长期投资于Apache 服务器,比如使用Perl 或者PHP 脚本语言等,全部放弃原来的内容和形式是不可能的。针对这些原因,Apache +T omcat 配合使用,Apache 来解释静态网页的内容,而T omcat 来解释JSP ,作为JSP 的引擎。对于一个大型的,像Amazon.com 这样的,以JSP 为脚本的动态网站,采用Apache +T omcat 这样的结构具有更突出的优点,它主要体现在具有更好的可扩展性和安全性。这种类型的站点的主要特点是每一个页面都可能是动态生成的,但这些数据中主要部分还是静态的(如各类图像G IF ,J PG,PNG 和流式媒体等)。
对于两者的配合使用,有一些文章[2,3]进行了描述,但是仅在T omcat 4.0以前的版本。T omcat 4.0版本以后,它与Apache 的集成配置和以前版本相比有了很大的变化。以往的版本在设置完成以后,W eb 内容需要放置在W ebApps 目录下面。在浏览器中只输入域名或IP ,也不能实现直接对网页的访问,还需要加上一个相对路径,如http ://localhost/exam ples/index.jsp 。我们在建立动态网站的时候,想自己设立W eb 文件夹,在访问网站的时候,一般不喜欢在输入域名或IP 以后,再输入类似/exam ples/这样的相对路径。本文就T omcat 4.04的安装配置、T omcat 4.04和Apache 集成配置及如何实现动态网站W eb 根目录的随意放置和浏览器中直接输入域名
・21・ 计算机应用研究2003年
2 Tomcat4的安装及配置
211 J DK的安装及配置
要执行Java程序,JDK是必须要安装的。JDK是免费的软件,可以从S UN官方网站上下载。现在常用的版本是1.3[4]。
(1)对于WINNT操作系统,下载软件j2sdk21302 w in,解压安装到C:\\jdk1.3,设置系统环境变量: JAVA HOME=c:\\jdk1.3
C LASSPATH=C:\\jdk1.3\\lib;c:\\jdk1.3\\lib\ools.jar;C:\
jdk1.3\\lib\\dt.jar;C:\\jdk1.3\\lib\\htm lconverter.jar
PATH=C:\\jdk1.3\\bin
(2)在Linux操作系统中,下载J2sdk21.31042 linux2i586.bin,首先改变其权限:
chm od a+x J2sdk21.31042linux2i586.bin
该文件变成一个可执行文件,然后执行如下命令:
./J2sdk21.31042linux2i586.bin2prefix=/usr/local/jdk1.3
此时需要做的工作就是配置Linux系统中的环境变量。这里有两种方式可以用,一种是打开/etc/profile文件,添加如下内容:
JAVA HOME=/usr/local/jdk1.3
C LASSPATH=/usr/local/jdk1.3/lib:/usr/local/jre/lib
PATH=S|PATH:/usr/local/jdk1.3/bin:/usr/local/jre/bin
Export JAVA HOME
Export C LASSPATH
另一种方法是在/usr/root目录下:
vi.bash profile
按键I,插入以下语句:
JAVA HOME=/usr/local/jdk1.3
Export JAVA HOME
C LASSPATH=/usr/local/jdk1.3/lib:/usr/local/jre/lib
Export C LASSPATH
PATH=S|PATH:/usr/local/jdk1.3/bin:/usr/local/jre/bin
然后按键Esc,输入:wq就退回命令行状态。Linux 中环境变量就设置完毕。
212 T omcat4的安装
T omcat可以从Apache的网站http://jakarta.apache. org下载jakarta2tomcat24.0.4.zip(WINNT)或
jakarta2tomcat24.0.4.tar.gz(Linux)解压安装至C:\\ tomcat(WINNT)或/usr/local/tomcat(Linux)。
对T omcat进行环境变量的设置。
在WINNT操作系统中加入:
CAT A LINA BASE=C:\omcat
CAT A LINA HOME=C:\omcat
在Linux操作系统中在/root/.bash file文件或/etc/ profile文件中加入如下语句:
CAT A LINA BASE=/usr/local/tomcat
CAT A LINA BASE=/usr/local/tomcat
进入T omcat所包含的文件夹Bin运行S tartup或./ startup.sh(Linux),在浏览器中输入http://localhost:8080,就可以看到T omcat自带的JSP和Servlet例程,这说明T omcat自己作为服务器已经成功!如果想停止T omcat 的运行,可以在Bin文件夹下运行Shutdown或./shut2 down.sh(Linux),T omcat服务就可以停止。
3 Tomcat和Apache的集成
在集成T omcat和Apache的过程中有两步需要我们来做:①Apache的安装配置,使Apache能够访问T omcat;
②T omcat能够识别和回应来自Apache的访问。
311 Apache的安装和配置
对于Apache,我们可以在Apache的官方网站:http:// w w w.apache.org上下载。Apache最新版本为2.0.40,稳定版本为1.3.26。下载Apache1.3.26:
在WINNT操作系统中解压安装在C:\\apache目录下。
在Linux操作系统中比较复杂一些,在这里我们加以详细解释,使用命令如下:
mkdir/usr/local/httpd
tar zxv f apache 1.3.26.tar.gz
cd apache 1.3.26
./con figure2prefix=/usr/local/httpd2enable2m odule=s o
make
make install
在C on figure命令中,指定了目标安装目录,并且加入了DS O(Dynam ic Shared Object)支持。注意的是一定不要忘了这一项,否则对于下面你要加入的模块不予支持。
在Apache的官方网站下载W ebApp模块,将解压后的M od webapp.s o放入Apache(WINNT)或H ttpd(Linux)的M odules目录,然后编辑C on f文件夹里的H ttpd.con f文件,使其能够装载M od webapp.s o。在H ttpd.con f文件的最后加入下面六行(这在任何操作系统中都一样):
########################
#######Added by Mr.BIAN#########
LoadM odule W ebapp m odule m odules/m odW ebapp.s o
W ebAppC onnection M yconnection warp localhost:8008
W ebAppDeploy M y Jsp M yconnection/
########################
其中第一、六行做一个隔离,表明加入的东西有别于H ttpd.con f文件中的其余部分;第二行表明加入该段内容的作者,以便将来寻找责任人或者便于修改;第三行是加入W ebApp模块,如果在Linux操作系统中编译A2 pache时没有增加DS O支持,即2enable2m odule=so这句话,加入的LoadM odule就无法使用;第四行指定T omcat 与Apache的连接;第五行部署应用。第四、五行要结合在一起使用,两者格式指令[5~7]如下:
W ebAppC onnection[connectionname][Provider][forwardH ost:port]
W ebAppDeploy[Appname][connectionname][pathtoApp]
其中C onnectionname指定连接名,可以定义你喜欢的名称。但第四、五两行要统一,需要一个一致的名字。Provider只能是W arp,不能做改动。P ort端口号用来告诉M od webapp模块应该把请求发向什么地方。W ebAp2 pDeploy通知M od webapp模块把所有的请求发向应用服务器上的特定目录。Appname是服务器上的文件目录名字。pathtoApp就是登录网站时的UR L(统一资源定位
・
3
1
・
第6期边清刚等:T omcat和Apache集成支持JSP技术探讨
器)。例如http ://w w w.cctv.com/tv online/real.htm l ,在笔者所列的设置中,我们设置为/,改变以往资料中设置为/exam ples/的惯用格式,这样在浏览器中可以直接输入域名或者IP 就可以访问该网站中的以Index 为文件名,jsp ,htm ,htm l 为扩展名的文件,不必再加上相对路径如/exam ples/等,比较符合大众访问网站的习惯。312 修改T omcat 配置接收Apache 请求
Apache 能够向T omcat 发送请求,现在我们需要做的是让T omcat 处理Apache 的请求。
T omcat 的配置文件Server.xm l 位于自己安装目录包含的C on f 文件夹中。打开该文件,找到 333333 这段配置信息定义了T omcat 回应Apache 的连接,这 里面需要小小的修改来适合我们的安装。经过多次尝试,笔者得出,只要对appBase 参数进行修改就可以了: 在W inNT 操作系统中,appBase =″d :/w w wroot ″在Linux 操作系统中,appBase =″/w w wroot ″ 需要注意的是appBase 的设置内容为你的网站的根路径!这改变了以往认为虚拟目录的物理路径必须放在T omcat 包含的W ebApps 目录下的观点。 Apache 配置中Appname 参数必须是你设置的app 2Base 中的一个文件夹。如上面所描述,我们在Apache 配置文件中加的M yjsp 文件夹就在w w wroot 目录中。 T omcat 的配置文件W eb.xm l 也位于C on f 文件夹里。打开该文件,将对文件进行如下配置: 这样做的目的在于浏览器中输入域名或IP 后,即按顺序搜索Index.jsp ,Index.htm ,Index.htm l ,如果发现以后,不用人为输入文件名,服务器可以自动调出该文件并显示。修改完毕后,保存文件。 4 J SP 网页发布实例 我们在w w wroot/M y Jsp 文件夹里面,用记事本编写一个简单的Index.jsp 文件,内容格式如下: <%=new java.util.Date ()%> <%=″hello ,this is BIAN Qinggang ’s first JSP page ″%> <%=″M y Email :bqgang @sina.com ″%> 存盘,进行综合测试,重新启动所有的服务。注意: 首先启动T omcat 服务,启动完毕后,启动Apache 服务。 Linux 操作系统中: /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh /usr/local/httpd/bin/apachectl restart W inNT 操作系统中: C :\omcat \\bin \\shutdown.bat C :\omcat \\bin \\startup.bat 在程序中,重新启动Apache 。在浏览器中输入以下地址http ://localhost 或者本机的IP ,则可以输出如图1 所示的结果。 图1 结果显示 浏览器自动找到对应文件夹下的Index.jsp ,并自动 加上该文件的名称Index.jsp 。 5 结束语 总的说来,新版本的T om cat 和A pache 的集成配置过程,比以往版本的配置都要困难,因为缺少比较全面的文档来说明T om cat 版本之间发生了哪些变化。本文对A pache +T om cat 配置过程在Linux7.2,Linux7.1,W ind ows2000S erver 操作系统中反复论证过。在这里,我们做了两点小小的进展:一是W eb 根目录位置任意设定,可以自行规定,不用像许多资料所说的那样,必须设置在T om cat 下面的W ebA pps 中;二是浏览器中输入域名或者IP 可以实现访问网站,不比再加上类似/exam ples/的目录(相对路径)。实现直接对网站的访问,只是迈出了必需的第一步。配置过程中,仍有许多的知识点值得我们去探索。参考文献: [1]The Apache S oftware F oundation.The Number One HTTP Ser 2 ver on the Internet [E B/O L ].http ://httpd.apache.org ,2002208201. [2]赵东.利用Apache 和T omcat 构建支持Servlet 的动态网站 [J ].计算机应用研究,2000,17(11):47249.[3]刘冲,等.配置T omcat 使Apache 服务器支持Java 动态网 页编程[J ].计算机应用,2001,21(8):1092110. [4]Sun M icrosystems.D ownload Center[E B/O L ].http ://w w ws.sun. com/s oftware/download/,2002208201.[5]D on MacVittie.Making T omcat W ork with Apache [E B/O L ]. http ://dcb.sun.com/practices/howtos/tomcat apache.jsp ,2001211220.[6]宗峰.T omcat 全攻略[E B/O L ].http ://w w w 2900.ibm.com/ developerw orks/cn/java/l 2tomcat/index.shtml ,20012121 [7][美]Mark Wutka 1JSP 和Servlet 程序设计使用专辑[M].程 显华,等1北京:机械工业出版社,2002. 作者简介: 边清刚(19772),男,山东临邑人,硕士研究生,主要研究方向 为计算机网络、知识管理;潘东华(19602),男,辽宁朝阳人,副教授,主要研究方向为计算机网络、决策支持系统、知识管理。 ・41・ 计算机应用研究 2003年