Как создаются объекты ServletConfig и ServletContext
В Servlets у нас есть ServletConfig и ServletContext. Проходя через API, я вижу, что оба являются интерфейсами. Следующее мои сомнения
1.ServletConfig и ServletContext являются интерфейсами, как эти объекты создаются, если они являются интерфейсами?
2. Это классы контейнера реализуют эти интерфейсы и обеспечивают реализацию?
3. Где я могу найти инстанцирующий код ServletConfig и ServletContext?
4. Когда именно создаются ServletConfig и ServletContext.
Также я прочитал, что существует SerlvetContextListener, и у него есть методы context Created() и contextDestroyed(). И эти методы вызываются при запуске сервера. Это как мы можем узнать, что объект ServletContext создан? Просто чтение книги не дает мне четкого представления о ServletConfig и ServletContext. Хотите знать код, как они создаются. Может кто-нибудь объяснить или предоставить ссылки, чтобы я мог пройти и получить ясную картину
1 ответ
1.ServletConfig и ServletContext являются интерфейсами, как эти объекты создаются, если они являются интерфейсами?
Реализация обеспечивается контейнером. Смотрите класс ApplicationContext, используемый в Tomcat
2. Это классы контейнера реализуют эти интерфейсы и обеспечивают реализацию?
Такой же как # 1
3. Где я могу найти инстанцирующий код ServletConfig и ServletContext?
Ищите jar tomcat-core в коде grep, и вы можете найти реализации. Я связал реализацию ServletContext выше.
4. Когда именно создаются ServletConfig и ServletContext.
ServletContext - это объект уровня приложения, а ServletConfig - для каждого сервлета. Оба будут созданы при загрузке вашего приложения.
Также я прочитал, что существует SerlvetContextListener, и у него есть методы context Created() и contextDestroyed(). И эти методы вызываются при запуске сервера. Это то, как мы можем узнать, что объект ServletContext создан?
Создайте пример приложения и добавьте ServletContextListener. Смотрите пример здесь. Вы можете добавить журналы в методе contextInitialized и Destroyed, чтобы увидеть, когда они будут вызваны.