Bilal Koçoğlu/ Nisan 1, 2018/ Servlet

Servlet Nedir ?

Servlet Nedir hakkında ilk olarak Servlet teknolojisinin ne olduğuna değinmek istiyorum. Tahmin edebildiğiniz üzere Servlet teknolojisi web uygulamaları oluşturulurken kullanılır, server tarafında bulunur ve dinamik web siteleri oluşturmamızı sağlar. Java dili sayesinde güçlü ve ölçeklenebilirdir bir teknolojidir.
  Servlet öncesi(bu teknoloji ortaya çıkmadan önce), CGI teknolojisi sunucu taraflı programlama dili olarak popülerdi. Fakat bu teknolojinin çok fazla dezavantajları vardı. Bu dezavantajlar aşağıda detaylandırılmıştır. Bu dezavantajlardan önce Servlet’i tanımlayalım. Bu teknolojiyi birden fazla açıdan tanımlamak mümkündür;

  • Servlet teknolojisi web uygulamalarında kullanılır.
  • Servlet belgeler de dahil olmak üzere pek çok arabirim ve sınıf sağlayan bir API’dir.
  • Servlet, herhangi bir servlet oluşturmak için implement edilmesi gereken bir arayüz(interface)dir.
  • Servlet, sunucu yeteneklerini genişleten ve gelen talebi(request) yanıtlayan bir sınıftır. Her tür istekte yanıt verebilir.
  • Servlet, dinamik web sayfası oluşturmak için sunucuda tutulan bir web bileşenidir.

Web uygulaması, web üzerinden erişilebilen uygulamadır. Bir web uygulaması, Servlet, JSP, Filter gibi web bileşenleri ve HTML gibi diğer bileşenlerden oluşur. Web bileşenleri genelde web sunucusunda yürütülür ve HTTP isteğine yanıt verir.

Servlet Nedir

Servlet Nedir

Servlet’ten önce CGI teknolojisinin olduğundan ve bu teknolojinin yetersiz kalmasından dolayı Servlet’e ihtiyaç duyulduğunu söylemiştik. Esasında CGI üzerinde servlet’in pek çok avantajı vardır. Web kapsayıcısı Servlet’e birden çok istekte bulunmak için iş parçacığı(thread) oluşturur. Konular, süreçler üzerinde çok fazla fayda sağlar; ortak bir bellek alanı paylaşır, threadli yapısı sayesinde kullanıcı taraflı(user mode) ve kolay işletilebilirdir, iş parçacıkları(threadler) arasındaki iletişim maliyeti düşüktür. Servlet’in temel faydaları şöyledir ;

  • Daha iyi performans : Her istek için bir iş parçacığı(thread) oluşur, Process(görev) değil.(Process ve thread arasındaki farka ve neden bunun daha iyi performans sağlayan bir özellik olduğuna işletim sistemleri kategorisi altında daha sonra değinilecektir.)
  • Taşınabilirlik : Bunun sebebi java dilini kullanmasıdır. Bildiğimiz üzere üzerinde JVM(Java Virtual Machine) bulunan her platformda Java dilini kullanabiliriz.
  • Sağlamlık : Servletler JVM tarafından yönetilir. Bu nedenle bellek sızıntısı, çöp atlama gibi konular en yüksek verimde çalışır.

Servlet Nedir ?

Servlet APİ

Javax.servlet ve javax.servlet.http paketleri, servlet api’leri için arayüzleri(interface) ve sınıfları temsil eder. Tabiki aşağıda sıralayacağımız sınıf ve arabirimleri tek tek inceleyip kullanacağımız örnekler olacak ama bunlardan önce hangi sınıf hangi paketin içinde bunları bilmek ve incelemek açısından sıralamayı gerekli gördüm. Aramızda programlamaya yeni başlayan arkadaşlar olabilir onlar için verebileceğim tavsiye bunları ezberlemekle zamanlarını kaybetmemeleridir. Çoğu ilerideki örneklerimizde aktif olarak kullanacağımız sınıf ve arabirimler olduğundan ister istemez bir aşınalığımız olacaktır. Konumuza geri dönmek gerekirse Javax.servlet paketi, servlet veya web kapsayıcısı tarafından kullanılan birçok arabirim ve sınıf içerir. Bunlar herhangi bir protokole özgü değildir. Bunun yanında javax.servlet.http paketi http protokolü için birçok arabirim ve sınıf içerir. Şimdi Servlet paketlerini ve bu paketler altında bulunan class ve interface’lere birlikte göz atalım.

javax.servlet paketi Arabirimleri(Interfaces)

  • Servlet
  • ServletRequest
  • ServletResponse
  • RequestDispatcher
  • ServletConfig
  • ServletContext
  • SingleThreadModel
  • Filter
  • FilterConfig
  • FilterChain
  • ServletRequestListener
  • ServletRequestAttributeListener

javax.servlet Paketi Sınıfları

  • GenericServlet
  • ServletInputStream
  • ServletOutputStream
  • ServletRequestWrapper
  • ServletResponseWrapper
  • ServletRequestEvent
  • ServletContextEvent
  • ServletRequestAttributeEvent
  • ServletContextAttributeEvent
  • ServletException
  • UnavailableException

javax.servlet.http Paketi Arabirimleri

  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • HttpSessionListener
  • HttpSessionAttributeListener
  • HttpSessionBindingListener

javax.servlet.http Paketi Sınıfları

  • HttpServlet
  • Cookie
  • HttpServletRequestWrapper
  • HttpServletResponseWrapper
  • HttpSessionEvent
  • HttpSessionBindingEvent

Servlet paketlerimiz ve içinde barındırdıkları sınıf ve arabirimler bu şekilde sıralanabilir. Yukarıda da belirttiğim gibi bu yapıları tek tek ezberlemek gibi bir zahmette bulunmanızı tavsiye etmem.

Bir sonraki dersimizde servletlerin nasıl çalıştığı nasıl son bulduğu bu aşamalarda hangi methodların çağırıldığını inceleyeceğiz. Aşağıdaki yazı başlıklarından diğer konulara anında erişim sağlayabilirsiniz.
Herkese iyi çalışmalar dilerim.

Bir Yorum Yapın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*