MVC в JSP (Archiтекстура)
Що таке MVC?
MVC — це архітектура, яка розділяє бізнес-логіку, презентацію та дані. У MVC,
- M означає модель
- V означає View
- C означає контролер.
MVC — це систематичний спосіб використання програми, де потік починається з рівня перегляду, де запит створюється й обробляється на рівні контролера та надсилається на рівень моделі для вставки даних і повернення повідомлення про успіх або невдачу. 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, ви отримуєте форму з електронною адресою та паролем із кнопкою відправки.
Після того, як ви введете адресу електронної пошти та пароль у форму, а потім натисніть «Надіслати».
Після натискання «Надіслати» результат буде показано нижче
вихід:
Коли ви вводите адресу електронної пошти та пароль на екрані та натискаєте «Надіслати», деталі зберігаються в TestBean, а з TestBean вони завантажуються на наступному екрані, щоб отримати повідомлення про успіх.
Резюме
У цій статті ми дізналися про MVC, тобто архітектуру контролера представлення моделі.
JSP відіграє роль представлення даних і контролера. Це інтерфейс між моделлю та представленням, тоді як модель підключається як до контролера, так і до бази даних. Основна бізнес-логіка присутня на рівні моделі.


