MVC в JSP (Archiтекстура)

Що таке MVC?

MVC — це архітектура, яка розділяє бізнес-логіку, презентацію та дані. У MVC,

  • M означає модель
  • V означає View
  • C означає контролер.

MVC — це систематичний спосіб використання програми, де потік починається з рівня перегляду, де запит створюється й обробляється на рівні контролера та надсилається на рівень моделі для вставки даних і повернення повідомлення про успіх або невдачу. MVC Archiдіаграма структури представлена ​​нижче:

MVC Archiтектура
MVC Archiдіаграма текстури

Рівень моделі

  • Це рівень даних, який складається з бізнес-логіки системи.
  • Він складається з усіх даних заявки
  • Він також представляє стан програми.
  • Він складається з класів, які мають зв'язок з база даних.
  • Контролер з’єднується з моделлю, отримує дані та надсилає їх на рівень перегляду.
  • Модель також з’єднується з базою даних і зберігає дані в підключеній до неї базі даних.

Переглянути шар

  • Це презентаційний рівень.
  • Він складається з HTML, JSP тощо.
  • Зазвичай він представляє інтерфейс програми.
  • Він використовується для відображення даних, отриманих від контролера, який, у свою чергу, отримує дані з класів рівня моделі.
  • Цей рівень перегляду показує дані в інтерфейсі користувача програми.

Рівень контролера

  • Він діє як інтерфейс між View і Model.
  • Він перехоплює всі запити, які надходять від рівня перегляду.
  • Він отримує запити від рівня представлення, обробляє запити та виконує необхідну перевірку для запиту.
  • Ці запити далі надсилаються на рівень моделі для обробки даних, і після обробки запиту він надсилає назад до контролера з необхідною інформацією та відповідно відображається в представленні.

Переваги MVC Archiтектура

Перевагами MVC є:

  • Простота в обслуговуванні
  • Легко подовжується
  • Легко перевірити
  • Керування навігацією централізоване

Приклад розробки додатків JSP з MVC Archiтектура

У цьому прикладі ми покажемо, як використовувати архітектуру MVC у JSP.

  • Ми беремо приклад форми з двома змінними «email» і «password», яка є нашим рівнем перегляду.
  • Коли користувач вводить адресу електронної пошти та пароль і натискає «Надіслати», дія передається в mvc_servlet, де передаються адреса електронної пошти та пароль.
  • Цей mvc_servlet є контролерним рівнем. Тут, у mvc_servlet, запит надсилається до об’єкта bean, який діє як рівень моделі.
  • Значення електронної пошти та пароля встановлюються в компонент і зберігаються для подальших цілей.
  • З bean-компонента значення витягується та відображається на шарі перегляду.

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>

Пояснення коду:

Переглянути шар:

Рядок коду 10-15: Тут ми беремо форму, яка має два поля як параметр «email» і «password», і цей запит потрібно переслати до контролера Mvc_servlet.java, який передається в дію. Метод, за допомогою якого він передається, це метод 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); 
	}

}

Пояснення коду:

Рівень контролера

Рядок коду 14:mvc_servlet розширює HttpServlet.

Рядок коду 26: Оскільки використовується метод POST, отже, запит надходить у метод doPost сервлета, який обробляє запити та зберігає в об’єкт bean як testobj.

Рядок коду 34: Використовуючи об’єкт запиту, ми встановлюємо атрибут як gurubean, якому присвоюється значення testobj.

Рядок коду 35: Тут ми використовуємо об’єкт диспетчера запитів, щоб передати повідомлення про успіх до 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";


}

Пояснення коду:

Рівень моделі:

Рядок коду 7-17: Він містить засоби отримання та встановлення електронної пошти та пароля, які є членами класу Test Bean

Рядок коду 19-20: Він визначає електронну адресу члена та пароль рядкового типу в класі 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>

Пояснення коду:

Рядок коду 12: ми отримуємо атрибут за допомогою об’єкта запиту, який було встановлено в методі doPost сервлета.

Рядок коду 13: Ми друкуємо вітальне повідомлення та ідентифікатор електронної пошти, які були збережені в об’єкті bean

вихід:

Коли ви виконуєте наведений вище код, ви отримуєте такий результат:

Коли ви натискаєте mvc_example.jsp, ви отримуєте форму з електронною адресою та паролем із кнопкою відправки.

Після того, як ви введете адресу електронної пошти та пароль у форму, а потім натисніть «Надіслати».

Дизайн додатків JSP

Після натискання «Надіслати» результат буде показано нижче

Дизайн додатків JSP

вихід:

Коли ви вводите адресу електронної пошти та пароль на екрані та натискаєте «Надіслати», деталі зберігаються в TestBean, а з TestBean вони завантажуються на наступному екрані, щоб отримати повідомлення про успіх.

Підсумки

У цій статті ми дізналися про MVC, тобто архітектуру контролера представлення моделі.

JSP відіграє роль представлення даних і контролера. Це інтерфейс між моделлю та представленням, тоді як модель підключається як до контролера, так і до бази даних. Основна бізнес-логіка присутня на рівні моделі.