Αρχιτεκτονική MVC στο JSP με παράδειγμα

Πίνακας περιεχομένων:

Anonim

Τι είναι το MVC;

Το MVC είναι μια αρχιτεκτονική που διαχωρίζει την επιχειρηματική λογική, την παρουσίαση και τα δεδομένα. Στο MVC,

  • Το M σημαίνει Μοντέλο
  • V σημαίνει View
  • C σημαίνει ελεγκτή.

Το MVC είναι ένας συστηματικός τρόπος χρήσης της εφαρμογής όπου η ροή ξεκινά από το επίπεδο προβολής, όπου το αίτημα αυξάνεται και υποβάλλεται σε επεξεργασία στο επίπεδο ελεγκτή και αποστέλλεται στο επίπεδο στρώματος για να εισαγάγει δεδομένα και να πάρει πίσω το μήνυμα επιτυχίας ή αποτυχίας.

Πρότυπο στρώμα:

  • Αυτό είναι το επίπεδο δεδομένων που αποτελείται από την επιχειρηματική λογική του συστήματος.
  • Αποτελείται από όλα τα δεδομένα της εφαρμογής
  • Αντιπροσωπεύει επίσης την κατάσταση της εφαρμογής.
  • Αποτελείται από τάξεις που έχουν τη σύνδεση με τη βάση δεδομένων.
  • Ο ελεγκτής συνδέεται με το μοντέλο και παίρνει τα δεδομένα και στέλνει στο επίπεδο προβολής.
  • Το μοντέλο συνδέεται επίσης με τη βάση δεδομένων και αποθηκεύει τα δεδομένα σε μια βάση δεδομένων που είναι συνδεδεμένη με αυτήν.

Προβολή επιπέδου:

  • Αυτό είναι ένα επίπεδο παρουσίασης.
  • Αποτελείται από HTML, JSP κ.λπ. σε αυτό.
  • Παρουσιάζει κανονικά το περιβάλλον χρήστη της εφαρμογής.
  • Χρησιμοποιείται για την εμφάνιση των δεδομένων που λαμβάνονται από τον ελεγκτή, τα οποία με τη σειρά τους λαμβάνουν δεδομένα από τάξεις επιπέδου μοντέλου
  • Αυτό το επίπεδο προβολής εμφανίζει τα δεδομένα στη διεπαφή χρήστη της εφαρμογής.

Επίπεδο ελεγκτή:

  • Λειτουργεί ως διεπαφή μεταξύ της προβολής και του μοντέλου.
  • Αναχαιτίζει όλα τα αιτήματα που προέρχονται από το επίπεδο προβολής.
  • Λαμβάνει τα αιτήματα από το επίπεδο προβολής και επεξεργάζεται τα αιτήματα και κάνει την απαραίτητη επικύρωση για το αίτημα.
  • Αυτά τα αιτήματα αποστέλλονται περαιτέρω στο επίπεδο του μοντέλου για την επεξεργασία δεδομένων, και μόλις υποβληθεί σε επεξεργασία το αίτημα, στέλνει πίσω στον ελεγκτή με τις απαιτούμενες πληροφορίες και εμφανίζεται ανάλογα από την προβολή.

Το διάγραμμα παρουσιάζεται παρακάτω:

Τα πλεονεκτήματα του MVC είναι:

  • Εύκολη συντήρηση
  • Εύκολη επέκταση
  • Εύκολο στη δοκιμή
  • Ο έλεγχος πλοήγησης είναι συγκεντρωτικός

Παράδειγμα αρχιτεκτονικής MVC

Σε αυτό το παράδειγμα, θα δείξουμε πώς να χρησιμοποιήσουμε την αρχιτεκτονική MVC στο JSP.

  • Παίρνουμε το παράδειγμα μιας φόρμας με δύο μεταβλητές "email" και "password" που είναι το επίπεδο προβολής μας.
  • Μόλις ο χρήστης εισαγάγει email, και τον κωδικό πρόσβασης και κάνει κλικ στην υποβολή, τότε η ενέργεια μεταφέρεται στο mvc_servlet όπου μεταδίδονται τα email και ο κωδικός πρόσβασης.
  • Αυτό το mvc_servlet είναι επίπεδο ελεγκτή. Εδώ στο mvc_servlet το αίτημα αποστέλλεται στο αντικείμενο φασολιών που λειτουργούν ως στρώμα μοντέλου.
  • Οι τιμές email και κωδικού πρόσβασης ρυθμίζονται στο φασόλι και αποθηκεύονται για περαιτέρω σκοπό.
  • Από το φασόλι, η τιμή ανακτάται και εμφανίζεται στο επίπεδο προβολής.

Mvc_example.jsp

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><κεφάλι>> Παράδειγμα MVC Guru <άτομο>
Email:
Κωδικός πρόσβασης:

Επεξήγηση του κωδικού:

Προβολή επιπέδου:

Γραμμή κώδικα 10-15: Εδώ παίρνουμε μια φόρμα που έχει δύο πεδία ως παράμετρο "email" και "password" και αυτό το αίτημα πρέπει να προωθηθεί σε έναν ελεγκτή Mvc_servlet.java, ο οποίος περνά σε δράση. Η μέθοδος μέσω της οποίας πέρασε είναι η μέθοδος POST.

