Sobes.tech
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.