Gymterview
junior

В чем отличия ServletContext и ServletConfig

Это два разных объекта с разным scope и назначением.

Критерий ServletConfig ServletContext
Область видимости Один сервлет Всё приложение
Количество экземпляров По одному на каждый сервлет Один на приложение
Назначение Параметры инициализации конкретного сервлета Общие параметры и ресурсы приложения
Атрибуты Только чтение параметров Чтение и запись атрибутов
Настройка <init-param> внутри <servlet> <context-param> внутри <web-app>

ServletConfig передаётся конкретному сервлету в методе init() и содержит только его параметры. ServletContext доступен всем компонентам приложения и позволяет обмениваться данными между сервлетами.

На собеседовании: простой мнемоник: Config — для одного, Context — для всех. Частая ошибка — сказать, что ServletConfig можно изменять. Нет, параметры init-param доступны только для чтения.