KtorServletContainerInitializer
Registers KtorServletContextListener so a servlet-hosted Ktor application is started and stopped in lockstep with the web application context lifecycle.
Registered automatically via META-INF/services/jakarta.servlet.ServletContainerInitializer, so no user configuration is required. It is a no-op when the application is driven by an embedded engine, which injects ServletApplicationEngine.ApplicationAttributeKey and owns the lifecycle itself.
It must be public so the servlet container can instantiate it via ServiceLoader, but it is internal infrastructure and not intended to be referenced directly.