MVC dalam JSP (Architekstur)
โก Ringkasan Cerdas
MVC di JSP memisahkan fungsi aplikasi ke dalam lapisan Model, View, dan Controller, di mana JSP merender View, Servlet bertindak sebagai Controller, dan JavaBean merangkum Model untuk aplikasi web yang bersih, mudah diuji, dan mudah dipelihara.

Apa itu MVC?
MVC adalah singkatan dari Model-View-Controller. Ini adalah pola desain perangkat lunak yang memisahkan aplikasi menjadi tiga lapisan yang saling terhubung: logika bisnis, presentasi, dan data. Dalam MVC:
- M singkatan dari Model
- V singkatan dari View
- C singkatan dari Controller
MVC adalah cara sistematis untuk membangun aplikasi di mana alur dimulai dari lapisan View. Permintaan diajukan oleh pengguna, diproses di lapisan Controller, dan dikirim ke lapisan Model untuk memasukkan atau mengambil data. Model kemudian mengembalikan respons sukses atau gagal yang kemudian ditampilkan oleh View kepada pengguna. Diagram arsitektur MVC digambarkan di bawah ini:

Mengapa Menggunakan MVC? ArchiKuliah tentang JSP?
Sebelum melompatping Untuk memahami cara kerja MVC di JSP, penting untuk memahami mengapa pengembang mengadopsi pola ini. Mencampur logika bisnis, panggilan basis data, dan HTML dalam satu halaman JSP dengan cepat menghasilkan kode yang berantakan dan sulit dipelihara. MVC mengatasi hal itu dengan memberikan setiap aspek lapisan tersendiri:
- Code Menjadi lebih mudah dibaca karena setiap file hanya memiliki satu tanggung jawab.
- Tim dapat mengerjakan View, Controller, dan Model secara paralel tanpa konflik.
- Pengujian unit menargetkan Model secara langsung, tanpa menyentuh rendering JSP.
- Menukarping Membuat JSP View untuk respons JSON atau mesin template yang berbeda sangatlah mudah.
Cara Kerja MVC di JSP
Dalam aplikasi MVC berbasis JSP, setiap lapisan dipetakan ke lapisan tertentu. Java teknologi. File JSP merender View, Servlet bertindak sebagai Controller, dan JavaBean mewakili Model. Bagian-bagian di bawah ini menjelaskan tanggung jawab dari setiap lapisan.
Lapisan Model
- Ini adalah lapisan data yang berisi logika bisnis sistem.
- Ini berisi seluruh data aplikasi.
- Ini juga mewakili keadaan aplikasi.
- Itu dibangun dari JavaBean atau POJO yang terhubung ke Database.
- Controller berkomunikasi dengan Model untuk mengambil data dan meneruskannya ke lapisan View.
- Model tersebut terhubung ke basis data dan menyimpan data ke dalamnya.
Lihat Lapisan
- Ini adalah lapisan presentasi dari aplikasi.
- Ini terdiri dari HTML, JSP, CSS, dan JavaNaskah.
- Biasanya, ini menampilkan antarmuka pengguna aplikasi.
- Ini menampilkan data yang diambil dari Controller, yang pada gilirannya mengambil data dari kelas-kelas lapisan Model.
- Lapisan View menampilkan data pada antarmuka pengguna aplikasi tanpa berisi logika bisnis.
Lapisan Pengontrol
- Ini bertindak sebagai antarmuka antara View dan Model.
- Ia mencegat semua permintaan yang datang dari lapisan View.
- Ia menerima permintaan dari lapisan View, memprosesnya, dan melakukan validasi pada permintaan tersebut.
- Permintaan diteruskan ke lapisan Model untuk pemrosesan data. Setelah permintaan diproses, Model mengirimkan hasilnya kembali ke Controller dengan informasi yang dibutuhkan, yang kemudian ditampilkan oleh View.
Keuntungan dari MVC Architekstur
Kelebihan MVC adalah:
- Mudah untuk mempertahankan
- Mudah diperpanjang
- Mudah diuji
- Kontrol navigasi terpusat
- Keterkaitan yang longgar antar lapisan membuat refactoring lebih aman.
- Pengembangan paralel oleh beberapa anggota tim dimungkinkan.
Contoh Desain Aplikasi JSP dengan MVC Architekstur
Dalam contoh ini, kita akan menunjukkan cara menggunakan arsitektur MVC dalam aplikasi JSP.
- Kita mengambil contoh sebuah formulir dengan dua variabel, "email" dan "password," yang mewakili lapisan View kita.
- Setelah pengguna memasukkan email dan kata sandi lalu mengklik Kirim, aksi tersebut diteruskan ke Mvc_servlet tempat email dan kata sandi diteruskan.
- Mvc_servlet adalah lapisan Controller. Di Mvc_servlet ini, permintaan dikirim ke objek bean yang bertindak sebagai lapisan Model.
- Nilai email dan kata sandi dimasukkan ke dalam bean dan disimpan untuk penggunaan selanjutnya.
- Nilai tersebut diambil dari bean dan ditampilkan di lapisan View.
Mvc_example.jsp (Tampilan)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>MVC Guru Example</title> </head> <body> <form action="Mvc_servlet" method="POST"> Email: <input type="text" name="email"> <br /> Password: <input type="text" name="password" /> <input type="submit" value="Submit" /> </form> </body> </html>
Penjelasan kodenya:
Lihat Lapisan:
Code Baris 10-15: Di sini kita mengambil sebuah formulir yang memiliki dua kolom sebagai parameter, yaitu "email" dan "password," dan permintaan ini perlu diteruskan ke sebuah controller, Mvc_servlet.java, yang dilewatkan dalam atribut action. Metode HTTP yang digunakan untuk meneruskan permintaan ini adalah POST.
Mvc_servlet.java (Controller)
package demotest; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Mvc_servlet */ public class Mvc_servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Mvc_servlet() { super(); // TODO Auto-generated constructor stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String email=request.getParameter("email"); String password=request.getParameter("password"); TestBean testobj = new TestBean(); testobj.setEmail(email); testobj.setPassword(password); request.setAttribute("gurubean",testobj); RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp"); rd.forward(request, response); } }
Penjelasan kodenya:
Lapisan Pengontrol:
Code Baris 14: Mvc_servlet merupakan turunan dari HttpServlet.
Code Baris 26: Karena metode yang digunakan adalah POST, permintaan masuk ke metode doPost dari Servlet, yang memproses permintaan dan menyimpannya ke dalam objek bean sebagai testobj.
Code Baris 34: Dengan menggunakan objek permintaan, kita menetapkan atribut โgurubeanโ yang diberi nilai testobj.
Code Baris 35: Di sini kita menggunakan objek RequestDispatcher untuk meneruskan pesan sukses ke mvc_success.jsp.
TestBean.java (Model)
package demotest; import java.io.Serializable; public class TestBean implements Serializable{ public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private String email="null"; private String password="null"; }
Penjelasan kodenya:
Lapisan Model:
Code Baris 7-17: Ini berisi metode getter dan setter untuk email dan password yang merupakan anggota dari kelas TestBean.
Code Baris 19-20: Ini mendefinisikan email dan password anggota bertipe String di dalam kelas bean.
Mvc_success.jsp (Tampilan Hasil)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@page import="demotest.TestBean"%> <!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=ISO-8859-1"> <title>Guru Success</title> </head> <body> <% TestBean testguru=(TestBean)request.getAttribute("gurubean"); out.print("Welcome, "+testguru.getEmail()); %> </body> </html>
Penjelasan kodenya:
Code Baris 12: Kami mengambil atribut tersebut menggunakan objek permintaan yang telah ditetapkan dalam metode doPost pada Servlet.
Code Baris 13: Kami mencetak pesan selamat datang dan alamat email yang telah disimpan dalam objek bean.
Keluaran
Ketika Anda menjalankan kode di atas, Anda akan mendapatkan output berikut:
Saat Anda membuka mvc_example.jsp, Anda akan mendapatkan formulir dengan kolom email dan kata sandi serta tombol Kirim.
Setelah Anda memasukkan email dan kata sandi ke dalam formulir dan mengklik Kirim:
Setelah mengklik Kirim, hasilnya akan ditampilkan seperti di bawah ini:
Saat Anda memasukkan email dan kata sandi di layar dan mengklik Kirim, detail tersebut akan disimpan di TestBean. Dari TestBean, detail tersebut akan diambil di layar berikutnya untuk menampilkan pesan sukses. JSP berperan dalam menyajikan data dan menyediakan Tampilan (View), sedangkan Servlet bertindak sebagai Pengontrol (Controller) dan JavaBean berfungsi sebagai Model. Logika bisnis utama terdapat di lapisan Model.


