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

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

Example.java

package exercise.servlet;

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;

import java.util.List;

public class CompaniesServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        // Список всех компаний
        List<String> companies = List.of("Google", "Apple", "Samsung");

        // Получаем информацию о пути из URL-адреса, на который был выполнен запрос
        String pathInfo = request.getPathInfo();

        // Если метод вернул `null`, значит запрос был выполнен на адрес `/companies`
        // Нужно вывести список всех компаний
        if (pathInfo == null) {
            StringBuilder body = new StringBuilder();
            // Выводим список всех компаний
            // Создаем html разметку при помощи String builder
            // Подключаем стили
            body.append("""
                <!DOCTYPE html>
                <html lang=\"ru\">
                    <head>
                        <meta charset=\"UTF-8\">
                        <title>Example application | Users</title>
                        <link rel=\"stylesheet\" href=\"mysite.css\">
                    </head>
                    <body>
                """);

            for (String companyName : companies) {
                body.append("<p>" + companyName + "</p>");
            }

            body.append("""
                    </body>
                </html>
                """);


            // Устанавливаем тип содержимого ответа и кодировку
            response.setContentType("text/html;charset=UTF-8");
            // При помощи метода setStatus() можно установить код ответа
            // response.setStatus(HttpServletResponseSC_OK)

            PrintWriter out = response.getWriter();
            out.println(body.toString());

            return;
        }

        // В другом случае, если метод getPathInfo() вернул путь
        // Разбиваем строку с путем в массив, который будет содержать составные части пути
        String[] pathParts = pathInfo.split("/");

        // Получаем id пользователя из пути как второй элемент массива
        String id = ArrayUtils.get(pathParts, 1, "");

        // Получаем компанию по id при помощи гипотетического метода getCompanyName()
        String companyName = getCompanyName(id);

        // Если кампании с таким id не существует, отправляем клиенту сообщение об ошибке с кодом ответа 404
        if (user == null) {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
            return;
        }

        // Создаем html разметку при помощи String builder и подключаем стили
        StringBuilder body = new StringBuilder();
        body.append("""
            <!DOCTYPE html>
            <html lang=\"ru\">
                <head>
                    <meta charset=\"UTF-8\">
                    <title>Example application | Users</title>
                    <link rel=\"stylesheet\" href=\"mysite.css\">
                </head>
                <body>
            """);

        body.append("<p> + companyName + </p>");

        body.append("""
                </body>
            </html>
            """);

        // Устанавливаем тип содержимого ответа и кодировку
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println(body.toString());
    }
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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