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 воситаи муҳим барои сохтани барномаҳои веби мураккаб аст, ки имкон медиҳад логикаи коркарди дархостҳоро сохторӣ кунад ва компонентҳоро такрор истифода бурда шавад.