12.1.4 一个简单的Servlet(2)

来源:互联网 发布:linux安装nfs文件系统 编辑:程序博客网 时间:2024/05/16 15:14
12.1.4  一个简单的Servlet(2)

  大多数情况下,你会看到如图12-3所示的画面。

  图12-3  编译HelloWorldServlet.java的出错信息

  产生这些错误的原因是Java编译器没有找到javax.servlet包中的类。要解决这个问题,我们需要让Java编译器知道Servlet API库所在的位置。Tomcat在其发行版中已经包含了Servlet API库,是以JAR文件的形式提供的,这个JAR文件的完整路径名是:

  %CATALINA_HOME%\lib\servlet-api.jar

  我们只需要在系统的CLASSPATH环境变量下添加这个JAR文件的路径名就可以了。

  设置CLASSPATH环境变量的方法和第11章设置JAVA_HOME环境变量的方法是一样的。在笔者的机器上,CLASSPATH环境变量的配置如下:

  CLASSPATH=.;D:\OpenSource\apache-tomcat-7.0.23\lib\servlet-api.jar

  关闭刚才打开的命令提示符窗口,重新打开一个新的命令提示符窗口,进入HelloWorldServlet.java所在的目录,再次执行下列代码生成org\sunxin\ch12\servlet目录结构,以及在servlet子目录中的HelloWorld Servlet.class文件。

  javac -d . HelloWorldServlet.java

  Step3:部署HelloWorldServlet

  Servlet是Web应用程序中的一个组件。一个Web应用程序是由一组Servlet、HTML页面、类,以及其他的资源组成的运行在Web服务器上的完整的应用程序,以一种结构化的有层次的目录形式存在。组成Web应用程序的这些资源文件要部署在相应的目录层次中,根目录代表了整个Web应用程序的根。我们通常是将Web应用程序的目录放到%CATALINA_HOME%\webapps目录下,在webapps目录下的每一个子目录都是一个独立的Web应用程序,子目录的名字就是Web应用程序的名字,也称为Web应用程序的上下文根。用户通过Web应用程序的上下文根来访问Web应用程序中的资源,如图12-4所示。

  如果你要新建一个Web应用程序,可以在webapps目录下先建一个目录,在这个例子中,我们所建的目录是ch12,作为第一个Web应用程序的上下文根。Java开发的Web应用程序需要遵照一定的目录层次结构,在Servlet规范中定义了Web应用程序的目录层次结构,如图12-5所示。

  图12-4  多个Web应用程序和上下文根

  图12-5  Web应用程序的目录层次结构

  Web应用程序的目录层次结构如表12-1所示。

  表12-1  Web应用程序的目录层次结构