runoops.com

Servlet 第一个应用

Java Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类

Web 应用程序开发人员通常编写 Servlet 继承 javax.servlet.http.HttpServlet 并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求

Hello World 第一个应用

下面的范例使用 Servlet 输出 Hello World

新建一个 HelloWorldServlet.java 文件,输入以下内容

HelloWorldServlet.java

实例

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// 继承 HttpServlet 类
public class HelloWorldServlet 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;charset=UTF-8");

        // 实际的逻辑是在这里
        PrintWriter out = response.getWriter();
        String title = message + " | runoops 自学教程(runoops.com)";
        String docType = "<!DOCTYPE html> \n";
        out.println(docType +
            "<title>" + title + "</title>"+
            "<body bgcolor=\"#f0f0f0\">" +
            "<p>" + title + "</p>");
    }

    public void destroy()
    {
      // 什么也不做
    }
}

编译 Servlet

  1. 把 HelloWorld.java 文件放到 D:\servlet (Windows) 或 /home/www/servlet( Linux )目录中
  2. 把 D:\servlet(Windows)或 /home/www/servlet(Linux)目录添加到 CLASSPATH 中
  3. 假设我们的环境已经正确地设置,进入 servlet 目录,并编译 HelloWorldServlet.java
    $ javac HelloWorld.java
  1. 如果 Servlet 依赖于任何其他库,你必须在 CLASSPATH 中包含那些 JAR 文件
    在这里,我们只包含了 servlet-api.jar JAR 文件,因为我没有在 Hello World 程序中使用任何其他库该命令行使用 Java 软件开发工具包(JDK)内置的 javac 编译器为使该命令正常工作,你在 PATH 环境变量配置 Java SDK 的位置
  2. 如果一切顺利,编译命令会在同一目录下生成 HelloWorldServlet.class 文件
    然后我们就可以把已编译的 servlet 部署到 Tomcat 容器中了

Servlet 部署

我们已经编译好了 servlet,现在可以将它部署到 Tomcat 容器中了

servlet 应用默认路径

默认情况下,Servlet 应用程序位于以下路径中

<Tomcat-installation-directory>/webapps/应用程序名

且类文件放在路径

<Tomcat-installation-directory>/webapps/应用程序名/WEB-INF/classes

<Tomcat-installation-directory> 是 Tomcat 的安装目录

如果我们开发的是一个完全合格的类名称 com.runoops.test.HelloWorldServlet ,那么这个 servlet 类必须位于 WEB-INF/classes/com/runoops/test/HelloWorldServlet.class

在这里,我们把应用程序名定为 servlet 也就是我们的 Tomcat 应用目录是

<Tomcat-installation-directory>/webapps/servlet

现在,我们把 HelloWorldServlet.class 复制到 <Tomcat-installation-directory>/webapps/servlet/WEB-INF/classes 目录中

然后在目录 <Tomcat-installation-directory>/webapps/servlet/WEB-INF/ 新建 web.xml 文件并添加以下内容

<web-app>      
    <servlet>
        <servlet-name>HelloWorldServlet</servlet-name>
        <servlet-class>HelloWorldServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorldServlet</servlet-name>
        <url-pattern>/hello_world</url-pattern>
    </servlet-mapping>
</web-app>

web.xml 文件中可能已经有各种可用的条目,但不要在意

到这里,我们基本上已经完成了,让我们使用 <Tomcat-installation-directory>\bin\startup.bat(Windows)或 <Tomcat-installation-directory>/bin/startup.sh(Linux)启动 tomcat 服务器

在浏览器的地址栏中输入 http://localhost:8088/servlet/hello_world

如果一切顺利,会显示如下: