МВЦ архитектура у ЈСП са примером

Преглед садржаја:

Anonim

Шта је МВЦ?

МВЦ је архитектура која раздваја пословну логику, презентацију и податке. У МВЦ,

  • М означава Модел
  • В је скраћеница од Виев
  • Ц означава контролер.

МВЦ је систематичан начин коришћења апликације где ток почиње од слоја приказа, где се захтев подиже и обрађује у слоју контролера и шаље на слој модела за уметање података и враћање поруке о успеху или неуспеху.

Слој модела:

  • Ово је слој података који се састоји од пословне логике система.
  • Састоји се од свих података апликације
  • Такође представља стање пријаве.
  • Састоји се од класа које имају везу са базом података.
  • Контролер се повезује са моделом и преузима податке и шаље на слој приказа.
  • Модел се такође повезује са базом података и складишти податке у базу података која је са њом повезана.

Виев Лаиер:

  • Ово је презентациони слој.
  • Састоји се од ХТМЛ-а, ЈСП-а итд.
  • Обично представља кориснички интерфејс апликације.
  • Користи се за приказ података који се преузимају из контролера који заузврат преузима податке из класа слојева модела.
  • Овај слој приказа приказује податке о корисничком интерфејсу апликације.

Слој контролера:

  • Делује као интерфејс између приказа и модела.
  • Пресреће све захтеве који долазе из слоја приказа.
  • Прима захтеве из слоја приказа и обрађује захтеве и врши неопходну проверу ваљаности захтева.
  • Овај захтев се даље шаље на слој модела за обраду података, а када се захтев обради, он враћа контролору тражене информације и приказује их у складу с тим у приказу.

Дијаграм је представљен у наставку:

Предности МВЦ-а су:

  • Једноставно за одржавање
  • Лако се продужава
  • Лако за тестирање
  • Контрола навигације је централизована

Пример МВЦ архитектуре

У овом примеру ћемо показати како се користи МВЦ архитектура у ЈСП-у.

  • Узимамо пример обрасца са две променљиве „е-пошта“ и „лозинка“, што је наш слој приказа.
  • Једном када корисник унесе е-маил и лозинку и кликне на субмит, акција се преноси у мвц_сервлет где се прослеђују е-пошта и лозинка.
  • Овај мвц_сервлет је слој контролера. Овде у мвц_сервлет захтев се шаље објекту граха који делује као слој модела.
  • Вредности е-поште и лозинке се постављају у пасуљ и чувају за даљу сврху.
  • Из зрна, вредност се преузима и приказује у слоју приказа.

Мвц_екампле.јсп

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Пример МВЦ гуруа <боди><форм ацтион = "Мвц_сервлет" метход = "ПОСТ">Е-адреса: <инпут типе = "тект" наме = "емаил"><бр />Лозинка: <инпут типе = "тект" наме = "пассворд" /><инпут типе = "субмит" валуе = "Субмит" />

Објашњење кода:

Виев Лаиер:

Линија кода 10-15: Овде узимамо образац који има два поља као параметар "е-пошта" и "лозинка" и овај захтев треба проследити контролору Мвц_сервлет.јава, који се прослеђује у акцији. Метода кроз коју се је ПОСТ метода.

Мвц_сервлет.јава

пакет демотест;импорт јава.ио.ИОЕкцептион;импорт јавак.сервлет.РекуестДиспатцхер;импорт јавак.сервлет.СервлетЕкцептион;импорт јавак.сервлет.хттп.ХттпСервлет;импорт јавак.сервлет.хттп.ХттпСервлетРекуест;импорт јавак.сервлет.хттп.ХттпСервлетРеспонсе;/ *** Класа имплементације сервлета Мвц_сервлет* /јавна класа Мвц_сервлет проширује ХттпСервлет {приватни статички финал лонг сериалВерсионУИД = 1Л;/ *** @сее ХттпСервлет # ХттпСервлет ()* /публиц Мвц_сервлет () {супер ();// ТОДО Аутоматски генерисани стуб конструктора}заштићена воид доПост (захтев ХттпСервлетРекуест, одговор ХттпСервлетРеспонсе) баца СервлетЕкцептион, ИОЕкцептион {// ТОДО Аутоматски генерисани квар методеСтринг емаил = рекуест.гетПараметер ("емаил");Стринг пассворд = рекуест.гетПараметер ("лозинка");ТестБеан тестобј = нови ТестБеан ();тестобј.сетЕмаил (емаил);тестобј.сетПассворд (лозинка);рекуест.сетАттрибуте ("гурубеан", тестобј);РекуестДиспатцхер рд = рекуест.гетРекуестДиспатцхер ("мвц_суццесс.јсп");рд.форвард (захтев, одговор);}}

Објашњење кода:

Слој контролера

Линија кода 14: мвц_сервлет проширује ХттпСервлет.

Линија кода 26: Како се користи метода ПОСТ, стога захтев долази у доПост методу сервлета који обрађује захтеве и чува у објекту пасуља као тестобј.

Линија 34: Користећи објекат захтева постављамо атрибут као гурубеан којем се додељује вредност тестобј.

Редак 35: Овде користимо објекат диспечера захтева за прослеђивање поруке о успеху на мвц_суццесс.јсп

ТестБеан.јава

пакет демотест;импорт јава.ио.Сериализабле;јавна класа ТестБеан имплементира Сериализабле {јавни Стринг гетЕмаил () {врати е-маил;}публиц воид сетЕмаил (Стринг емаил) {тхис.емаил = емаил;}јавни Стринг гетПассворд () {вратити лозинку;}публиц воид сетПассворд (Стринг лозинка) {тхис.пассворд = лозинка;}приватни низ е-поште = "нулл";приватни низ лозинке = "нулл";}

Објашњење кода:

Слој модела:

Редак 7-17: Садржи гетере и постављаче е-поште и лозинке који су чланови класе Тест Беан

Линија кода 19-20: Дефинише чланску е-пошту и лозинку типа стринга у класи беан.

Мвц_суццесс.јсп

<% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><% @ паге импорт = "демотест.ТестБеан"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Гуру успех <боди><%ТестБеан тестгуру = (ТестБеан) рекуест.гетАттрибуте ("гурубеан");оут.принт ("Добродошли," + тестгуру.гетЕмаил ());%>

Објашњење кода:

Линија 12: добијамо атрибут помоћу објекта захтева који је постављен у доПост методи сервлета.

Линија кода 13: Штампамо поруку добродошлице и ИД е-поште који су сачувани у објекту пасуља

Излаз:

Када извршите горњи код, добићете следећи излаз:

Када кликнете на мвц_екампле.јсп, добијате образац са е-поштом и лозинком са дугметом за слање.

Једном када унесете е-маил и лозинку у образац, а затим кликните на Пошаљи

Након клика на слање, излаз се приказује као доле

Излаз:

Када на екрану унесете е-пошту и лозинку и кликнете на „Пошаљи“, детаљи се чувају у ТестБеан-у, а из ТестБеан-а се преузимају на следећем екрану да би се добила порука о успеху.

Резиме:

У овом чланку смо сазнали о архитектури МВЦ, тј. Модел Виев Цонтроллер.

ЈСП игра улогу презентације података и контролера. То је интерфејс између модела и приказа, док се модел повезује са контролером, као и са базом података. Главна пословна логика је присутна у слоју модела.