Spring Web MVC framework dostarcza Model-widok-kontroler (MVC) architektury i gotowych komponentów, które można wykorzystać do tworzenia elastycznych i luźno powiązanych aplikacji internetowych. Wzorzec MVC powoduje oddzielenie różnych aspektów aplikacji (logika wejściowa, logika biznesowa i logika interfejsu użytkownika), zapewniając jednocześnie luźne sprzężenie między tymi elementami.,
-
Model hermetyzuje dane aplikacji i ogólnie będzie składał się z POJO.
-
widok jest odpowiedzialny za renderowanie danych modelu i ogólnie generuje wyjście HTML, które może zinterpretować przeglądarka klienta.
-
kontroler jest odpowiedzialny za przetwarzanie żądań użytkowników i budowanie odpowiedniego modelu i przekazuje go do widoku w celu renderowania.
DispatcherServlet
framework Spring Web model-view-controller (MVC) jest zaprojektowany wokół DispatcherServlet, który obsługuje wszystkie żądania i odpowiedzi HTTP., Proces przetwarzania żądań w usłudze Spring Web MVC DispatcherServlet jest przedstawiony na poniższym schemacie −
poniżej znajduje się sekwencja zdarzeń odpowiadająca przychodzącemu żądaniu HTTP do DispatcherServlet −
-
Po otrzymaniu żądania HTTP, DispatcherServlet konsultuje HandlerMapping, aby wywołać odpowiedni kontroler.
-
Kontroler pobiera żądanie i wywołuje odpowiednie metody serwisowe oparte na użytej metodzie GET lub POST., Metoda service ustawia dane modelu na podstawie zdefiniowanej logiki biznesowej i zwraca nazwę widoku do Dispatcherservleta.
-
DispatcherServlet pobierze pomoc z ViewResolver, aby odebrać zdefiniowany widok dla żądania.
-
Po zakończeniu widoku, DispatcherServlet przekazuje dane modelu do widoku, który jest ostatecznie renderowany w przeglądarce.
wszystkie wyżej wymienione komponenty, tj., HandlerMapping, Controller i ViewResolver są częścią WebApplicationContext w, która jest rozszerzeniem plainApplicationContext z kilkoma dodatkowymi funkcjami niezbędnymi dla aplikacji internetowych.
wymagana konfiguracja
musisz mapować żądania, które ma obsługiwać DispatcherServlet, używając mapowania URL w sieci.plik xml. Poniżej znajduje się przykład do pokazania deklaracji i mapowania dla HelloWeb DispatcherServlet example −
the web.plik xml będzie przechowywany w katalogu WebContent / WEB-INF Twojej aplikacji internetowej., Po zainicjowaniu Helloweb DispatcherServlet, framework spróbuje załadować kontekst aplikacji z pliku o nazwie-servlet.xml znajduje się w WebContent/WEB-INFdirectory aplikacji. W takim przypadku nasz plik będzie HelloWebservlet.xml.
następny,<mapowanie serwletów> znacznik wskazuje, jakie adresy URL będą obsługiwane przez które DispatcherServlet. Tutaj wszystkie żądania HTTP kończą się na .jsp będzie obsługiwany przez Helloweb DispatcherServlet.
Jeśli nie chcesz używać domyślnej nazwy pliku jako-servlet.,xml i domyślna lokalizacja jako WebContent / WEB-INF, możesz dostosować nazwę i lokalizację tego pliku, dodając Servlet listener ContextLoaderListener w swojej sieci web.plik xml w następujący sposób –
teraz sprawdźmy wymaganą konfigurację dla HelloWeb-servlet.plik xml, umieszczony w katalogu WebContent/WEB-INF Twojej aplikacji internetowej −
poniżej znajdują się ważne punkty dotyczące HelloWeb-servlet.plik xml –
-
The-servlet.plik xml zostanie użyty do utworzenia zdefiniowanych beans, zastępując definicje dowolnych beans zdefiniowanych o tej samej nazwie w globalnym zakresie.,
-
The<context:component-scan…> tag będzie używany do aktywacji funkcji skanowania adnotacji Spring MVC, która pozwala na korzystanie z adnotacji takich jak @Controller i @RequestMapping itp.
-
InternalResourceViewResolver będzie miał zdefiniowane reguły rozwiązywania nazw widoków. Zgodnie z powyższą regułą, logiczny widok o nazwie hello jest delegowany do implementacji widoków znajdującej się w /WEB-INF/JSP/hello.jsp .
poniższa sekcja pokaże Ci, jak tworzyć rzeczywiste komponenty, tj.,, Kontroler, Model i widok.
Definiowanie kontrolera
DispatcherServlet wysyła żądanie do kontrolerów, aby wykonały określoną dla niego funkcjonalność. @ Controllerannotation wskazuje, że dana klasa pełni rolę kontrolera. Adnotacja @ RequestMapping jest używana do mapowania adresu URL do całej klasy lub określonej metody obsługi.
adnotacja @Controller definiuje klasę jako kontroler Spring MVC. Tutaj, pierwsze użycie @ RequestMapping wskazuje, że wszystkie metody obsługi tego kontrolera są względem ścieżki / hello., Następna adnotacja@RequestMapping (method = RequestMethod.GET) służy do zadeklarowania metody printhello() jako domyślnej metody obsługi żądania HTTP GET. Możesz zdefiniować inną metodę obsługi dowolnego żądania POST pod tym samym adresem URL.
Możesz zapisać powyższy kontroler w innej formie, w której możesz dodać dodatkowe atrybuty w @RequestMapping w następujący sposób −
atrybut value wskazuje adres URL, do którego jest mapowana metoda obsługi, a atrybut metody definiuje metodę usługi do obsługi żądania HTTP GET., Należy zwrócić uwagę na następujące ważne punkty dotyczące kontrolera zdefiniowanego powyżej –
-
zdefiniujesz wymaganą logikę biznesową wewnątrz metody serwisowej. Możesz wywołać inną metodę wewnątrz tej metody zgodnie z wymaganiami.
-
na podstawie zdefiniowanej logiki biznesowej utworzysz model w ramach tej metody. Możesz użyć setter różnych atrybutów modelu i te atrybuty będą dostępne dla widoku, aby przedstawić końcowy wynik. Ten przykład tworzy model z atrybutem „message”.,
-
zdefiniowana metoda usługi może zwrócić Łańcuch znaków, który zawiera nazwę widoku, który ma być użyty do renderowania modelu. Ten przykład zwraca „hello” jako logiczną nazwę widoku.
tworzenie widoków JSP
Spring MVC obsługuje wiele typów widoków dla różnych technologii prezentacji. Należą do nich-JSPs, HTML, PDF, arkusze Excel, XML, Szablony prędkości, XSLT, JSON, Atom i kanały RSS, JasperReports, itp. Ale najczęściej używamy szablonów JSP napisanych za pomocą JSTL.
napiszmy prosty widok hello w/WEB-INF/hello / hello.,jsp –
<html> <head> <title>Hello Spring MVC</title> </head> <body> <h2>${message}</h2> </body></html>
tutaj ${message} jest atrybutem ustawionym wewnątrz kontrolera. Możesz mieć wiele atrybutów, które mają być wyświetlane w widoku.
przykłady Spring Web MVC Framework
bazując na powyższych koncepcjach, sprawdźmy kilka ważnych przykładów, które pomogą Ci w budowaniu Twoich aplikacji webowych Spring −
Sr.No., | przykład & opis |
---|---|
1 | Spring MVC Hello World przykład
Ten przykład wyjaśni, jak napisać prostą aplikację Spring Web Hello World. |
2 | przykład obsługi formularzy Spring MVC
ten przykład wyjaśni, jak napisać aplikację internetową Spring za pomocą formularzy HTML w celu przesłania danych do kontrolera i wyświetlenia przetworzonego wyniku. |
3 | przykład przekierowania stron Spring
Dowiedz się, jak korzystać z funkcji przekierowania stron w frameworku Spring MVC., |
4 | Spring Static Pages Example
Learn how to access static pages along with dynamic pages in Spring MVC Framework. |
5 | Spring Exception Handling Example
Learn how to handle exceptions in Spring MVC Framework. |