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