|
Gambar: Controller (Servlet) menangani semua request |
Pada konsep MVC, semua request dari web browser (pengguna) akan di handle oleh Controler yang di wakili Servlet. Jika situs web dikunjungi untuk pertama kalinya dan pengguna tidak menyebut file secara spesifik, maka secara default file index.jsp akan dipanggil
|
Gambar: Konsep MVC pada pemrograman java web |
Sebelum menjelaskan studi kasusnya, berikut ini dijelaskan kembali alur konsep MVC:
- Web browser mengirim request ke web container dan diterima oleh Servlet sebagai Controller.
- Controller bertugas mengecek request lalu diproses. Output yang dihasilkan controller bisa berbentuk obyek/java bean. Model bertugas merepresentasi data-data pada database dalam bentuk obyek-obyek yang saling berhubungan atau biasa disebut ORM (Object relationship mapping).
- Controller kemudian menyerahkan tugas View (file JSP) untuk menampilkan obyek.
- View mengambil data berbentuk obyek/java bean lalu memprosesnya.
- View mengirim response ke web browser untuk menampilkan data dengan syntax EL dan library JSTL.
Alur Tampil Anggota
|
Gambar: Studi kasus menampilkan data anggota |
Untuk menampilkan halaman situs web seperti di atas berikut ini alur programnya:
- Pengguna memanggil http://hostname/DatabaseWeb. Karena tidak menyebut file spesifik, maka web container menjalankan file index.jsp. File index.jsp sendiri memforward request langsung ke ActionServlet.java sebagai Controler. ActionServlet.java dipanggil dengan parameter tampil (action?go=tampil).
|
Gambar: Controller diwakili oleh ActionServlet.java (nama di url page = action) |
- Controler bernama ActionServlet (action?go=tampil) membaca tabel author dan memasukkannya ke dalam ArrayList yang bertipe obyek Author. ArrayList kemudian dimasukan ke dalam application scope (baris 57) dan controller memerintahkan agar proses selanjutnya dihandle tampil.jsp sebagai View (baris 58-60).
|
Gambar: View diwakili oleh Tampil.JSP |
- View yang ditangani oleh tampil.jsp mengambil List Authors (baris 27) yang sudah disimpan pada Application Scope. Data diambil per-baris dengan cara melakukan iterasi dengan perintah for each (syntax JSTL core). Ketika tiap obyek diambil, maka hasil akan di tampilkan dalam suatu baris data. Setiap attribut dari obyek author ditampilkan pada kolom seperti login, nama, email dan telepon. Variabel dibaca dengan syntax (EL - Expression Language) seperti ${authors}, ${row.login}, ${row.name}, dan sebagainya.
- View memang terlihat sangat sederhana, tidak ada proses untuk mengakses database ataupun logika pemrograman yang rumit. View hanya membaca dan menampilkan obyek yang sudah disiapkan oleh controller.
|
Gambar: Model diwakili Java class biasa (bukan EJB) |
- Model pada aplikasi ini berbentuk obyek Author yang merepresentasi tabel di dalam database. Attribut dari obyek Author merepresentasikan kolom-kolom dari tabel.
Alur Ubah Anggota
|
Gambar:Tampil data |
- Pengguna meng-klik icon pensil untuk mengubah data.
|
Gambar: Controler diwakili ActionServlet dengan parameter ubah (action?go=ubah) |
- Setelah pengguna meng-klik icon, maka request akan diterima oleh Controler/ActionServlet dengan parameter url go=ubah dan id=nomor primary key dari tabel Author. Pada servlet Author id dibaca, lalu obyek author dibuat dan diisi sesuai dengan data Author yang dicari. Obyek author kemudian dimasukkan dalam Request Scope (baris 95) dan di forward ke ubah,jsp.
|
Gambar: View diwakili ubah,jsp (Kode Program) |
|
Gambar: View diwakili ubah.jsp (Tampilan) |
|
- View yang diwakili ubah.jsp menampilkan data yang akan diedit dengan membaca obyek author disertai attributnya dengan syntax EL seperti ${author.login}, ${author.name}, dsb. Jika pengguna menekan tombol ubah maka form akan menuju Controller ActionServlet.java (action?go=ubahaksi).
|
Gambar: Controler diwakili ActionServlet.java (action?go=ubahaksi) #1 |
|
Gambar: Controler diwakili ActionServlet.java (action?go=ubahaksi) #2 |
- Controller yang diwakili ActionServlet.jaba (action?go=ubahaksi) membaca semua elemen form termasuk id author yang berstatus hidden kemudian servlet menciptakan dan mengisi obyek author sesuai elemen form (baris 102 sampai 110) dan melakukan proses update ke tabel database (baris 113).
- Perubahan data harus direfresh dengan cara menciptakan obyek ArrayList author dan mengisinya dengan data terbaru dari database. Obyek ArrayList kemudian dimasukkan ke dalam Application Scope lalu servlet menyerahkan tugas View ke tampil.jsp.
|
Gambar: View diwakili tampil.jsp (Tampilan) |
- Setelah proses di arahkan ke tampil.jsp, maka tampilan baru dicetak dan perubahan data dapat dilihat.
Copyright (c) Ahmad Juniar 2012
Tidak ada komentar:
Posting Komentar