Tomcat下发布Servlet

1、编写Servle源代码

为您的servlet 编写代码非常类似于编写其它Java源代码:使用您所选择的文本编辑器来创建Java源文件。在本例中,您将编写一个非常简单的servlet,命名为HitServlet。下面展示了它的源代码。HitServlet简单地统计它被调用的次数,并将含有此统计数值的信息发回客户端。(它不是线程安全的,在此处无关紧要。)

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;

public class HitServlet extends HttpServlet {

  private int mCount;

  public void doGet(HttpServletRequest request,

      HttpServletResponse response)

      throws ServletException, IOException {

    String message = "Hits: " + ++mCount;

    response.setContentType("text/plain");

    response.setContentLength(message.length());

    PrintWriter out = response.getWriter();

    out.println(message);

  }

}

稍后,您将以特殊的目录结构建立一个WEB应用。使用该目录结构,服务器可以容易地找到应用所需的各个部份。从现在开始,为要问为什么,只要跟着往下做。将源代码保存为Tomcat 根目录下webapps/midp/WEB-INF/classes/HitServlet.java的一个文件。

2、编译Servlet

如果不能正常编译,是因为Tomcat 根目录下common/lib/servlet.jar 文件包含了servlet API。您只需简单地将此文件的路径加到CLASSPATH中,就可以使用javac编译HitServlet.java。

也可以在系统属性中,或是在命令行编辑CLASSPATH:

C:/>set CLASSPATH=/jakarta-tomcat-4.0.2/common/lib/servlet.jar

C:/>javac HitServlet.java

3、发布Servlet

为了发布您的servlet,您首先得理解关于Web应用的一些事情。一个Web应用是诸如HML、图像之类的静态内容,servlet以及其它可以通过Web接口访问的资源的集合。(我用的是Tomcat 5.0)进入您的/Tomcat 5.0/conf/Catalina/localhost目录,您可以看到一些文件(或目录),例如:admin.xml 和 manager.xml。我们将创建一个新的Web应用,并将我们的servlet放在里面。

在localhost目录下新建一个midp.xml文件,内容为:

<Context path="/midp" docBase="midp"
        debug="0" reloadable="true" privileged="true">

  <!-- Link to the user database we will get roles from -->
  <ResourceLink name="users" global="UserDatabase"
                type="org.apache.catalina.UserDatabase"/>

</Context>

 

然后保存文件。

以上所做的这些步骤是将进来的HTTP请求映射到特定目录中的Web应用。任何进来的以“/midp”(path)开头的HTTP请求都将明确地转交给位于webapps/midp(docBase)的Web应用。reloadable属性对于调试有极大的帮助:它告诉Tomcat自动重新载入任何您所修改后的servlet类,这样您就不必重新启动服务器。

现在您已经创建了一个Web应用,并充实了内容。Web应用有一个标准目录结构,该目录结构是由servlet规范所要求的。在此,我们不会深入讲述这个问题。Web应用必需的部份是web.xml文件,该文件描述了Web应用的不同部份。它位于每个Web应用的标准目录中,通常存贮为WEB-INF/web.xml。

现在应该为您的新应用创建一个web.xml文件了。您希望外面的世界可以访问您的servlet。您知道servlet的类名:HitServlet,而且您希望使用类似/hits的路径。请注意:servlet的路径是相对于Web应用的路径的,因此该servlet的全路径将是http://localhost:8080/midp/hits。拷贝下面的文本(或下载),并将它存为Tomcat根目录下的webapps/midp/WEB-INF/web.xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app

    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <servlet>

    <servlet-name>bob</servlet-name>

    <servlet-class>HitServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>bob</servlet-name>

    <url-pattern>/hits</url-pattern>

  </servlet-mapping>

</web-app>

该文件告诉Tomcat将名为HitServlet的servlet映射到路径/hits上。servlet-name是web.xml的内部元素,它将servlet元素与servlet-mapping元素链接起来。名字bob仅仅是个示例,您可以选择任何您希望的名字。

您应记得您已经将您的servlet源代码存放于WEB-INF 目录下名为classes的标准目录中了。该目录是Tomcat期望发现servlet类文件的目录,因此,当您编译了源代码,那么servlet类就存放于正确的位置了。

现在您的servlet已经发布在您创建的新Web应用中了。但是,请注意,您必须重新启动Tomcat,这样它才认可您对server.xml文件所做的修改。

打开浏览器,浏览http://localhost:8080/midp/hits,您就可以测试您亲手所做的工作了。您应该能看到HitServlet的输出。重新载入该页面几次,观察点击数的增长。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值