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. Все сервлеты видят одни и те же атрибуты. Изменение атрибута в одном сервлете видно другим сервлетам — это разделяемое состояние.