Skip navigation


Seperti yang disebutkan pada post sebelumnya, salah satu implementasi pola MVC pada web berbasis Java adalah dengan menggunakan servlet sebagai controller dan JSP sebagai viewer.

Ada dua buah cara yang sering digunakan untuk implementasi tersebut.

Yang pertama adalah dengan menggunakan sendRedirect.

Misalkan kita mempunyai 2 buah halaman JSP bernama page1.jsp dan page2.jsp serta sebuah servlet bernama Servlet1.

Dengan menggunakan sendRedirect kita menspesifikasikan page yang akan diredirect dari servlet Servlet1. Pada method doGet kita tambahkan.

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        request.setAttribute("test1", "test");
        response.sendRedirect("page1.jsp");
    }

Pada kode diatas kita mengisikan string “test” pada attribut “test1” pada request.

Di page1.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Page 1</title>
    </head>
    <body>
<h1>Ini halaman 1</h1>
<%=request.getParameter("test") %>
        <%=request.getAttribute("test1") %>
    </body>
</html>

Di page tersebut kita cetak parameter “test” dari halaman dan juga atritbut “test1” yang sudah di set.

Kalau dijalankan dengan menggunakan URL “Servlet1?test=aaaaa” maka yang dicetak hanya NULL karena pada sendRedirect, Servlet membuat sebuah request baru ke halaman page1.jsp. URL pada browser pun berganti dari Servlet1 menjadi page1.jsp.

Cara kedua dengan menggunakan RequestDispatcher.

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        request.setAttribute("test1", "test");
        RequestDispatcher rd =  request.getRequestDispatcher("/page1.jsp");
        rd.forward(request, response);
    }

Jika dijalankan dengan panggilan yang sama “Servlet1?test=aaaa” maka page1.jsp akan mencetak apa yang ada pada parameter halaman dan juga atribut dari request yang sudah diset. Selain itu bisa dilihat bahwa URL yang ada pada browser tetap menjadi “Servlet1?test=aaaa“.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: