Gymterview
junior

Что представляет собой ServletContext

ServletContext — это единственный на всё веб-приложение объект, реализующий интерфейс javax.servlet.ServletContext, который предоставляет всем сервлетам общий доступ к параметрам приложения, атрибутам и ресурсам. Это общее хранилище состояния на уровне приложения.

Настройка параметров

Пример
<web-app>
    <context-param>
        <param-name>exampleParameter</param-name>
        <param-value>parameterValue</param-value>
    </context-param>
</web-app>

Получить ServletContext можно через getServletContext() у ServletConfig или напрямую в сервлете.

Ключевые возможности

  • Хранение общих атрибутов приложения (setAttribute()/getAttribute())
  • Получение информации о сервере (getServerInfo())
  • Получение MIME-типов файлов (getMimeType())
  • Доступ к ресурсам приложения (getResourceAsStream())
  • Логирование (log())
  • Программное добавление сервлетов, фильтров и слушателей (Servlet 3+): addServlet(), addFilter(), addListener()

В Spring ServletContext оборачивается в WebApplicationContext, который расширяет его возможности IoC-контейнером.

На собеседовании: подчеркните, что ServletContext — это application scope. Все сервлеты видят одни и те же атрибуты. Изменение атрибута в одном сервлете видно другим сервлетам — это разделяемое состояние.