Какво е MVC?
MVC е архитектура, която разделя бизнес логиката, представянето и данните. В MVC,
- M означава Модел
- V означава View
- C означава контролер.
MVC е систематичен начин за използване на приложението, при което потокът започва от изгледния слой, където заявката се издига и обработва в слой контролер и се изпраща на слой модел, за да се вмъкнат данни и да се върне съобщението за успех или неуспех.
Модел слой:
- Това е слоят от данни, който се състои от бизнес логиката на системата.
- Състои се от всички данни на приложението
- Той също така представя състоянието на приложението.
- Състои се от класове, които имат връзка с базата данни.
- Контролерът се свързва с модел и извлича данните и изпраща към слоя за изглед.
- Моделът се свързва и с базата данни и съхранява данните в база данни, която е свързана с нея.
Изглед на слой:
- Това е презентационен слой.
- Състои се от HTML, JSP и др.
- Обикновено представя потребителския интерфейс на приложението.
- Той се използва за показване на данните, които се извличат от контролера, който от своя страна извлича данни от класовете на слой модел.
- Този изгледен слой показва данните за потребителския интерфейс на приложението.
Слой на контролера:
- Той действа като интерфейс между View и Model.
- Той прихваща всички заявки, които идват от изгледния слой.
- Той получава заявките от слоя изглед и обработва заявките и прави необходимата проверка за заявката.
- Тази заявка се изпраща допълнително към слой модел за обработка на данни и след като заявката бъде обработена, тя изпраща обратно на контролера с необходимата информация и показва съответно от изгледа.
Диаграмата е представена по-долу:
Предимствата на MVC са:
- Лесна за поддръжка
- Лесно се удължава
- Лесно за тестване
- Навигационният контрол е централизиран
Пример за MVC архитектура
В този пример ще покажем как да използваме MVC архитектура в JSP.
- Вземаме примера на формуляр с две променливи "имейл" и "парола", който е нашият изглед слой.
- След като потребителят въведе имейл и парола и щракне върху изпращане, действието се предава в mvc_servlet, където се предават имейл и парола.
- Този mvc_servlet е контролен слой. Тук в mvc_servlet заявката се изпраща към обекта на боб, който действа като модел модел.
- Стойностите на имейл и парола се задават в компонента и се съхраняват за по-нататъшна цел.
- От боб, стойността се извлича и показва в слоя изглед.
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 {частен статичен краен дълъг serialVersionUID = 1L;/ *** @ see HttpServlet # HttpServlet ()* /публичен Mvc_servlet () {супер ();// TODO Автоматично генериран заглушител на конструктор}защитена void doPost (HttpServletRequest заявка, HttpServletResponse отговор) хвърля ServletException, IOException {// TODO Автоматично генериран мъниче от методНиз имейл = request.getParameter ("имейл");String 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 на сървлета, който обработва заявките и записва в обекта на боб като testobj.
Кодов ред 34: Използвайки обект на заявка, ние задаваме атрибута като gurubean, на който се присвоява стойността на testobj.
Кодов ред 35: Тук използваме обект на диспечера на заявки, за да предадем съобщението за успех на mvc_success.jsp
TestBean.java
демотест на пакета;импортиране на java.io.Serializable;публичен клас TestBean реализира Serializable {публичен низ getEmail () {връщане на имейл;}public void setEmail (String email) {this.email = имейл;}публичен низ getPassword () {връщане на парола;}public void setPassword (String password) {this.password = парола;}частен низ имейл = "null";частен низ парола = "нула";}
Обяснение на кода:
Модел слой:
Код ред 7-17: Той съдържа гетерите и настройващите имейл и парола, които са членове на класа Test Bean
Кодов ред 19-20: Той дефинира имейла и паролата на членовете от типа низ в класа на боб.
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: Отпечатваме приветственото съобщение и идентификационния номер на имейл, които са запазени в обекта на боб
Изход:
Когато изпълните горния код, получавате следния изход:
Когато кликнете върху mvc_example.jsp, получавате формуляра с имейл и парола с бутона за изпращане.
След като въведете имейл и парола във формуляра и след това кликнете върху Изпращане
След като щракнете върху изпращане, изходът е показан по-долу
Изход:
Когато въведете имейл и парола в екрана и щракнете върху Изпрати след това, подробностите се записват в TestBean и от TestBean те се извличат на следващия екран, за да се получи съобщението за успех.
Резюме:
В тази статия научихме за архитектурата на MVC, т.е. Model View Controller.
JSP играе ролята на представяне на данните и контролер. Това е интерфейс между модел и изглед, докато моделът се свързва както с контролера, така и с базата данни. Основната бизнес логика присъства в слоя на модела.