Що таке MVC?
MVC - це архітектура, яка розділяє бізнес-логіку, презентацію та дані. У MVC,
- M розшифровується як Model
- V означає Вид
- C означає контролер.
MVC - це систематичний спосіб використання програми, де потік починається з рівня перегляду, де запит підвищується та обробляється на рівні контролера і надсилається на рівень моделі для вставки даних та повернення повідомлення про успіх чи невдачу.
Шар моделі:
- Це рівень даних, який складається з бізнес-логіки системи.
- Він складається з усіх даних програми
- Він також відображає стан заявки.
- Він складається з класів, які мають зв’язок з базою даних.
- Контролер з'єднується з моделлю і отримує дані та надсилає на рівень перегляду.
- Модель також з'єднується з базою даних і зберігає дані в базі даних, яка до неї підключена.
Шар перегляду:
- Це презентаційний шар.
- Він складається з HTML, JSP тощо.
- Зазвичай він представляє інтерфейс користувача програми.
- Він використовується для відображення даних, які отримуються з контролера, який, у свою чергу, отримує дані з класів рівня моделей.
- Цей шар представлення відображає дані про користувальницький інтерфейс програми.
Шар контролера:
- Він діє як інтерфейс між видом і моделлю.
- Він перехоплює всі запити, що надходять із рівня перегляду.
- Він отримує запити від рівня перегляду, обробляє запити та виконує необхідну перевірку запиту.
- Цей запит надалі надсилається на модельний рівень для обробки даних, і після обробки запиту він надсилає контролеру необхідну інформацію та відображає відповідним чином у поданні.
Діаграма представлена нижче:
Перевагами MVC є:
- Легкий в обслуговуванні
- Легко подовжувати
- Легко перевірити
- Навігаційний контроль централізований
Приклад архітектури MVC
У цьому прикладі ми покажемо, як використовувати архітектуру MVC в JSP.
- Ми беремо приклад форми з двома змінними "електронна пошта" та "пароль", яка є нашим шаром перегляду.
- Як тільки користувач вводить електронну пошту, а також пароль і натискає кнопку подати, дія передається в mvc_servlet, де передаються електронна пошта та пароль.
- Цей mvc_servlet - рівень контролера. Тут у mvc_servlet запит надсилається об'єкту bean, який виступає в ролі модельного шару.
- Значення електронної пошти та пароля встановлюються в компонент і зберігаються для подальших цілей.
- З компонента значення отримується і відображається на рівні подання.
Mvc_example.jsp
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Приклад гуру MVC
Пояснення коду:
Шар перегляду:
Кодовий рядок 10-15: Тут ми приймаємо форму, яка має два поля як параметр "електронна пошта" та "пароль", і цей запит потрібно переслати контролеру Mvc_servlet.java, який передається в дії. Метод, за допомогою якого він передається метод POST.
Mvc_servlet.java
демотест пакету;імпортувати java.io.IOException;імпортувати javax.servlet.RequestDispatcher;імпортувати javax.servlet.ServletException;імпортувати javax.servlet.http.HttpServlet;імпортувати javax.servlet.http.HttpServletRequest;імпортувати javax.servlet.http.HttpServletResponse;/ *** Клас реалізації сервлету Mvc_servlet* /відкритий клас Mvc_servlet розширює HttpServlet {приватний статичний фінал long serialVersionUID = 1L;/ *** @see HttpServlet # HttpServlet ()* /public Mvc_servlet () {супер ();// TODO Автогенерована заглушка конструктора}захищена порожнеча doPost (запит HttpServletRequest, відповідь HttpServletResponse) кидає ServletException, IOException {// Автоматично згенерований заглушок TODOРядок email = request.getParameter ("електронна пошта");Рядок password = request.getParameter ("пароль");TestBean testobj = новий TestBean ();testobj.setEmail (електронна пошта);testobj.setPassword (пароль);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (запит, відповідь);}}
Пояснення коду:
Шар контролера
Рядок коду 14: mvc_servlet розширює HttpServlet.
Кодовий рядок 26: Оскільки використовуваний метод POST, отже запит потрапляє в метод doPost сервлета, який обробляє запити та зберігає в об'єкті bean як testobj.
Кодовий рядок 34: Використовуючи об'єкт запиту, ми встановлюємо атрибут як gurubean, якому присвоюється значення testobj.
Кодовий рядок 35: Тут ми використовуємо об'єкт диспетчера запитів для передачі повідомлення про успіх до mvc_success.jsp
TestBean.java
демотест пакету;імпорт java.io.Serializable;відкритий клас TestBean реалізує Serializable {public String getEmail () {повернути електронну пошту;}public void setEmail (рядок електронної пошти) {this.email = електронна пошта;}public String getPassword () {повернути пароль;}public void setPassword (рядок пароля) {this.password = пароль;}приватний рядок email = "null";приватний рядок пароль = "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"%>Успіх гуру <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Ласкаво просимо", + testguru.getEmail ());%>
Пояснення коду:
Рядок коду 12: ми отримуємо атрибут, використовуючи об'єкт запиту, який був встановлений у методі doPost сервлета.
Кодовий рядок 13: Ми друкуємо привітальне повідомлення та ідентифікатор електронної пошти, які були збережені в об'єкті bean
Вихід:
При виконанні наведеного вище коду ви отримуєте такий результат:
При натисканні на mvc_example.jsp ви отримуєте форму з електронною поштою та паролем за допомогою кнопки подати.
Після введення електронної пошти та пароля у форму, а потім натисніть кнопку "Надіслати"
Після натискання на посилання результат відображається, як показано нижче
Вихід:
Коли ви вводите електронну адресу та пароль на екрані та натискаєте кнопку подати, деталі зберігаються в TestBean, а з TestBean вони отримуються на наступному екрані, щоб отримати повідомлення про успіх.
Короткий зміст:
У цій статті ми дізналися про архітектуру контролера MVC, тобто Model View.
JSP виконує роль подання даних та контролера. Це інтерфейс між моделлю та видом, тоді як модель підключається як до контролера, так і до бази даних. Основна бізнес-логіка присутня на рівні моделі.