English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Экземпляр Servlet

Servlet предоставляет услуги HTTP запросам и реализует javax.servlet.Servlet Java класс интерфейса. Разработчики веб-приложений обычно пишут Servlet для расширения javax.servlet.http.HttpServlet и реализации абстрактного класса интерфейса专门 предназначенного для обработки HTTP запросов.

Пример кода Hello World

Ниже приведен пример исходного кода Servlet для вывода Hello World:

// Импорт необходимых java библиотек
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Расширение класса HttpServlet
public class HelloWorld 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

Давайте напишем上面的 код в файл HelloWorld.java, поместите этот файл в C:\ServletDevel (на Windows) или /usr/ServletDevel (на UNIX), и вам также нужно добавить эти каталоги в CLASSPATH.

Предположим, что ваше окружение уже правильно настроено, перейдите в ServletDevel каталог, и скомпилируйте HelloWorld.java, как показано ниже:

$ javac HelloWorld.java

Если Servlet зависит от других библиотек, вы должны включить эти JAR файлы в CLASSPATH. В данном случае я включил только файл servlet-api.jar, так как в программе Hello World я не использовал другие библиотеки.

Эта командная строка использует компилятор javac, встроенный в软件开发ную среду Java Sun Microsystems (JDK). Для того чтобы эта команда работала корректно, переменная окружения PATH должна содержать путь к Java SDK.

Если все прошло顺利, компиляция выше будет генерировать файл HelloWorld.class в той же папке. В следующем разделе будет рассказано, как уже скомпилированный Servlet можно развернуть в производственной среде.

Депloyment Servlet

По умолчанию, приложение Servlet находится по пути <Tomcat-installation-directory>/webapps/ROOT и файлы классов хранятся в <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes.

Если у вас есть полная квалифицированная имя класса com.myorg.MyServletтогда этот класс Servlet должен быть расположен в <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes/com/myorg/MyServlet.class.

Теперь давайте скопируем HelloWorld.class в <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes и в папку <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/ web.xml Создайте следующие элементы в файле:

<web-app>      
    <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-app>

Эти элементы должны быть созданы в тегах <web-app>...</web-app> файла web.xml. В этом файле могут уже быть различные доступные элементы, но не обращайте на них внимание.

到这里, вы基本上 уже完成了. Теперь让我们使用 <Tomcat-installation-directory>\bin\startup.bat (на Windows) или <Tomcat-installation-directory>/bin/startup.sh (на Linux/Solaris и т.д.) для запуска сервера Tomcat, а затем в адресной строке браузера введите http://localhost:8080/HelloWorldЕсли все пойдет хорошо, вы увидите результат ниже: