Sobes.tech
Junior

Request Dispatcher nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

RequestDispatcher Java Servlet API'de, isteği aynı web uygulaması içindeki başka bir kaynağa (örneğin başka bir servlet, JSP veya HTML dosyası) yönlendirmek için kullanılan bir arayüzdür. İki yöntemi vardır: forward() ve include().

Yöntemler:

  • forward(ServletRequest request, ServletResponse response):

    • İstek ve yanıt üzerindeki tüm kontrolü belirtilen kaynağa devreder.
    • Orijinal servlet işlemi durdurulur.
    • Tarayıcıdaki adres çubuğundaki URL değişmez.
    • İşlemi tamamen başka bir kaynağa devretmek için kullanılır.
  • include(ServletRequest request, ServletResponse response):

    • Belirtilen kaynağın içeriğini mevcut servletin yanıtına dahil eder.
    • Dahil edildikten sonra orijinal servlet çalışmaya devam eder.
    • Tarayıcıdaki adres çubuğundaki URL değişmez.
    • Birden fazla kaynağın yanıt oluşturmasına katılmasına izin verir.

RequestDispatcher alma:

Ya ServletContext nesnesinden ya da ServletRequest nesnesinden alınabilir.

  • ServletContext'ten:
    // context path - uygulama içindeki başka bir kaynağa yol
    RequestDispatcher rd = getServletContext().getRequestDispatcher("/anotherServlet");
    
  • ServletRequest'ten:
    // göreli yol - başka bir kaynağa göreli yol
    RequestDispatcher rd = request.getRequestDispatcher("/anotherServlet");
    

forward() ve include() arasındaki farklar:

Kriter forward() include()
Yanıt kontrolü Tamamen hedef kaynağa devredilir. Hedef kaynağın yanıtı mevcut yanıtın içine eklenir.
Çalışma Orijinal servlet çalışmayı durdurur. Orijinal servlet çalışmaya devam eder.
URL Tarayıcı adres çubuğunda değişmez. Tarayıcı adres çubuğunda değişmez.
Kullanım İşlemi devretmek, yönlendirmek. İçeriği dahil etmek, yanıtı oluşturmak.

RequestDispatcher, karmaşık web uygulamaları inşa etmek için önemli bir araçtır, istek işleme mantığını yapılandırmaya ve bileşenleri yeniden kullanmaya olanak tanır.