Servlet 3 – Penggunaan RequestDispatcher untuk Melakukan Forward Request


Dalam javadoc, RequestDispatcher merupakan :

Defines an object that receives requests from the client and sends them to any resource (such as a servlet, HTML file, or JSP file) on the server. The servlet container creates the RequestDispatcher object, which is used as a wrapper around a server resource located at a particular path or given by a particular name.

Dengan begitu, RequestDispatcher dapat kita gunakan untuk memforward request ke halaman lain, contohnya misal saat ini kita akan memcoba membuat sebuah halaman untuk manipulasi data Person, dimana hanya menggunakan sebuah Servlet. Misal saat pengguna membuka halaman :

Jika untuk melakukan render halaman dilakukan, maka hal ini akan sangat menyulitkan, oleh sebab itu ada baiknya jika kita membuat halaman daftar person dan create person pada file yang berbeda, misal kita membuat halaman list.html untuk menampilkan data seluruh person.

<!doctype html>
<html>
    <head>
        <title>List of Person</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <table border="1">
            <thead>
                <tr>
                    <th>Id</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Birthday</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>1</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>3</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>4</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>5</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

dan membuat halaman create.html untuk menampilkan form halaman input data person.

<!doctype html>
<html>
    <head>
        <title>Create New Person</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <h1>Create New Person</h1>
        <form method="POST">
            <table>
                <tbody>
                    <tr>
                        <td>First Name :</td>
                        <td><input type="text" name="first_name"/></td>
                    </tr>
                    <tr>
                        <td>Last Name :</td>
                        <td><input type="text" name="last_name"/></td>
                    </tr>
                    <tr>
                        <td>Birthday :</td>
                        <td><input type="text" name="birthday"/></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" value="Create"/></td>
                    </tr>
                </tbody>
            </table>
        </form>
    </body>
</html>

setelah itu baru buat servlet untuk menangani request browser.

package khannedy.web.servlet;

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

@WebServlet(name = "Person", urlPatterns = {"/Person"})
public class PersonServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String action = request.getParameter("action");
        if (action == null) {
            action = "list";
        }

        if (action.equals("create")) {
            request.getRequestDispatcher("/WEB-INF/page/create.html").forward(request, response);
        } else if (action.equals("list")) {
            request.getRequestDispatcher("/WEB-INF/page/list.html").forward(request, response);
        } else {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        }

    }
}

hasilnya adalah :

Screenshot-List of Person - Google Chrome

Screenshot-List of Person - Google Chrome

Screenshot-Create New Person - Google Chrome

Screenshot-Create New Person - Google Chrome

Iklan

Download Buku MySQL dan Java Database Connectivity


 

MySQL dan Java Database Connectivity

MySQL dan Java Database Connectivity

 

Silahkan download bukunya disini :

https://eecchhoo.wordpress.com/buku/

Selamat Belajar…

Memfilter Collection


Pernah memfilter sebuah collection ? Misal kita punya collection yang berisikan data Mahasiswa, setelah itu kita mau mengambil seluruh mahasiswa yang berjenis kelamin Perempuan. Jika menggunakan database, sangat mudah, tinggal SELECT * FROM MAHASISWA WHERE JENIS_KELAMIN = 'PEREMPUAN' Tapi bagaimana jika dalam collection?

Gampang aja, tinggal telusuri collection tersebut satu persatu menggunakan perulangan, setelah itu cek setiap recordnya, jika berjenis kelamin perempuan, maka ambil data itu 😀 Gitu aja kok repot….

Yup, memang, saat ini kita mau menggunakan cara yang merepotkan 😀

Pertama kita buat sebuah interface Filter, interface ini nanti digunakan untuk melakukan pengecekah apakah data diterima atau tidak :


package khannedy.blogging.collection;

public interface Filter<T> {

	boolean include(T data);

}

Setelah itu kita buat sebuah kelas CollectionUtil, kelas ini yang nanti digunakan sebagai kelas utilitas yang melakukan proses filtering menggunakan interface Filter sebelumnya yang telah dibuat.


package khannedy.blogging.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class CollectionUtil {

	public static <T> Collection<T> filter(Collection<T> source, Filter<T> filter) {
		List<T> list = new ArrayList<T>();

		for (T data : source) {
			if (filter.include(data)) {
				list.add(data);
			}
		}

		return list;
	}

}

