ADVANCED JAKARTA SERVLETS: SERVLET CONTEXT LISTENERS EĞİTİMİ

Uygulama yaşam döngüsünü context listener ile yönet

ServletContextListener, attribute listener, havuz başlatma, zamanlanmış görevler ve temiz kapanış kalıplarını öğrenin.

Servlet Context Listener Kullanımı eğitimi 2 günlük uygulamalı programda servletcontext, servletcontextlistener, i̇lgili dinleyiciler, yapılandırma yükleme gibi konuları kapsar. ServletContextListener ile uygulama açılış ve kapanış mantığı yazabilirsiniz.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Uygulama başlangıç/bitiş olayları ve kaynak yönetimi

Bu eğitim, Jakarta Servlet uygulamalarında ServletContextListener ve ilgili dinleyicilerin kullanımını işler. contextInitialized ve contextDestroyed olayları, @WebListener ve web.xml kaydı, ServletContext init-param, uygulama genelinde paylaşılan nesneler (DataSource, yapılandırma, önbellek), ServletContextAttributeListener ve çok dinleyicili sıralama konuları ele alınır. Bağlantı havuzu (HikariCP) başlatma, ScheduledExecutorService ile zamanlanmış görevler, thread sızıntısı ve ClassLoader sızıntısını önleme, temiz kapanış, Tomcat yeniden dağıtımı (redeploy) hataları ve test yaklaşımları uygulamalı gösterilir.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar listener temelleri konusundan başlayıp kaynak yönetimi ve kapanış konusuyla tamamlar.

Seviye

Orta Seviye — ServletContextListener ile uygulama başlangıç/bitiş olayları, kaynak yönetimi ve uygulama genelinde başlatma işleri.

Öğrenme Metodu

Tomcat'te uygulama deploy/undeploy döngüleri tekrarlanarak listener davranışı ve kaynak sızıntıları loglardan ve heap analizinden izlenir.

Neden Bu Eğitim?

🚀Başlangıç Kontrolü

Uygulama açılırken havuz, yapılandırma ve önbelleği güvenle hazırlarsınız.

🧹Temiz Kapanış

Thread ve bağlantı sızıntılarını contextDestroyed ile önlersiniz.

♻️Redeploy Güvenliği

Sıcak yeniden dağıtımda oluşan ClassLoader sızıntılarını tanırsınız.

Anahtar Konular

servletcontextlistenerservlet context listenerwebListenerjakarta servlet listenerservletcontextuygulama başlangıç kapanıştomcat classloader leakhikaricp servletjava web yaşam döngüsüjakarta ee listener
“Düzgün açılan uygulama, düzgün kapanmayı da bilir.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Java Temeli

Sınıf, koleksiyon ve istisna yönetimi gibi temel Java bilgisi beklenir.

2
HTTP Bilgisi

İstek-yanıt modeli, durum kodları ve başlık kavramlarına aşinalık faydalıdır.

3
Uygulama Sunucusu

Tomcat, Jetty veya benzeri bir servlet konteyneri kurulumu yapılabilecek ortam gerekir.

4
Araçlar

Maven ile proje oluşturma ve IDE üzerinden dağıtım yapma deneyimi yararlıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı, ServletContextListener yazar, kaydeder ve uygulama genelinde paylaşılan nesneleri yönetir.
Modül 1
ServletContext
  • Web uygulaması başına tek ServletContext
  • Context init-param ve web.xml context-param
  • getAttribute/setAttribute ile uygulama kapsamı
  • getRealPath ve getResourceAsStream
  • ServletContext sürüm ve konteyner bilgisi
  • addServlet/addFilter programatik kayıt
Modül 2
ServletContextListener
  • contextInitialized ve contextDestroyed
  • ServletContextEvent ve getServletContext
  • @WebListener ile kayıt
  • web.xml listener tanımı
  • Birden çok listener ve sıralama
  • Başlangıçta atılan istisna ve uygulamanın başlamaması
Modül 3
İlgili Dinleyiciler
  • ServletContextAttributeListener ile attribute izleme
  • HttpSessionListener ve oturum sayacı
  • ServletRequestListener ile istek izleme
  • Listener türleri ve olay sırası şeması
  • Dinleyici içinde thread-safe sayaç
  • Listener ve CDI olayları arasındaki fark
Modül 4
Yapılandırma Yükleme
  • properties/YAML dosyasını başlangıçta okuma
  • Ortam değişkeni ve sistem özelliği önceliği
  • Yapılandırmayı ServletContext'e koyma
  • Yapılandırma hatasında hızlı başarısızlık (fail fast)
  • Gizli bilgileri (şifre) güvenli okuma
  • Yapılandırma sınıfı (AppConfig) tasarımı
Günün hedefiKatılımcı, başlangıçta kaynak oluşturur, kapanışta eksiksiz serbest bırakır ve redeploy sızıntılarını önler.
Modül 1
Bağlantı Havuzu
  • HikariCP DataSource başlatma
  • JNDI DataSource ile karşılaştırma
  • DataSource'u context attribute olarak paylaşma
  • Havuz boyutu ve zaman aşımı ayarları
  • contextDestroyed'da havuzu kapatma
  • JDBC sürücüsü kayıt silme (deregisterDriver)
Modül 2
Zamanlanmış Görevler
  • ScheduledExecutorService başlangıçta kurma
  • Düzenli temizlik ve önbellek yenileme görevleri
  • Quartz kullanımına giriş
  • shutdown ve awaitTermination ile kapanış
  • Görev istisnasının sessizce görevi öldürmesi
  • Tek örnek garantisi: kümede çift çalışma riski
Modül 3
Önbellek ve Paylaşılan Nesneler
  • Uygulama genelinde ConcurrentHashMap önbelleği
  • Başlangıçta ön ısıtma (warm-up)
  • Thread-safe immutable konfigürasyon
  • Önbelleği kapanışta diske yazma
  • Singleton ve ServletContext attribute karşılaştırması
  • Referans veri yükleme örneği
Modül 4
Sızıntı ve Test
  • ClassLoader sızıntısı ve ThreadLocal temizliği
  • Tomcat uyarıları: thread started but failed to stop
  • Yeniden dağıtımda bellek artışı ve heap dump
  • Arquillian veya mock ServletContext ile test
  • Başlangıç sağlık kontrolü ve readiness
  • Üretim kontrol listesi: açılış ve kapanış

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Listener Yazma

ServletContextListener ile uygulama açılış ve kapanış mantığı yazabilirsiniz.

🧠
Kayıt Yöntemi

@WebListener ve web.xml ile dinleyici kaydedebilirsiniz.

⚙️
Havuz Yönetimi

Bağlantı havuzunu başlatıp kapanışta güvenle kapatabilirsiniz.

🔍
Zamanlanmış Görev

ScheduledExecutorService ile arka plan görevleri çalıştırabilirsiniz.

🛠️
Yapılandırma

Başlangıçta yapılandırmayı yükleyip uygulama kapsamında paylaşabilirsiniz.

📈
Sızıntı Önleme

Thread ve ClassLoader sızıntılarını contextDestroyed ile önleyebilirsiniz.

🧩
Ek Dinleyiciler

Session ve attribute dinleyicilerini birlikte kullanabilirsiniz.

🚀
Test

Başlangıç mantığını mock ServletContext ile test edebilirsiniz.

Kimler İçin Uygundur?

  • Servlet temellerini bilen
  • uygulama açılışında kaynak hazırlayıp kapanışta temizlemek isteyen Java web geliştiricileri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Servlet temellerini bilen, uygulama açılışında kaynak hazırlayıp kapanışta temizlemek isteyen Java web geliştiricileri için uygundur.
Context listener ile Servlet init() farkı nedir?
init() tek bir servlete aittir; context listener ise tüm uygulama açılırken bir kez çalışır ve ortak kaynakları hazırlar. Eğitimde ikisinin sırası uygulamayla gösterilir.
Redeploy sızıntıları ne kadar derin işlenir?
ThreadLocal, zamanlayıcı thread'leri ve JDBC sürücü kayıtları üzerinden pratik sızıntı örneği üretilir ve temizleme kodu yazılır.
Eğitim için hangi ön bilgi ve ortam gerekir?
Sınıf, koleksiyon ve istisna yönetimi gibi temel Java bilgisi beklenir. İstek-yanıt modeli, durum kodları ve başlık kavramlarına aşinalık faydalıdır. Tomcat, Jetty veya benzeri bir servlet konteyneri kurulumu yapılabilecek ortam gerekir.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. 2 günlük program boyunca uygulama çalışmalarının tamamlanması beklenir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Advanced Jakarta Servlets: Servlet Context Listeners Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMDefensive Java Fundamentals Eğitimi
Yazılım Geliştirme Eğitimleri

Defensive Java Fundamentals Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Savunmacı Java eğitimi: girdi doğrulama, SQL injection, XXE, güvenli serileştirme, AES-GCM, bcrypt, secret yönetimi ve OWASP Dependency-Check ile güvenli kodlam

Detayları Gör →
Java ve JVMDeveloping Applications with Java and Maven Eğitimi
Yazılım Geliştirme Eğitimleri

Developing Applications with Java and Maven Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Java ve Maven ile uygulama geliştirme eğitimi: pom.xml, build lifecycle, bağımlılık yönetimi, BOM, çok modüllü proje, Surefire, JaCoCo, Nexus ve CI entegrasyonu

Detayları Gör →
Java ve JVMDeveloping Modern Enterprise Java Applications Using Spring Training Eğitimi
Yazılım Geliştirme Eğitimleri

Developing Modern Enterprise Java Applications Using Spring Training Eğitimi

3 günİleriOnline / Yüz Yüze / Hibrit

Spring ile modern kurumsal Java eğitimi: Spring Boot, REST, Spring Data JPA, Spring Security JWT, Testcontainers, Actuator ve Docker ile üretime hazır uygulama.

Detayları Gör →
Java ve JVMDeveloping Object-Oriented Programs in Java Eğitimi
Yazılım Geliştirme Eğitimleri

Developing Object-Oriented Programs in Java Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

Java nesne yönelimli programlama eğitimi: sınıf, kapsülleme, kalıtım, interface, polimorfizm, composition, SOLID ilkeleri ve UML ile uygulamalı OOP.

Detayları Gör →
Java ve JVMDynamo Servlet Beans & Server-side Java Eğitimi
Yazılım Geliştirme Eğitimleri

Dynamo Servlet Beans & Server-side Java Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Dynamo Servlet Bean eğitimi: ATG Nucleus bileşenleri, özel droplet yazımı, DSP etiketleri, form handler ve Repository API ile sunucu tarafı Java geliştirme.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn