Servlets - 示例

  • 简述

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

    以下是显示 Hello World 的 servlet 示例的示例源代码结构 -
    
    // 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 依赖于任何其他库,则您还必须在 CLASSPATH 中包含这些 JAR 文件。我只包含了 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-installationdirectory>/webapps/ROOT/WEB-INF/classes 并在 web.xml 文件位于 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/
    
    <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在浏览器的地址框中。如果一切顺利,你会得到以下结果
    小服务程序示例