Welcome to Abdul Malik Ikhsan's Blog

Template helper menggunakan Servlet

Posted in Tutorial JSP, Tutorial Servlet by samsonasik on May 3, 2009

Hm…, lama nih saya ga `nyentuh` servlet & JSP, hitung2 membuka lagi memori lama(cie…cie..), kemarin saya baca buku “Web Development with Java Using Hibernate, JSPs, and Servlets” karya Tim Downey, ternyata banyak hal yang saya belum ketahui, contohnya tentang materi yang akan kita bahas kali ini.
Konsep penggunaan template helper pada berbagai macam framework maupun bahasa pemrograman selalu mengacu pada reuse template include, yang pada intinya akan memudahkan programmer dan designer itu sendiri, serta menghemat memori karena menghemat source code yang ada.
Dalam Java Web Development, kita bisa menggunakan servlet untuk menginclude header & footer secara otomatis. Secara class diagram dapat digambarkan sebagai berikut :

class-diagram

Berikut Source Code untuk class HelperBase :

package Helpers;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author samsonasik
 */
public class HelperBase extends HttpServlet {
    protected HttpServletRequest request;
    protected HttpServletResponse response;

    public HelperBase(){}

    public HelperBase(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        this.request = request;
        this.response = response;
    }

}

Kemudian, source code untuk ControllerHelper :

package Helpers;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;

/**
 *
 * @author samsonasik
 */
public class ControllerHelper extends HelperBase {

    public ControllerHelper(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        super(request, response);
    }

    public void doGet(String address) throws ServletException, IOException {
        request.getSession().setAttribute("helper", this);

        request.getRequestDispatcher("/header.jsp").include(request, response);
        request.getRequestDispatcher("/"+address).include(request, response);
        request.getRequestDispatcher("/footer.jsp").include(request,response);
    }
}

———–
Nah, sekarang kita sudah punya ControllerHelper, sekarang,kita bisa gunakan untuk berbagai macam controller, tinggal instansiasi kelas ControllerHelper dan gunakan method doGet(address) seperti di bawah ini :

package Controllers;

import Helpers.ControllerHelper;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author samsonasik
 */
public class TestController extends HttpServlet {

    ControllerHelper helper ;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      helper = new ControllerHelper(request, response);
      helper.doGet("index.jsp");
    }

}

Referensi : Web Development With Java Using Hibernate, JSPs,and Servlets – Tim Downey : 2007

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: