企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Servlet 包 涉及到 WEB-INF 子目录的 Web 应用程序结构是所有的 Java web 应用程序的标准,并由 Servlet API 规范指定。给定一个顶级目录名 myapp,目录结构如下所示: ``` /myapp /images /WEB-INF /classes /lib ``` WEB-INF 子目录中包含应用程序的部署描述符,名为 web.xml。所有的 HTML 文件都位于顶级目录 _myapp_ 下。对于 admin 用户,您会发现 ROOT 目录是 myApp 的父目录。 ## 创建包中的 Servlet WEB-INF/classes 目录包含了所有的 Servlet 类和其他类文件,类文件所在的目录结构与他们的包名称匹配。例如,如果您有一个完全合格的类名称 **com.myorg.MyServlet**,那么这个 Servlet 类必须位于以下目录中: ``` /myapp/WEB-INF/classes/com/myorg/MyServlet.class ``` 下面的例子创建包名为 _com.myorg_ 的 MyServlet 类。 ``` // 为包命名 package com.myorg; // 导入必需的 java 库 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet { private String message; public void init() throws ServletException { // 执行必需的的初始化 message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); // 实际的逻辑是在这里 PrintWriter out = response.getWriter(); out.println("<h1>" + message + "</h1>"); } public void destroy() { // 什么也不做 } } ``` ## 编译包中的 Servlet 编译包中的类与编译其他的类没有什么大的不同。最简单的方法是让您的 java 文件保留完全限定路径,如上面提到的类,将被保留在 com.myorg 中。您还需要在 CLASSPATH 中添加该目录。 假设您的环境已正确设置,进入 **&lt;Tomcat-installation-directory&gt;/webapps/ROOT/WEB-INF/classes** 目录,并编译 MyServlet.java,如下所示: ``` $ javac MyServlet.java ``` 如果 Servlet 依赖于其他库,那么您必须在 CLASSPATH 中也要引用那些 JAR 文件。这里我只引用了 servlet-api.jar JAR 文件,因为我在 Hello World 程序中并没有使用任何其他库。 该命令行使用内置的 javac 编译器,它是 Sun Microsystems Java 软件开发工具包(JDK,全称 Java Software Development Kit)附带的。 Microsystems的Java软件开发工具包(JDK)。为了让该命令正常工作,必须包括您在 PATH 环境变量中所使用的 Java SDK 的位置。 如果一切顺利,上述编译会在同一目录下生成 **MyServlet.class** 文件。下一节将解释如何部把一个已编译的 Servlet 部署到生产中。 ## Servlet 打包部署 默认情况下,Servlet 应用程序位于路径 &lt;Tomcat-installation-directory&gt;/webapps/ROOT 下,且类文件放在 &lt;Tomcat-installation-directory&gt;/webapps/ROOT/WEB-INF/classes 中。 如果您有一个完全合格的类名称 **com.myorg.MyServlet**,那么这个 Servlet 类必须位于 WEB-INF/classes/com/myorg/MyServlet.class 中,您需要在位于 &lt;Tomcat-installation-directory&gt;/webapps/ROOT/WEB-INF/ 的 web.xml 文件中创建以下条目: ``` <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.xml 文件中的 &lt;web-app&gt;...&lt;/web-app&gt; 标签内。在该文件中可能已经有各种可用的条目,但不要在意。 到这里,您基本上已经完成了,现在让我们使用 &lt;Tomcat-installation-directory&gt;\bin\startup.bat(在 Windows 上)或 &lt;Tomcat-installation-directory&gt;/bin/startup.sh(在 Linux/Solaris 等上)启动 tomcat 服务器,最后在浏览器的地址栏中输入 **http://localhost:8080/MyServlet**。如果一切顺利,您会看到下面的结果: ``` <h1>Hello World</h1> ```