Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Servlet Java: Веб-технологии

В видео мы рассмотрели инициализацию Tomcat приложения при помощи IDE. В примере ниже рассмотрим инициализацию приложения в коде с использованием embedded (встроенной) версии Tomcat. Этот пример может пригодиться вам при выполнении домашнего задания

import exercise.servlet.WelcomeServlet;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.Context;

public class Example {
    public static void main(String[] args) throws LifecycleException {
        // создаём инстанс контейнера сервлетов Tomcat
        Tomcat app = new Tomcat();

        // Tomcat требуется указать директорию для временных файлов
        // Это метод должен быть вызван первым после создания инстанса
        app.setBaseDir(System.getProperty("java.io.tmpdir"));

        // Задаём порт на котором можно будет открыть приложение
        // По умолчанию Tomcat будет использовать хост 0.0.0.0, то есть
        // все доступные в системе, в т.ч localhost
        app.setPort(8080);

        // Создание контекста в программном режиме (без web.xml)
        Context ctx = app.addContext("", new File(".").getAbsolutePath());

        // Регистрируем сервлет
        app.addServlet(ctx, "HelloServlet", new HelloServlet());
        // Назначаем сервлет как обработчик запросов по пути "/hello"
        // На примере хоста и порта выше - "http://localhost:8080/hello"
        ctx.addServletMappingDecoded("/hello", "HelloServlet");

        // Запуск сервера
        app.start();
        app.getServer().await();

        // Программная остановка сервера
        // app.stop();
    }
}

Сервлет

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

    @Override
    // С помощью метода doGet() сервлет сможет обрабатывать GET запросы
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
                throws IOException, ServletException {

        // Помещаем в ответ строку "Hello, World!"
        PrintWriter out = response.getWriter();
        out.println("Hello, World!");
    }
}

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Java-разработчик
Профессия
с нуля
Разработка приложений на языке Java
2 февраля 10 месяцев

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»
Изображение Тото

Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу