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.

  • ๐Ÿงฑ Pemisahan Kekhawatiran: Model menyimpan data dan logika bisnis, View merender UI, dan Controller mengarahkan permintaan di antara ketiganya.
  • ๐Ÿ“ Peran JSP: Halaman JSP merender markup dinamis untuk lapisan View, sementara Servlet menangani pemrosesan permintaan pada lapisan Controller.
  • ๐Ÿ”€ Alur Permintaan: Browser mengirimkan formulir, Servlet memvalidasi input, mengisi sebuah JavaBean kemudian meneruskan kendali ke tampilan JSP untuk menerima respons.
  • โœ… Kemudahan Pemeliharaan Adalah Kuncinya: Arsitektur MVC di JSP membuat aplikasi web lebih mudah dipelihara, diperluas, diuji unit, dan dinavigasi secara terpusat.
  • ๐Ÿงช Contoh Praktis: Formulir login mengirimkan data ke Mvc_servlet, yang menyimpan email dan kata sandi di TestBean, kemudian meneruskannya ke mvc_success.jsp.
  • ๐Ÿค– Modernisasi AI: Asisten AI kini membantu merefaktor kode JSP MVC lama menjadi Spring MVC, menghasilkan controller, DTO, dan pengujian sesuai kebutuhan.

MVC dalam JSP (Architekstur)

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:

MVC Architekstur
MVC Archidiagram tekstur

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:

Desain Aplikasi JSP

Setelah mengklik Kirim, hasilnya akan ditampilkan seperti di bawah ini:

Desain Aplikasi JSP

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.

Pertanyaan Umum Demo Slot

MVC di JSP adalah pola desain yang membagi aplikasi web menjadi tiga lapisan: Model (data dan logika bisnis), View (halaman JSP yang menampilkan UI), dan Controller (Servlet yang memproses permintaan dan mengarahkan respons).

JSP pada dasarnya termasuk dalam lapisan View karena merender HTML dinamis untuk pengguna. Dalam pola JSP Model 2, Servlet menangani peran Controller dan JavaBeans menangani peran Model, keeping JSP yang bebas dari logika bisnis.

Model 1 menempatkan logika bisnis, akses data, dan presentasi langsung di dalam halaman JSP. Model 2 mengikuti MVC: Servlet bertindak sebagai Controller, JavaBean membentuk Model, dan file JSP merender View. Model 2 adalah pendekatan yang direkomendasikan.

MVC meningkatkan kemudahan pemeliharaan, pengujian, dan produktivitas tim. Setiap lapisan berkembang secara independen, logika bisnis tidak berada di dalam file JSP, navigasi terpusat di Servlet, dan pengujian unit mencakup Model tanpa perlu menjalankan kontainer web.

Browser mengirimkan formulir ke Servlet. Servlet memvalidasi input, membuat atau memperbarui JavaBean tersebut disimpan sebagai atribut permintaan. Kemudian, kendali diteruskan ke halaman JSP, yang membaca bean tersebut dan menampilkan respons.

Asisten pengkodean AI menganalisis Servlet dan file JSP lama, misalnyatracmenyematkan logika bisnis ke dalam layanan yang bersih, menghasilkan pengontrol Spring MVC dan DTO, serta menghasilkan JUnit pengujian. Ini mempercepat migrasi dari JSP Model 2 ke kerangka kerja modern dengan lebih sedikit penulisan ulang manual.

Alat AI menyusun kerangka pengontrol Spring MVC, menghasilkan peta permintaan.pingMereka menyarankan anotasi validasi, menulis template Thymeleaf, dan membuat tes integrasi. Mereka juga mendeteksi masalah keamanan seperti kurangnya perlindungan CSRF atau penanganan input yang tidak aman dalam metode controller.

Ringkaslah postingan ini dengan: