Sobes.tech
Junior

Ի՞նչ է Request Dispatcher-ը։

sobes.tech AI

Պատասխան AI-ից

RequestDispatcher — Java Servlet API-յի ինտերֆեյս է, որը օգտագործվում է հարցումի ուղղումը դեպի այլ ռեսուրս (օրինակ՝ այլ սերվլետ, JSP կամ HTML ֆայլ) նույն վեբ հավելվածի ներսում: Այն ապահովում է երկու մեթոդ՝ forward() և include():

Մեթոդներ:

  • forward(ServletRequest request, ServletResponse response):

    • Հանձնում է ամբողջ վերահսկողությունը հարցումի և պատասխանների վրա նշված ռեսուրսին:
    • Նախնական սերվլետը դադարում է գործել:
    • Բրաուզերի հասցեային տողում URL-ը չփոխվում:
    • Օգտագործվում է ամբողջական հանձնարարականը փոխանցելու համար:
  • include(ServletRequest request, ServletResponse response):

    • Ներառում է նշված ռեսուրսի բովանդակությունը ընթացիկ սերվլետի պատասխանին:
    • Նախնական սերվլետը շարունակում է գործել հետո ներառման:
    • Բրաուզերի հասցեային տողում URL-ը չփոխվում:
    • Հնարավոր է մի քանի ռեսուրսների մասնակցությունը պատասխան ստեղծելիս:

RequestDispatcher ստանալու միջոցները:

Կարող է ստանալ կամ ServletContext օբյեկտից, կամ ServletRequest օբյեկտից:

  • ServletContext-ից:
    // կոնտեքստային ճանապարհ - դեպի այլ ռեսուրս հավելվածում
    RequestDispatcher rd = getServletContext().getRequestDispatcher("/anotherServlet");
    
  • ServletRequest-ից:
    // հարաբերական ճանապարհ - դեպի այլ ռեսուրս
    RequestDispatcher rd = request.getRequestDispatcher("/anotherServlet");
    

forward() և include() տարբերությունները:

Քննիչ forward() include()
Պատասխանների կառավարում Մեկուսացված ուղղորդում նպատակային ռեսուրսին: Պատասխանն ավելացվում է ընթացիկին:
Կատարման ընթացք Նախնական սերվլետը դադարում է գործել: Նախնական սերվլետը շարունակում է գործել:
URL Չփոխվում է բրաուզերի հասցեային տողում: Չփոխվում է բրաուզերի հասցեային տողում:
Օգտագործում Գործընթացի հանձնարարական, ուղղորդում: Մասամբ բովանդակության ներառում, պատասխանների համակցում:

RequestDispatcher կարևոր գործիք է բարդ վեբ հավելվածներ կառուցելու համար, որը թույլ է տալիս կառուցել հարցումների մշակման տրամաբանությունը և վերօգտագործել կոմպոնենտները: