MVC архитектура в JSP с пример

Съдържание:

Anonim

Какво е 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 играе ролята на представяне на данните и контролер. Това е интерфейс между модел и изглед, докато моделът се свързва както с контролера, така и с базата данни. Основната бизнес логика присъства в слоя на модела.