MVC dalam JSP (Architekstur)

Apa itu MVC?

MVC adalah arsitektur yang memisahkan logika bisnis, presentasi, dan data. Dalam MVC,

  • M adalah singkatan Model
  • V adalah singkatan Melihat
  • C adalah singkatan dari pengontrol.

MVC adalah cara sistematis untuk menggunakan aplikasi di mana aliran dimulai dari lapisan tampilan, di mana permintaan diajukan dan diproses di lapisan pengontrol dan dikirim ke lapisan model untuk memasukkan data dan mendapatkan kembali pesan sukses atau gagal. MVC Archidiagram tektur diwakili di bawah ini:

MVC Architekstur
MVC Archidiagram tekstur

Lapisan Model

  • Ini adalah lapisan data yang terdiri dari logika bisnis sistem.
  • Ini terdiri dari semua data aplikasi
  • Ini juga mewakili keadaan aplikasi.
  • Ini terdiri dari kelas-kelas yang memiliki koneksi ke Database.
  • Pengontrol terhubung dengan model dan mengambil data dan mengirimkannya ke lapisan tampilan.
  • Model juga terhubung dengan database dan menyimpan data ke dalam database yang terhubung dengannya.

Lihat Lapisan

  • Ini adalah lapisan presentasi.
  • Ini terdiri dari HTML, JSP, dll ke dalamnya.
  • Biasanya menyajikan UI aplikasi.
  • Ini digunakan untuk menampilkan data yang diambil dari pengontrol yang kemudian mengambil data dari kelas lapisan model.
  • Lapisan tampilan ini menampilkan data pada UI aplikasi.

Lapisan Pengontrol

  • Ini bertindak sebagai antarmuka antara View dan Model.
  • Itu mencegat semua permintaan yang datang dari lapisan tampilan.
  • Ia menerima permintaan dari lapisan tampilan dan memproses permintaan serta melakukan validasi yang diperlukan untuk permintaan tersebut.
  • Permintaan ini selanjutnya dikirim ke lapisan model untuk pemrosesan data, dan setelah permintaan diproses, permintaan tersebut dikirim kembali ke pengontrol dengan informasi yang diperlukan dan ditampilkan sesuai dengan tampilan.

Keuntungan dari MVC Architekstur

Kelebihan MVC adalah:

  • Mudah untuk mempertahankan
  • Mudah diperpanjang
  • Mudah diuji
  • Kontrol navigasi terpusat

Contoh Desain Aplikasi JSP dengan MVC Architekstur

Dalam contoh ini, kami akan menunjukkan cara menggunakan arsitektur MVC di JSP.

  • Kami mengambil contoh formulir dengan dua variabel “email” dan “kata sandi” yang merupakan lapisan tampilan kami.
  • Setelah pengguna memasukkan email, kata sandi, dan mengklik kirim, tindakan tersebut diteruskan ke mvc_servlet, yang mana email dan kata sandi diteruskan.
  • Mvc_servlet ini adalah lapisan pengontrol. Di sini, di mvc_servlet, permintaan dikirim ke objek kacang yang bertindak sebagai lapisan model.
  • Nilai email dan kata sandi dimasukkan ke dalam bean dan disimpan untuk tujuan selanjutnya.
  • Dari bean, nilainya diambil dan ditampilkan di lapisan tampilan.

Mvc_example.jsp

<%@ 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:

Baris Kode 10-15: Di sini kita mengambil formulir yang memiliki dua kolom sebagai parameter “email” dan “kata sandi” dan permintaan ini perlu diteruskan ke pengontrol Mvc_servlet.java, yang diteruskan dalam tindakan. Metode yang dilalui adalah metode POST.

Mvc_servlet.java

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

Baris Kode 14:mvc_servlet memperluas HttpServlet.

Baris Kode 26: Karena metode yang digunakan adalah POST maka permintaan masuk ke dalam metode doPost dari servlet yang memproses permintaan dan menyimpannya ke dalam objek kacang sebagai testobj.

Baris Kode 34: Menggunakan objek permintaan kita mengatur atribut sebagai gurubean yang diberi nilai testobj.

Baris Kode 35: Di sini kita menggunakan objek operator permintaan untuk meneruskan pesan sukses ke mvc_success.jsp

TestBean.java

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:

Baris Kode 7-17: Ini berisi pengambil dan pengatur email dan kata sandi yang merupakan anggota kelas Test Bean

Baris Kode 19-20: Ini mendefinisikan email dan kata sandi anggota bertipe string di kelas bean.

Mvc_success.jsp

<%@ 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:

Baris Kode 12: kita mendapatkan atribut menggunakan objek permintaan yang telah diatur dalam metode doPost di servlet.

Baris Kode 13: Kami mencetak pesan selamat datang dan id email yang telah disimpan dalam objek bean

Keluaran:

Ketika Anda menjalankan kode di atas, Anda akan mendapatkan output berikut:

Ketika Anda mengklik mvc_example.jsp Anda mendapatkan formulir dengan email dan kata sandi dengan tombol kirim.

Setelah Anda memasukkan email dan kata sandi ke formulir lalu klik kirim

Desain Aplikasi JSP

Setelah klik submit, hasilnya seperti dibawah ini

Desain Aplikasi JSP

Keluaran:

Saat Anda memasukkan email dan kata sandi di layar dan mengklik kirim, rinciannya disimpan di TestBean dan dari TestBean diambil di layar berikutnya untuk mendapatkan pesan sukses.

Kesimpulan

Pada artikel ini, kita telah mempelajari tentang arsitektur MVC yaitu Model View Controller.

JSP memainkan peran presentasi data dan pengontrol. Ini adalah antarmuka antara model dan tampilan sementara model menghubungkan keduanya ke pengontrol serta database. Logika bisnis utama ada di lapisan model.