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