#java #jakarta-ee #servlets
#java #джакарта-ee #сервлеты
Вопрос:
GenericServlet
реализует ServletConfig
интерфейс, который означает, что все функции интерфейса могут быть вызваны из init()
функции GenericServlet
. Учитывая этот контекст, почему контейнер сервлета отправляет ServletConfig
объект в init()
метод? Я также хотел бы знать ServletConfig
, отличается ли объект, который передается GenericServlet.init(ServletConfig)
, от объекта GenericServlet.
С уважением, Рави
Ответ №1:
GenericServlet
Реализует ServletConfig
методы, просто делегируя объект конфигурации, переданный методу init . Таким образом, он реализует ServletConfig
просто для удобства — затем он просто делегирует. Итак, вместо вызова getServletConfig().getInitParameter()
вы можете вызвать getInitParameter()
Комментарии:
1. Спасибо Божо. Если GenericServlet реализует ServletConfig , обычно будет потребитель, который знает GenericServlet только как объект ServletConfig . Поскольку разработчики сервлетов не рассматривают объекты GenericServlet как объекты ServletConfig, я предположил, что некоторый модуль контейнера сервлета имеет ссылку ServletConfig на GenericServlet. Верна ли какая-либо часть моих предположений?
2. контейнер сервлета имеет другую реализацию ServletConfig, которая является фактической используемой реализацией. он просто передает его универсальному сервлету