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().
Leave a Reply