28 Ağustos 2020 Cuma

Servlet API

Servlet API çeşitli arayüz ve sınıflardan oluşan bir kütüphanedir. Web server içindeki web container içinde çalışır. Web container kullanıcıdan istekleri alır ve bu istekleri ServletRequest nesnesine dönüştürür. ServletRequest, içinde kullanıcı istekleriyle ilgili özel metotlar ve özellikler içeren bir arayüzdür. Servlet API'da ayrıca ServletResponse adında bir arayüz vardır.  Bu arayüzde kullanıcıya verilecek yanıtı oluşturmaya yönelik hazırlanmış metotlar bulunur. Web container bu arayüzü implement ederek, kendi işlevlerini gerçekleştirmek üzere oluşturduğu sınıfla bir ServletResponse nesnesi oluşturur ve bu nesneyi Servlet'a aktarır. Servlet'ta bulunan service metodu ServletRequest ve ServletResponse nesnelerini alarak yapılacak işlemleri gerçekleştirir.

Arayüzler ortak haberleşme dili oluşmasını sağlar. Örneğin Servlet API ile bir web uygulaması yazmak istiyorsak Servlet API içindeki Servlet arayüzünü implement etmek gerekiyor. Bu arayüz web uygulamasını başlatması, işlenmesi gibi gerekli metodlar içeriyor. Bu sayede web container gerekli fonksiyonları içerdiğinden emin olacak ve bu sayede gerekli işlemleri kendi optimizasyonları, thread yönetimi vs uygulayarak kontrol edecek (Tomcat, JBoss gibi farklı web sunucuları var, bu arayüz sayesinde ortak bir standart oluşuyor ve yazılan uygulama farklı web sunucularında çalışabiliyor) . Yani Servlet API burada MVC'ye göre bir controller görevi görüyor. 

public class MyServlet implements Servlet {
    ServletConfig config = null;
    public void init(ServletConfig config) throws ServletException { 
        this.config = config;
    }
    .
    .
    .
    public void service(ServletRequest request, ServletResponse response) throws     ServletException, IOException {         .
        .
        .
        .
    }

Servlet için yaşam döngüsü web container tarafından kontrol edilir. Kullanıcı ilk isteği yolladığı zaman Servlet nesnesi oluşturulur, Server kapatılacağı zaman destroy komutu çalıştırılır. Geri kalan zamanda kullanıcılardan gelen istekler okunup bu isteklere yanıt yollanır. 



0 yorum:

Yorum Gönderme