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.