Junior
Čo je Request Dispatcher?
sobes.tech AI
Odpoveď od AI
RequestDispatcher je rozhranie v Java Servlet API, ktoré sa používa na presmerovanie požiadavky na iný zdroj (napríklad iný servlet, JSP alebo HTML súbor) v rámci tej istej webovej aplikácie. Poskytuje dve metódy: forward() a include().
Metódy:
-
forward(ServletRequest request, ServletResponse response):- Prenáša úplnú kontrolu nad požiadavkou a odpoveďou na určený zdroj.
- Počiatočný servlet prestáva s spracovaním.
- URL v adresnom riadku prehliadača sa nemení.
- Používa sa na úplné delegovanie spracovania na iný zdroj.
-
include(ServletRequest request, ServletResponse response):- Zahrňuje obsah určeného zdroja do odpovede aktuálneho servleta.
- Počiatočný servlet pokračuje vo vykonávaní po zahrnutí.
- URL v adresnom riadku prehliadača sa nemení.
- Umožňuje viacerým zdrojom podieľať sa na vytváraní odpovede.
Získanie RequestDispatcher:
Môže sa získať buď od objektu ServletContext, alebo od objektu ServletRequest.
- Od
ServletContext:// cesta k inému zdroju v rámci aplikácie RequestDispatcher rd = getServletContext().getRequestDispatcher("/anotherServlet"); - Od
ServletRequest:// relatívna cesta k inému zdroju RequestDispatcher rd = request.getRequestDispatcher("/anotherServlet");
Rozdiely medzi forward() a include():
| Kritérium | forward() |
include() |
|---|---|---|
| Riadenie odpovede | Plne prenesené cieľovému zdroju. | Odpoveď cieľového zdroja je pridaná k aktuálnej. |
| Vykonávanie | Počiatočný servlet prestáva s vykonávaním. | Počiatočný servlet pokračuje vo vykonávaní. |
| URL | Nezmenené v adresnom riadku prehliadača. | Nezmenené v adresnom riadku prehliadača. |
| Použitie | Delegovanie spracovania, presmerovanie. | Zahrnutie obsahu, kompozícia odpovede. |
RequestDispatcher je dôležitý nástroj pre budovanie zložitých webových aplikácií, umožňujúci štruktúrovanie logiky spracovania požiadaviek a opätovné použitie komponentov.