Örnek ile JSP'de MVC Mimarisi

İçindekiler:

Anonim

MVC nedir?

MVC, iş mantığı, sunum ve verileri ayıran bir mimaridir. MVC'de,

  • M, Model anlamına gelir
  • V, Görünüm anlamına gelir
  • C denetleyici anlamına gelir.

MVC, akışın görünüm katmanından başladığı, isteğin denetleyici katmanında yükseltilip işlendiği ve veri eklemek ve başarı veya başarısızlık mesajını geri almak için model katmanına gönderildiği uygulamayı kullanmanın sistematik bir yoludur.

Model Katmanı:

  • Sistemin iş mantığından oluşan veri katmanıdır.
  • Uygulamanın tüm verilerinden oluşur
  • Aynı zamanda uygulamanın durumunu da temsil eder.
  • Veritabanına bağlantısı olan sınıflardan oluşur.
  • Denetleyici modele bağlanır ve verileri alır ve görünüm katmanına gönderir.
  • Model, veri tabanına da bağlanır ve verileri kendisine bağlı bir veri tabanında depolar.

Katmanı Görüntüle:

  • Bu bir sunum katmanıdır.
  • İçinde HTML, JSP vb. İçerir.
  • Normalde uygulamanın kullanıcı arayüzünü sunar.
  • Kontrolörden getirilen verileri görüntülemek için kullanılır ve bu da model katmanı sınıflarından verileri alır.
  • Bu görünüm katmanı, uygulamanın kullanıcı arayüzündeki verileri gösterir.

Denetleyici Katmanı:

  • Görünüm ve Model arasında bir arayüz görevi görür.
  • Görünüm katmanından gelen tüm istekleri yakalar.
  • Görünüm katmanından gelen talepleri alır ve talepleri işler ve talep için gerekli doğrulamayı yapar.
  • Bu talepler ayrıca veri işleme için model katmanına gönderilir ve talep işlendikten sonra gerekli bilgilerle birlikte kontrolöre geri gönderilir ve buna göre görünüm tarafından görüntülenir.

Şema aşağıda gösterilmektedir:

MVC'nin avantajları:

  • Bakımı kolay
  • Genişletmesi kolay
  • Test etmesi kolay
  • Navigasyon kontrolü merkezileştirilmiştir

MVC mimarisi örneği

Bu örnekte, JSP'de MVC mimarisinin nasıl kullanılacağını göstereceğiz.

  • Görünüm katmanımız olan "email" ve "password" olmak üzere iki değişkenli bir form örneğini alıyoruz.
  • Kullanıcı e-postayı ve parolayı girip gönder'i tıkladığında eylem, e-posta ve parolanın geçirildiği mvc_servlet'e geçirilir.
  • Bu mvc_servlet, denetleyici katmanıdır. Burada mvc_servlet'te istek, model katmanı olarak hareket eden bean nesnesine gönderilir.
  • E-posta ve şifre değerleri çekirdeğe ayarlanır ve daha fazla amaç için saklanır.
  • Çekirdekten değer alınır ve görünüm katmanında gösterilir.

Mvc_example.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> MVC Guru Örneği 
E-posta:
Şifre:

Kodun açıklaması:

Katmanı Görüntüle:

Kod Satırı 10-15: Burada parametre "e-posta" ve "şifre" olmak üzere iki alanı olan bir form alıyoruz ve bu isteğin eylemde iletilen bir Mvc_servlet.java denetleyicisine iletilmesi gerekiyor. POST yöntemidir.

Mvc_servlet.java

paket demotest;java.io.IOException'ı içe aktarın;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;javax.servlet.http.HttpServlet'i içe aktar;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/ *** Servlet uygulama sınıfı Mvc_servlet* /public class Mvc_servlet, HttpServlet {özel statik son uzun serialVersionUID = 1L;/ *** @ bkz. HttpServlet # HttpServlet ()* /public Mvc_servlet () {Süper();// TODO Otomatik oluşturulan yapıcı saplaması}korumalı void doPost (HttpServletRequest isteği, HttpServletResponse yanıtı) ServletException, IOException {// TODO Otomatik oluşturulan yöntem saplamasıString email = request.getParameter ("email");String password = request.getParameter ("password");TestBean testobj = new TestBean ();testobj.setEmail (e-posta);testobj.setPassword (şifre);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (istek, yanıt);}}

Kodun açıklaması:

Denetleyici katmanı

Kod Satırı 14: mvc_servlet, HttpServlet'i genişletiyor.

Kod Satırı 26: Kullanılan yöntem POST olduğundan, istek, istekleri işleyen ve bean nesnesine testobj olarak kaydeden sunucu uygulamasının doPost yöntemine gelir.

Kod Satırı 34: İstek nesnesini kullanarak, özniteliği testobj'nin değeri atanan gurubean olarak ayarlıyoruz.

Kod Satırı 35: Burada başarı mesajını mvc_success.jsp'ye iletmek için istek dağıtıcı nesnesini kullanıyoruz.

TestBean.java

paket demotest;import java.io.Serializable;public class TestBean, Serializable {public String getEmail () {e-postayı iade et;}public void setEmail (Dize e-postası) {this.email = email;}public String getPassword () {iade şifresi;}public void setPassword (Dize şifresi) {this.password = şifre;}private String e-posta = "boş";private String şifresi = "boş";}

Kodun açıklaması:

Model Katmanı:

Kod Satırı 7-17: Test Bean sınıfının üyeleri olan e-posta ve şifre alıcılarını ve belirleyicilerini içerir.

Kod Satırı 19-20: Bean sınıfında yer alan string türünde üye e-posta ve şifresini tanımlar.

Mvc_success.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%> Guru Başarısı <%TestBean testguru = (TestBean) request.getAttribute ("gurubean");out.print ("Hoş Geldiniz" + testguru.getEmail ());%>

Kodun açıklaması:

Code Line 12: Servlet'in doPost metodunda ayarlanan istek nesnesini kullanarak özniteliği alıyoruz.

Kod Satırı 13: Bean nesnesine kaydedilmiş olan karşılama mesajı ve e-posta kimliği yazdırıyoruz

Çıktı:

Yukarıdaki kodu çalıştırdığınızda, aşağıdaki çıktıyı alırsınız:

Mvc_example.jsp'ye tıkladığınızda gönder butonu ile e-posta ve şifre içeren formu alırsınız.

Forma e-posta ve şifre girdikten sonra gönder düğmesine tıklayın.

Gönder'e tıkladıktan sonra çıktı aşağıdaki gibi gösterilir

Çıktı:

Ekranda e-posta ve şifre girip gönder düğmesine tıkladığınızda, ayrıntılar TestBean'e kaydedilir ve başarı mesajını almak için bir sonraki ekranda TestBean'den alınır.

Özet:

Bu yazıda MVC yani Model View Controller mimarisini öğrendik.

JSP, verilerin ve denetleyicinin sunumunun rolünü oynar. Model hem denetleyiciye hem de veritabanına bağlanırken, model ve görünüm arasında bir arayüzdür. Model katmanında ana iş mantığı mevcuttur.