19.7 部署Servlets

完成上面实例代码的编译厚,需要将它们连同支持文档部署到servlet引擎上,以便于客户端能够正确访问。幸运的是,这些都非常容易做到。

首先是配置web.xml文件,该文件用来描述web应用部署。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
    <servlet>
        <servlet-name>ServletDemo1</servlet-name>
        <servlet-class>demo.ServletDemo1</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>ServletDemo2</servlet-name>
        <servlet-class>demo.ServletDemo2</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>ServletDemo2ChartGenerator</servlet-name>
        <servlet-class>demo.ServletDemo2ChartGenerator</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo1</servlet-name>
        <url-pattern>/servlet/ServletDemo1</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ServletDemo2</servlet-name>
        <url-pattern>/servlet/ServletDemo2</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ServletDemo2ChartGenerator</servlet-name>
        <url-pattern>/servlet/ServletDemo2ChartGenerator</url-pattern>
    </servlet-mapping>
</web-app>

该文件通过名字列出了全部的sevlets,并且指定了具体类。实际的类被放置在servlet引擎的指定目录下面。

最后的步骤是将全部的文档拷贝到响应的servlet引擎的目录下面。我们使用的是servlet引擎是Tomcat。在Tomcat下的webapps目录下面创建一个jfreechart2的目录,将index.html和chart.html文件拷贝到下面的目录:

webapps/jfreechart2/index.html
webapps/jfreechart2/chart.html

接下来,在目录jfreechart2下建立一个子目录WEB-INFO,将web.xml文件拷贝到该目录下面。

webapps/jfreechart2/WEB-INF/web.xml

WEB-INFO目录下面创建子目录classes/demo将编译的类放在该目录下面。

webapps/jfreechart2/WEB-INF/classes/demo/ServletDemo1.class
webapps/jfreechart2/WEB-INF/classes/demo/ServletDemo2.class
webapps/jfreechart2/WEB-INF/classes/demo/ServletDemo2ChartGenerator.class

最后,将相关的jar拷贝到下面目录:

webapps/jfreechart2/WEB-INF/lib/jcommon-1.0.9.jar
webapps/jfreechart2/WEB-INF/lib/jfreechart-1.0.6.jar

现在启动我们的servlet引擎,在我们的浏览器中输入:

http://localhost:8080/jfreechart2/index.html

如果全部文件放置在适当位置,而不出现特殊意外的话,我们将会看到上面图19.2所示的界面。