Вам лучше передать его в качестве аргумента в конструктор вашего объекта или установить его с помощью метода установки.
Фактически, вы можете получить атрибут контекста, относящийся к вашему объекту, и передать его только через конструктор / установщик. Например:
YourClass obj =
new YourClass((AnotherClass) servletContext.getAttribute("yourAttribute"));
Гораздо хуже и сложнее вариант:
- Создать
ServletContextListener
- зарегистрируйте его в web.xml с помощью
<listener><listener-class></listener-class></listener>
- on
contextInitialized(..)
получите ServletContext
от события и сохраните его в одноместном поле - где-то статическое поле.
В качестве альтернативы, вы можете делать это при каждом запросе, используя ServletRequestListener
и сохранять его в ThreadLocal
.
Затем вы можете получить это значение, вызвав ваш синглтон / локальный держатель следующим образом:
ServletContextHolder.getCurrentServletContext()