|
|
| TOMCAT -jsp/Servlet 容器 |
作者:未知
文章来源:www.jspcn.net
访问次数:1063次
加入时间:2005年01月19日
|
|
Java 2 platform enterprise edition (J2EE)是Sun公 司为企业级n-tier应用开发而制定的一套标准(http://java.sun.com/j2ee)。主要包含以下技术规范(Specification):Java Server Page(JSP), Java Servlet, Enterprise Java Bean(EJB), Java Transaction API (JTA)/Java Transaction Service(JTS), Java Naming and Directory Interface(JNDI),RMI-IIOP,JDBC等。目前J2EE成为服务器端应用的标准。JSP/Servlet作为J2EE的重要的部件,已经成为Web服务器端开发的热点。Tomcat 3.1是JSP 1.1/Servlet2.2的参考实现, Tomcat 4.0正处于开发中,是JSP 1.2/Servlet 2.3的实现。本文介绍Tomcat的安装配置,并结合一个简单的例子(Hello World Servlet)来说明J2EE Web应用的开发与实施。 本文所用的环境:Win32(Windows 2000),UNIX(Red Hat Linux 7.0),Sun JDK 1.3。 安装与配置 Tomcat的URL在http://jakarta.apache.org/tomcat/index.html。Tomcat以源代码和预编译包分发,遵从Apache许可证 (http://www.apache.org/LICENSE.txt) 。 Tomcat可以独立运行,或者与几种流行的Web服务器联合运行。像Apache Web Server(1.3+), Microsoft Internet Information Server(4.0+), Microsoft Personal Web Server(4.0+), Netscape Enterprise Server(3.0+) 。 Tomcat运行需要Java Runtime Environment (JRE) 1.1以上,Web应用开发需要Java Develop Kit(JDK) 1.1以上。在Microsoft Windows平台,Tomcat需要Windows NT , Windows 2000。 下载合适(3.1版)的Tomcat发布jakarta-tomcat[.zip|.gz|.Z]。 解压缩到合适的目录/usr/local或者C:下(UNIX或者Windows)。 设置环境变量TOMCAT_HOME和JAVA_HOME满足Tomcat的运行环境。 【WIN32】 set TOMCAT_HOME=c: omcat set JAVA_HOME=c:jdk1.3 set PATH=%PATH%;%JAVA_HOME%in 【UNIX (bash/sh)】 TOMCAT_HOME=/usr/local/tomcat ; export TOMCAT_HOME set JAVA_HOME=/user/local/java/jdk1.3; export JAVA_HOME set PATH=$PATH:$JAVA_HOME/bin; export PATH 【UNIX (csh)】 setenv TOMCAT_HOME=/usr/local/tomcat setenv JAVA_HOME=/user/local/java/jdk1.3 setenv PATH=$PATH:$JAVA_HOME/bin Tomcat的启动和关闭使用TOMCAT_HOME的bin子目录下的程序: 【WIN32】 binstartup.bat binshutdown.bat 【UNIX (bash/sh)】 bin/startup.sh bin/shutdown.sh 应用举例 创建一个主目录(/usr/local/hello 或者 c:hello),包含以下文件和子目录: src目录包含所需的源程序,HelloServlet.java是helloworld服务器程序。Lib目录包含编译、实施所需要的jar文件,xerces.jar为xml的java解释。查询xerces.jar和ant.jar的URL为:www.apache.org。etc/web.xml是J2EE Web应用在Tomcat服务器中实施的配置文件。Apache的Ant软件可以使整个Web Application的编译和实施自动化,这与在C应用开发中经常使用的Make软件相类似。同样Ant也是遵从Apache License的开放源代码软件。build.xml是Ant的Makefile,build.bat是Windows批处理文件,build.sh是UNIX的bash脚本。
【HelloServlet.java】 package com.longshine.demo; import java.io.*; import javax.servlet.*; import javax.servlet.http.* public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html> <body> <head> <title>Hello World!</title> </head> <body> <h1>Hello World!</h1> </body> </html>"); } }
【web.xml】 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <display-name> Hello World JSP/Servlet Example </display-name> <description> This is a simple web application </description> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app> 【build.bat】 @echo off rem build.bat -- Build Script for the "Hello, World" Application rem $Id: build.bat,v 1.1 2000/11/17 17:35:11 craigmcc Exp $ set CP= rem ant in tomcat 3.1 is pretty old , ant 1.1 must set CP=%CP%;..libant.jar rem xerce xml parser set CP=%CP%;..libxerces.jar set CP=%CP%;%TOMCAT_HOME%classes set CP=%CP%;%TOMCAT_HOME%libjasper.jar set CP=%CP%;%TOMCAT_HOME%libwebserver.jar set CP=%CP%;%TOMCAT_HOME%libservlet.jar set CP=%CP%;%JAVA_HOME%lib ools.jar rem Execute ANT to perform the requested build target java -classpath %CP% org.apache.tools.ant.Main -Dtomcat.home=%TOMCAT_HOME% %1 %2 %3 %4 %5 %6 %7 %8 %9
【build.sh】 #!/bin/sh # build -- Build Script for the "Hello, World" Application # $Id: build,v 1.1 2000/11/17 17:35:13 craigmcc Exp $ # Identify the custom class path components we need CP=../lib/ant.jar:../lib/xerces.jar CP=$TOMCAT_HOME/classes:$TOMCAT_HOME/lib/xml.jar CP=$CP:$TOMCAT_HOME/lib/jasper.jar:$TOMCAT_HOME/lib/servlet.jar CP=$CP:$TOMCAT_HOME/lib/webserver.jar CP=$CP:$JAVA_HOME/lib/tools.jar # Execute ANT to perform the requested build target java -classpath $CP org.apache.tools.ant.Main -Dtomcat.home=$TOMCAT_HOME "$@"
【build.xml】 <project name="Hello, World" default="compile" basedir=".."> <!-- Simple "Hello, World" project to provide a concrete example of the recommendations in the Application Developer´s Guide.. --> <target name="init"> <property name="app.name" value="hello"/> <property name="deploy.home" value="${tomcat.home}/webapps/${app.name}"/> <property name="dist.home" value="${tomcat.home}/webapps"/> <property name="dist.src" value="${app.name}.jar"/> <property name="dist.war" value="${app.name}.war"/> <property name="javadoc.home" value="${deploy.home}/javadoc"/> </target> <target name="prepare" depends="init"> <mkdir dir="${deploy.home}"/> <copydir src="web" dest="${deploy.home}"/> <mkdir dir="${deploy.home}/WEB-INF"/> <copyfile src="etc/web.xml" dest="${deploy.home}/WEB-INF/web.xml"/> <mkdir dir="${deploy.home}/WEB-INF/classes"/> <mkdir dir="${deploy.home}/WEB-INF/lib"/> <copydir src="lib" dest="${deploy.home}/WEB-INF/lib"/> <mkdir dir="${javadoc.home}"/> </target> <target name="clean"> <deltree dir="${deploy.home}"/> </target> <target name="compile" depends="prepare"> <javac srcdir="src" destdir="${deploy.home}/WEB-INF/classes" debug="on" optimize="off" deprecation="off"/> </target> <target name="javadoc" depends="prepare"> <!-- TODO --> </target> <target name="all" depends="clean,prepare,compile,javadoc"/> <target name="dist" depends="prepare,compile"> <jar jarfile="${dist.home}/${dist.src}" basedir="." includes="**"/> <jar jarfile="${dist.home}/${dist.war}" basedir="${deploy.home}" includes="**"/> </target> </project> 编译和实施 在编译以前,要保证JAVA_HOME指向JDK路径,并且正确的设置环境变量CLASSPATH和PATH。 【WIN32】 cd c:hellouild build all build dist 【UNIX】 cd /usr/local/hello build all build dist 在Tomcat的配置文件$TOMCAT_HOME/conf/server.xml加入下面一行: … <Context path="/hello" docBase="webapps/hello" debug="0" reloadable="true" > </Context> … 然后启动Tomcat。用Internet Explorer 或者Netscape Navigator 打开URL: http://loc2alhost:8080/hello/test 查看输出的结果。 小结 在J2EE中间,配置文件都是使用Extend Markup Language(XML)实现,因此Tomcat的运行需要调用xml解释包xml.jar。关于XML的介绍和应用,请参考 http://www.w3.org/TR/xml http://www.sun.com/xml http://www.xml.org http://www.xmlsoftware.com 等URL。Tomcat的配置也不例外,采用相同的方法。Tomcat中Web Application的实施可以参考Tomcat所附带的用户指南。
|
|
|