RequestDispatcher

Oleh : Reza Ervani

Rujukan : jenkov.com

بسم الله الرحمن الرحيم

Class RequestDispatcher memperkenankan kita untuk memanggil servlet yang lain dari dalam servlet yang lain. Servlet yang lain tersebut dipanggil selayaknya jika request HTTP dikirim oleh sebuah browser.

Kita dapat menggunakan RequestDispatcher dari objek HttpServletRequest seperti ini :

protected void doPost(HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException {

  RequestDispatcher requestDispatcher =
    request.getRequestDispatcher("/anotherURL.simple");
}

Kode diatas menggunakan sebuah RequestDispatcher yang menargetkan Servlet apapun (atau JSP_ yang dipetakan ke URL/anotherUrl.simple.

Kita dapat memanggil RequestDispatcher menggunakan metode include() atau forward():

requestDispatcher.forward(request, response);

requestDispatcher.include(request, response);

Dengan memanggil menggunakan metode include() atau forward() kontainer servlet mengaktifkan Servlet apapun yang dipetakan ke URL RequestDispatcher.

Servlet yang diaktifkan memiliki akses ke request yang sama dengan servlet yang memanggilnya, dan akan menulis ke respon yang sama dengan servlet yang sudah ada. Dengan cara itu kita dapat menggabungkan output dari servlet-servlet tersebut ke dalam suatu respon tunggal.

Ada perbedaan kecil antara metode forward() dan include()

Metode forward() cenderung digunakan dalam melakukan forwarding request, yang berarti setelah respon pemanggilan servlet dilakukan. Kita tidak dapat menggabungkan respon output menggunakan metode ini.

Metode include() menggabungkan respon yang ditulis oleh servlet pemanggil dan servlet yang diaktifkan. Dengan cara ini kita dapat mencapai  “server side includes” menggunakan include().

About Reza Ervani 387 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.