涉及WEB-INF子目录的Web应用程序结构是所有Java Web应用程序的标准,并由servlet API规范指定.给定myapp的顶级目录名称.以下是此目录结构的显示方式 :
/myapp /images /WEB-INF /classes /lib
WEB-INF子目录包含应用程序的部署描述符,名为web.xml.所有HTML文件都应保存在顶级目录中,即 myapp .对于admin用户,您会找到ROOT目录作为父目录.
WEB-INF/classes目录包含所有servlet类和其他类文件,在与其包名匹配的结构中.例如,如果您具有 com.myorg.MyServlet 的完全限定类名,则此servlet类必须位于以下目录中 :
/myapp/WEB-INF/classes/com/myorg/MyServlet.class
以下是创建MyServlet的示例包名为 com.myorg 的类
// Name your package package com.myorg; // Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet { private String message; public void init() throws ServletException { // Do required initialization message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); // Actual logic goes here. PrintWriter out = response.getWriter(); out.println("<h1>" + message + "</h1>"); } public void destroy() { // do nothing. } }
编译没有什么不同包中提供的课程.最简单的方法是将java文件保存在完全限定的路径中,如上所述,类将保存在com.myorg中.您还需要在CLASSPATH中添加此目录.
假设您的环境设置正确,请进入< Tomcat-installationdirectory> /webapps/ROOT/WEB -INF/classes目录并按如下方式编译MyServlet.java
$ javac MyServlet.java
如果servlet依赖于任何其他库,则还必须在CLASSPATH中包含这些JAR文件.我只包含了servlet-api.jar JAR文件,因为我没有在Hello World程序中使用任何其他库.
此命令行使用随附的内置javac编译器Sun Microsystems Java软件开发工具包(JDK).要使此命令正常工作,您必须在PATH环境变量中包含您正在使用的Java SDK的位置.
如果一切正常,编译将产生 MyServlet.class 文件位于同一目录中.下一节将解释如何在生产中部署已编译的servlet.
默认情况下,servlet应用程序位于路径中< Tomcat-installationdirectory>/webapps/ROOT,类文件将驻留在< Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classes.
如果你有一个完整的 com.myorg.MyServlet 的限定类名,然后此servlet类必须位于WEB-INF/classes/com/myorg/MyServlet.class中,您需要在中创建以下条目web.xml 文件位于< Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.myorg.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping>
要在< web-app> ...</web-app>内创建以上条目web.xml文件中提供的标记.这个表中可能有各种条目已经可用,但没关系.
你差不多完成了,现在让我们使用< Tomcat-installationdirectory> \\\\startup启动tomcat服务器.bat(在Windows上)或< Tomcat-installationdirectory>/bin/startup.sh(在Linux/Solaris等上),最后在浏览器的地址栏中输入 http://localhost:8080/MyServlet .如果一切顺利,你会得到以下结果 : 去;
Hello World