Co to jest MVC?
MVC to architektura oddzielająca logikę biznesową, prezentację i dane. W MVC
- M oznacza model
- V oznacza Widok
- C oznacza kontroler.
MVC to systematyczny sposób korzystania z aplikacji, w której przepływ rozpoczyna się od warstwy widoku, gdzie żądanie jest zgłaszane i przetwarzane w warstwie kontrolera i wysyłane do warstwy modelu w celu wstawienia danych i odzyskania komunikatu o sukcesie lub niepowodzeniu.
Warstwa modelu:
- Jest to warstwa danych, na którą składa się logika biznesowa systemu.
- Zawiera wszystkie dane aplikacji
- Przedstawia również stan aplikacji.
- Składa się z klas, które mają połączenie z bazą danych.
- Kontroler łączy się z modelem, pobiera dane i wysyła do warstwy widoku.
- Model łączy się również z bazą danych i przechowuje dane w bazie danych, która jest z nią połączona.
Wyświetl warstwę:
- To jest warstwa prezentacji.
- Składa się z HTML, JSP itp.
- Zwykle przedstawia interfejs użytkownika aplikacji.
- Służy do wyświetlania danych, które są pobierane ze sterownika, który z kolei pobiera dane z klas warstwy modelu.
- Ta warstwa widoku przedstawia dane w interfejsie użytkownika aplikacji.
Warstwa kontrolera:
- Działa jako interfejs między widokiem a modelem.
- Przechwytuje wszystkie żądania przychodzące z warstwy widoku.
- Odbiera żądania z warstwy widoku i przetwarza żądania oraz przeprowadza niezbędną weryfikację żądania.
- Żądanie to jest następnie przesyłane do warstwy modelowej w celu przetworzenia danych, a po przetworzeniu żądania odsyła z powrotem do administratora z wymaganymi informacjami i odpowiednio wyświetlone przez widok.
Schemat przedstawiono poniżej:
Zalety MVC to:
- Łatwy w utrzymaniu
- Łatwe do przedłużenia
- Łatwe do przetestowania
- Sterowanie nawigacją jest scentralizowane
Przykład architektury MVC
W tym przykładzie pokażemy, jak używać architektury MVC w JSP.
- Bierzemy przykład formularza z dwiema zmiennymi „e-mail” i „hasło”, który jest naszą warstwą widoku.
- Gdy użytkownik wprowadzi adres e-mail i hasło i kliknie przycisk Prześlij, akcja jest przekazywana w mvc_servlet, gdzie przekazywane są adres e-mail i hasło.
- Ten mvc_servlet jest warstwą kontrolera. Tutaj w mvc_servlet żądanie jest wysyłane do obiektu bean, który działa jako warstwa modelu.
- Wartości adresu e-mail i hasła są ustawiane w ziarnie i przechowywane do dalszych celów.
- Z ziarna wartość jest pobierana i wyświetlana w warstwie widoku.
Mvc_example.jsp
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%>Przykład guru MVC
Wyjaśnienie kodu:
Wyświetl warstwę:
Linia kodu 10-15: Tutaj bierzemy formularz, który ma dwa pola jako parametr „e-mail” i „hasło” i to żądanie musi zostać przekazane do kontrolera Mvc_servlet.java, który jest przekazywany w akcji. przekazywana jest metoda POST.
Mvc_servlet.java
pakiet demotest;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/ *** Klasa implementacji serwletu Mvc_servlet* /public class Mvc_servlet rozszerza HttpServlet {prywatne statyczne końcowe długie serialVersionUID = 1L;/ *** @see HttpServlet # HttpServlet ()* /public Mvc_servlet () {Wspaniały();// TODO Automatycznie wygenerowany kod konstruktora}protected void doPost (żądanie HttpServletRequest, odpowiedź HttpServletResponse) throws ServletException, IOException {// TODO Automatycznie wygenerowany kod pośredniczący metodyString email = request.getParameter ("email");String password = request.getParameter ("hasło");TestBean testobj = new TestBean ();testobj.setEmail (e-mail);testobj.setPassword (hasło);request.setAttribute ("gurubean", testobj);RequestDispatcher rd = request.getRequestDispatcher ("mvc_success.jsp");rd.forward (żądanie, odpowiedź);}}
Wyjaśnienie kodu:
Warstwa kontrolera
Linia kodu 14: mvc_servlet rozszerza HttpServlet.
Linia kodu 26: Ponieważ używaną metodą jest POST, żądanie przychodzi do metody doPost serwletu, która przetwarza żądania i zapisuje w obiekcie bean jako testobj.
Linia kodu 34: Używając obiektu żądania ustawiamy atrybut jako gurubean, któremu przypisywana jest wartość testobj.
Linia kodu 35: Używamy tutaj obiektu dyspozytora żądań, aby przekazać komunikat o powodzeniu do mvc_success.jsp
TestBean.java
pakiet demotest;import java.io.Serializable;public class TestBean implementuje Serializable {public String getEmail () {e-mail zwrotny;}public void setEmail (String email) {this.email = email;}public String getPassword () {zwrot hasła;}public void setPassword (hasło ciąg znaków) {this.password = hasło;}private String email = "null";prywatne hasło String = "null";}
Wyjaśnienie kodu:
Warstwa modelu:
Linia kodu 7-17: Zawiera metody pobierające i ustawiające adresy e-mail i hasła, które są członkami klasy Test Bean
Code Line 19-20: Definiuje adres e-mail członków i hasło typu string w klasie bean.
Mvc_success.jsp
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ page import = "demotest.TestBean"%>Sukces guru <%TestBean testguru = (TestBean) request.getAttribute ("guruba");out.print ("Witamy," + testguru.getEmail ());%>
Wyjaśnienie kodu:
Linia kodu 12: atrybut pobieramy za pomocą obiektu żądania, który został ustawiony w metodzie doPost serwletu.
Linia kodu 13: Drukujemy wiadomość powitalną i identyfikator e-mail, które zostały zapisane w obiekcie bean
Wynik:
Po wykonaniu powyższego kodu otrzymasz następujące dane wyjściowe:
Po kliknięciu mvc_example.jsp otrzymasz formularz z adresem e-mail i hasłem z przyciskiem przesyłania.
Po wpisaniu adresu e-mail i hasła do formularza, a następnie kliknij przycisk Prześlij
Po kliknięciu przycisku Prześlij dane wyjściowe są wyświetlane jak poniżej
Wynik:
Po wprowadzeniu adresu e-mail i hasła na ekranie i kliknięciu przycisku „Prześlij”, szczegóły są zapisywane w TestBean, a z TestBean są pobierane na następnym ekranie, aby otrzymać komunikat o sukcesie.
Podsumowanie:
W tym artykule dowiedzieliśmy się o architekturze MVC, czyli modelu kontrolera widoku modelu.
JSP pełni rolę prezentacji danych i administratora. Jest to interfejs między modelem a widokiem, podczas gdy model łączy się zarówno ze sterownikiem, jak i bazą danych. Główna logika biznesowa jest obecna w warstwie modelu.