Servlet - 示例


Servlet 是为 HTTP 请求提供服务并实现javax.servlet.Servlet接口的 Java 类。Web 应用程序开发人员通常编写扩展 javax.servlet.http.HttpServlet 的 servlet,javax.servlet.http.HttpServlet 是一个实现 Servlet 接口的抽象类,专门设计用于处理 HTTP 请求。

示例代码

以下是 servlet 示例的示例源代码结构,用于显示 Hello World -

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld 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.
   }
}

编译 Servlet

让我们使用上面所示的代码创建一个名为 HelloWorld.java 的文件。将此文件放置在 C:\ServletDevel(在 Windows 中)或 /usr/ServletDevel(在 Unix 中)。在继续操作之前,必须将此路径位置添加到 CLASSPATH 中。

假设您的环境设置正确,请进入ServletDevel目录并编译 HelloWorld.java,如下所示 -

$ javac HelloWorld.java

如果 servlet 依赖于任何其他库,则还必须将这些 JAR 文件包含在 CLASSPATH 中。我只包含 servlet-api.jar JAR 文件,因为我没有在 Hello World 程序中使用任何其他库。

该命令行使用 Sun Microsystems Java 软件开发工具包 (JDK) 附带的内置 javac 编译器。为了使此命令正常工作,您必须在 PATH 环境变量中包含您正在使用的 Java SDK 的位置。

如果一切顺利,上面的编译将在同一目录中生成HelloWorld.class文件。下一节将解释如何在生产中部署已编译的 servlet。

Servlet 部署

默认情况下,servlet 应用程序位于路径 <Tomcat-installationdirectory>/webapps/ROOT,类文件将驻留在 <Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classes 中。

如果您有完全限定的类名com.myorg.MyServlet,则此 servlet 类必须位于 WEB-INF/classes/com/myorg/MyServlet.class 中。

现在,让我们将 HelloWorld.class 复制到 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes 中,并在位于 <Tomcat-installation-directory>/webapps/ROOT/WEB- 的web.xml文件中创建以下条目信息/

<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

上述条目将在 web.xml 文件中的 <web-app>...</web-app> 标签内创建。该表中可能有各种可用的条目,但没关系。

您快完成了,现在让我们使用 <Tomcat-installationdirectory>\bin\startup.bat (在 Windows 上)或 <Tomcat-installationdirectory>/bin/startup.sh (在 Linux/Solaris 等上)启动 tomcat 服务器,最后键入在浏览器地址框中输入http://localhost:8080/HelloWorld 。如果一切顺利,您将得到以下结果

Servlet 示例