Dengan demikian, sekarang jika kita akan memfilter data sebuah Collection, tinggal menggunakan perintah :


List<Mahasiswa> list = new ArrayList<Mahasiswa>();

Collection<Mahasiswa> hasil = CollectionUtil.<Mahasiswa> filter(list, new Filter<Mahasiswa>() {

	@Override
	public boolean include(Mahasiswa data) {
		if (data.getJenisKelamin().equals("Perempuan")) {
			return true;
		} else {
			return false;
		}
	}
});

Haha, kalo ada yang ribet kenapa mesti yang mudah? Silahkan anda pikirkan sendiri kenapa saya menggunakan cara coding seperti ini 😀

Menampilkan JCheckBox di JTable


Java Programming

Java Programming

Peralatan yang diperlukan :

  1. Java Development Kit 1.6

Biasanya jika kita akan menghapus sebuah baris di JTable, kita menseleksinya lalu tekan delete atau klik tombol hapus, tapi bagaimana jika kita akan menghapus beberapa baris? Dan barisnya itu terpisah-pisah? Hmm, salah satunya adalah dengan memberi kolom Hapus, jika bernilai TRUE, maka baris tersebut akan dihapus 😀 Dan supaya lebih bermakna kita ubah tampilan kolom hapusnya itu dengan JCheckBox, daripada menggunakan tulisan true atau false 😀 Baca lebih lanjut

Menggunakan JTextValidator di NetBeans IDE


NetBeans IDE 6.9

NetBeans IDE 6.9

Peralatan yang diperlukan

  1. Java Development Kit 1.6
  2. NetBeans IDE 6.9
  3. Project JTextValidator

Artikel sebelumnya saya telah membuat sebuah project JTextValidator yang merupakan JTextField yang dapat melakukan proses validasi secara dinamis dan realtime. Pada artikel ini saya akan bahas bagaimana cara menggunakannya dalam project java yang dibuat menggunakan NetBeans IDE 😀 Kenapa NetBeans? Baca saja terus artikel ini 😀 Baca lebih lanjut

Menjalankan Progress di StatusBar NetBeans Platform


NetBeans Platform 6.9

NetBeans Platform 6.9

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans Platform 6.9

Tahu progress bar yang ada di pojok kanan status bar NetBeans kan? Yup, misal saat kita merunning Project atau pada proses startup, biasanya progress akan ditampilkan di bagian tersebut di NetBeans, bagusnya NetBeans mendukung multiple progress, jadi gak hanya satu progress yang bisa tampil, tapi beberapa progress pun bisa tampil 😀 Jadi bagaimanakah cara menggunakan Progress di Statusbar NetBeans Platform? Baca lebih lanjut

Menggunakan Hibernate di NetBeans Platform


NetBeans Platform 6.9

NetBeans Platform 6.9

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans Platform 6.9
  3. Hibernate Framework 3.x

Kemarin ada yang bertanya bagaimana cara menggunakan Hibernate Framework di NetBeans Platform. Memang secara default NetBeans Platform itu gak memiliki fasilitas editor untuk Hibernate, gak memiliki fasilitas editor bukan berarti gak bisa 😀 , bisa hanya agak sedikit tricki untuk menggunakannya. Berbeda dengan JDBC yang konfigurasinya dilakukan di coding, biasanya Hibernate melakukan konfigurasinya pada file hibernate.properties atau hibernate.cfg.xml, dan sayangnya jika kita membuat project NetBeans Platform, tidak ada menu untuk membuat file hibernate.cfg.xml, berbeda dengan project Java biasa. Baca lebih lanjut

Menyimpan Berkas BLOB ke Database Menggunakan Java Database Connectivity


Java Programming

Java Programming

Tadi pagi ada yang SMS, gimana cara menyimpan data berkas ke database dengan tipe kolom BLOB. Hal ini mungkin berguna, saat misal kita akan menyimpan gambar photo karyawan di database, jadi photonya tidak disimpan di hardisk, tapi langsung di database, atau juga menyimpan data dokumen word atau excel langsung ke database. Caranya cukup mudah 😀 Baca lebih lanjut