Junior
Mi az a Request Dispatcher?
sobes.tech MI
Válasz az MI-től
A RequestDispatcher egy interfész a Java Servlet API-ban, amelyet egy kérés átirányítására használnak egy másik erőforráshoz (például egy másik servlethez, JSP-hez vagy HTML-fájlhoz) ugyanazon webalkalmazáson belül. Két módszert kínál: forward() és include().
Módszerek:
-
forward(ServletRequest request, ServletResponse response):- Teljes irányítást ad a kérés és a válasz felett a megadott erőforráshoz.
- Az eredeti servlet leállítja a feldolgozást.
- A böngésző címsorában az URL nem változik.
- Teljes feldolgozási feladat delegálására használják egy másik erőforrásnak.
-
include(ServletRequest request, ServletResponse response):- A megadott erőforrás tartalmát beilleszti a jelenlegi servlet válaszába.
- Az eredeti servlet a beillesztés után folytatja a végrehajtást.
- A böngésző címsorában az URL nem változik.
- Lehetővé teszi több erőforrás részvételét a válasz létrehozásában.
RequestDispatcher beszerzése:
Vagy a ServletContext objektumból, vagy a ServletRequest-ből szerezhető be.
- A
ServletContext-ből:// context path - útvonal egy másik erőforráshoz az alkalmazáson belül RequestDispatcher rd = getServletContext().getRequestDispatcher("/anotherServlet"); - A
ServletRequest-ből:// relatív útvonal - relatív útvonal egy másik erőforráshoz RequestDispatcher rd = request.getRequestDispatcher("/anotherServlet");
A forward() és include() közötti különbségek:
| Kritérium | forward() |
include() |
|---|---|---|
| Válasz irányítása | Teljes mértékben átadódik a célerőforrásnak. | A célerőforrás válasza hozzáadódik a jelenlegihez. |
| Végrehajtás | Az eredeti servlet befejezi a végrehajtást. | Az eredeti servlet folytatja a végrehajtást. |
| URL | Nem változik a böngésző címsorában. | Nem változik a böngésző címsorában. |
| Használat | Feldolgozás delegálása, átirányítás. | Tartalom beillesztése, válasz összeállítása. |
A RequestDispatcher fontos eszköz összetett webalkalmazások építéséhez, lehetővé téve a kérésfeldolgozási logika strukturálását és az összetevők újrahasznosítását.