[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-kak-organizovat-podklyuchenie-k-baze-dannykh-i-zhurnalirovanie-v-servlete":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},562,"kak-organizovat-podklyuchenie-k-baze-dannykh-i-zhurnalirovanie-v-servlete",13,"servlety","Сервлеты","🖧","Как организовать подключение к базе данных и журналирование в сервлете","Подключение к базе данных инициализируется в `ServletContextListener` при старте приложения и сохраняется как атрибут контекста для общего доступа. Это обеспечивает единственную точку инициализации и корректное закрытие ресурсов при остановке приложения.\n\n```java\n@WebListener\npublic class AppContextListener implements ServletContextListener {\n    @Override\n    public void contextInitialized(ServletContextEvent sce) {\n        DataSource ds = createDataSource(); \u002F\u002F пул соединений\n        sce.getServletContext().setAttribute(\"dataSource\", ds);\n    }\n\n    @Override\n    public void contextDestroyed(ServletContextEvent sce) {\n        \u002F\u002F закрыть пул соединений\n    }\n}\n```\n\nЖурналирование (logging) подключается стандартным для выбранного фреймворка способом: конфигурация `logback.xml` или `log4j2.xml` размещается в classpath. Логгер создаётся в каждом классе как статическое поле:\n\n```java\nprivate static final Logger log = LoggerFactory.getLogger(MyServlet.class);\n```\n\nВ Spring Boot DataSource и логирование настраиваются автоматически через `application.yml` — ручная инициализация через listener не нужна.\n\n> **На собеседовании:** ключевой момент — ресурсы инициализируются в listener, а не в конструкторе или `init()` конкретного сервлета. Это обеспечивает единую точку создания и уничтожения ресурсов для всего приложения.","","middle",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Как организовать подключение к базе данных и журналирование  — Gymterview","Подключение к базе данных инициализируется в `ServletContextListener` при старте приложения и сохраняется как атрибут контекста для общего доступа. Это обеспечи","Подключение к базе данных инициализируется в `ServletContextListener` при старте приложения и сохраняется как атрибут ко",[15,13],"Подключение к базе данных инициализируется в `ServletContextListener` при старте приложения и сохраняется как атрибут контекста для общего доступа. Это обеспечивает единственную точку инициализации и корректное закрытие ресурсов при остановке приложения.",true]