Mvc_servlet.java

demotest πακέτουεισαγωγή java.io.IOException;εισαγωγή javax.servlet.RequestDispatcher;εισαγωγή javax.servlet.ServletException;εισαγωγή javax.servlet.http.HttpServlet;εισαγωγή javax.servlet.http.HttpServletRequest;εισαγωγή javax.servlet.http.HttpServletResponse;/ *** Κατηγορία υλοποίησης Servlet Mvc_servlet* /δημόσια τάξη Mvc_servlet επεκτείνει το HttpServlet {ιδιωτικό στατικό τελικό μεγάλο serialVersionUID = 1L;/ *** @ δείτε HttpServlet # HttpServlet ()* /δημόσιο Mvc_servlet () {σούπερ();// TODO Αυτόματο παραγόμενο κατασκευαστικό στέλεχος}προστατευμένο άκυρο doPost (αίτημα HttpServletRequest, απόκριση HttpServletResponse) ρίχνει το ServletException, το IOException {// TODO Αυτόματο δημιουργημένο στέλεχος μεθόδουString email = request.getParameter ("email");String password = request.getParameter ("κωδικός πρόσβασης");TestBean testobj = νέο TestBean ();testobj.setEmail (email);testobj.setPassword (κωδικός πρόσβασης);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (αίτημα, απάντηση);}}

Επεξήγηση του κωδικού:

Επίπεδο ελεγκτή

Γραμμή κώδικα 14: Το mvc_servlet επεκτείνει το HttpServlet.

Γραμμή κώδικα 26: Καθώς η μέθοδος που χρησιμοποιείται είναι POST, ως εκ τούτου το αίτημα έρχεται σε μια μέθοδο doPost του servlet που επεξεργάζεται τα αιτήματα και αποθηκεύει στο αντικείμενο φασολιών ως testobj.

Γραμμή κωδικού 34: Χρησιμοποιώντας αντικείμενο αίτησης θέτουμε το χαρακτηριστικό ως gurubean στο οποίο έχει εκχωρηθεί η τιμή του testobj.

Γραμμή κώδικα 35: Εδώ χρησιμοποιούμε αντικείμενο διεκπεραιωτή αντικειμένου για να μεταφέρουμε το μήνυμα επιτυχίας στο mvc_success.jsp

TestBean.java

demotest πακέτουεισαγωγή java.io.Serializable;δημόσια κλάση TestBean υλοποιεί Serializable {δημόσια συμβολοσειρά getEmail () {επιστροφή email;}public void setEmail (String email) {this.email = email;}δημόσια συμβολοσειρά getPassword () {επιστροφή κωδικού πρόσβασης}public void setPassword (Κωδικός συμβολοσειράς) {this.password = κωδικός πρόσβασης;}ιδιωτικό String email = "null";ιδιωτικός κωδικός πρόσβασης String = "null";}

Επεξήγηση του κωδικού:

Πρότυπο στρώμα:

Γραμμή κωδικού 7-17: Περιλαμβάνει τους λήπτες και τους ρυθμιστές email και κωδικού πρόσβασης που είναι μέλη της τάξης Test Bean

Γραμμή κώδικα 19-20: Ορίζει το email και τον κωδικό πρόσβασης των μελών του τύπου συμβολοσειράς στην κατηγορία 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 του servlet.

Γραμμή κώδικα 13: Εκτυπώνουμε το μήνυμα καλωσορίσματος και το αναγνωριστικό email των οποίων έχουν αποθηκευτεί στο αντικείμενο φασολιών

Παραγωγή:

Όταν εκτελείτε τον παραπάνω κώδικα, λαμβάνετε την ακόλουθη έξοδο:

Όταν κάνετε κλικ στο mvc_example.jsp λαμβάνετε τη φόρμα με email και κωδικό πρόσβασης με το κουμπί υποβολής.

Μόλις εισαγάγετε email και κωδικό πρόσβασης στη φόρμα και μετά κάντε κλικ στην υποβολή

Αφού κάνετε κλικ στην υποβολή, η έξοδος εμφανίζεται όπως παρακάτω

Παραγωγή:

Όταν εισάγετε email και κωδικό πρόσβασης στην οθόνη και κάνετε κλικ στο submission τότε, οι λεπτομέρειες αποθηκεύονται στο TestBean και από το TestBean ανακτώνται στην επόμενη οθόνη για να λάβουν το μήνυμα επιτυχίας.

Περίληψη:

Σε αυτό το άρθρο, έχουμε μάθει για το MVC, δηλαδή την αρχιτεκτονική Model View Controller.

Το JSP παίζει το ρόλο της παρουσίασης των δεδομένων και του ελεγκτή. Είναι μια διεπαφή μεταξύ μοντέλου και προβολής ενώ το μοντέλο συνδέεται τόσο με τον ελεγκτή όσο και με τη βάση δεδομένων. Η κύρια επιχειρηματική λογική υπάρχει στο επίπεδο μοντέλου.