Учебники

Сервлеты — Примеры

Сервлеты — это классы Java, которые обслуживают HTTP-запросы и реализуют интерфейс javax.servlet.Servlet . Разработчики веб-приложений обычно пишут сервлеты, которые расширяют javax.servlet.http.HttpServlet, абстрактный класс, который реализует интерфейс сервлета и специально разработан для обработки HTTP-запросов.

Образец кода

Ниже приведен пример структуры исходного кода примера сервлета, демонстрирующий 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.
   }
}

Компиляция сервлета

Давайте создадим файл с именем HelloWorld.java с кодом, показанным выше. Поместите этот файл в C: \ ServletDevel (в Windows) или в / usr / ServletDevel (в Unix). Этот путь должен быть добавлен в CLASSPATH, прежде чем продолжить.

Если ваша среда правильно настроена, перейдите в каталог ServletDevel и скомпилируйте HelloWorld.java следующим образом:

$ javac HelloWorld.java

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

В этой командной строке используется встроенный компилятор javac, поставляемый с Sun Microsystems Java Software Development Kit (JDK). Чтобы эта команда работала правильно, вы должны указать расположение Java SDK, которое вы используете, в переменной среды PATH.

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

Развертывание сервлета

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

Если у вас есть полное имя класса com.myorg.MyServlet , то этот класс сервлета должен находиться в 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-app> … </ web-app>, доступных в файле web.xml. В этой таблице уже могут быть различные записи, но не берите в голову.

Вы почти закончили, теперь давайте запустим сервер Tomcat, используя <Tomcat-installationdirectory> \ bin \ startup.bat (в Windows) или <Tomcat-InstallationDirectory> /bin/startup.sh (в Linux / Solaris и т. Д.) И, наконец, наберите http: // localhost: 8080 / HelloWorld в адресной строке браузера. Если все будет хорошо, вы получите следующий результат