Spring Web MVC framework oferă Model-View-Controller (MVC) arhitectura si gata componente care pot fi folosite pentru a dezvolta flexibil și slab cuplate aplicații web. Modelul MVC are ca rezultat separarea diferitelor aspecte ale aplicației (logica de intrare, logica de afaceri și logica UI), oferind în același timp o cuplare liberă între aceste elemente.,modelul încapsulează datele aplicației și, în general, acestea vor consta din POJO.vizualizarea este responsabilă pentru redarea datelor modelului și, în general, generează ieșire HTML pe care browserul clientului o poate interpreta.controlerul este responsabil pentru procesarea solicitărilor utilizatorilor și construirea unui model adecvat și îl transmite vizualizării pentru redare.
DispatcherServlet
Primavara Web model-view-controller (MVC) cadrul este conceput în jurul unei DispatcherServlet care se ocupă de toate cererile HTTP și răspunsuri., Cererea de procesare de flux de lucru de Primăvară Web MVC DispatcherServlet este ilustrat în diagrama de mai jos −
în Urma este o secvență de evenimente corespunzătoare unui apel de cerere HTTP pentru a DispatcherServlet −
-
După ce a primit o cerere HTTP, DispatcherServlet consultă HandlerMapping pentru a apela corespunzătoare Controller.
-
controlerul preia solicitarea și apelează metodele de servicii corespunzătoare bazate pe metoda GET sau POST utilizată., Metoda de serviciu va seta datele modelului pe baza logicii de afaceri definite și returnează numele vizualizării în Dispecerservlet.
-
DispatcherServlet va lua ajutor de la ViewResolver pentru a ridica vizualizarea definită pentru cerere.odată ce vizualizarea este finalizată, DispatcherServlet-ul transmite datele modelului către vizualizarea care este redată în cele din urmă în browser.
toate componentele menționate mai sus, adică., HandlerMapping, Controler, și ViewResolver sunt părți ale WebApplicationContext w care este o extensie a plainApplicationContext cu unele caracteristici suplimentare necesare pentru aplicații web.
configurare necesară
trebuie să mapați solicitările pe care doriți să le gestioneze DispatcherServlet-ul, utilizând o mapare URL pe web.fișier xml. Următorul este un exemplu pentru a arăta declarație și cartografiere pentru HelloWeb DispatcherServlet exemplu-
web.fișierul xml va fi păstrat în directorul webcontent / WEB-INF al aplicației dvs. web., La inițializarea HelloWeb DispatcherServlet, cadrul va încerca să încarce contextul aplicației dintr-un fișier numit-servlet.xml situat în webcontent/Web-INFdirectory aplicației. În acest caz, fișierul nostru va fi HelloWebservlet.xml.
Apoi, <servlet-mapping> tag-ul indică Url-urile vor fi tratate prin care DispatcherServlet. Aici toate cererile HTTP se termină cu .jsp va fi gestionat de Dispeceratul Hellowebservlet.
dacă nu doriți să mergeți cu numele de fișier implicit ca-servlet.,xml și locația implicită ca WebContent / WEB-INF, puteți personaliza acest nume de fișier și locația prin adăugarea servlet ascultător ContextLoaderListener în web.fișier xml după cum urmează −
acum, să verificăm configurația necesară pentru HelloWeb-servlet.fișier xml, plasat în directorul webcontent/WEB-INF al aplicației dvs. web –
următoarele sunt punctele importante despre HelloWeb-servlet.fișier xml −
-
– servlet.fișierul xml va fi utilizat pentru a crea fasolele definite, depășind definițiile oricărei fasole definite cu același nume în domeniul de aplicare global.,
-
< context: componentă-scanare…> tag-ul va fi utilizat pentru a activa Spring MVC adnotare capacitatea de scanare care vă permite să facă uz de adnotări ca @Controller și @RequestMapping etc.
-
InternalResourceViewResolver va avea reguli definite pentru a rezolva numele de vizualizare. Conform regulii definite mai sus, o vizualizare logică numită hello este delegată unei implementări de vizualizare situată la /WEB-INF/jsp/hello.jsp .
următoarea secțiune vă va arăta cum să creați componentele reale, adică.,, Controler, Model și vizualizare.
definirea unui controler
DispatcherServlet deleagă cererea controlorilor de a executa funcționalitatea specifică acestuia. @Controllerannotation indică faptul că o anumită clasă servește rolul unui controler. @RequestMapping adnotare este folosit pentru a mapa o adresă URL fie pentru o întreagă clasă sau o anumită metodă handler.
@Controller adnotare definește clasa ca un controler de primăvară MVC. Aici, prima utilizare a @RequestMapping indică faptul că toate metodele de manipulare de pe acest controler sunt relative la calea /hello., Următoarea adnotare@RequestMapping (method = RequestMethod.GET) este utilizat pentru a declara metoda theprintHello () ca metodă de serviciu implicită a controlerului pentru a gestiona solicitarea HTTP GET. Puteți defini o altă metodă pentru a gestiona orice solicitare de postare la aceeași adresă URL.
puteți scrie mai sus controler într-o altă formă în care puteți adăuga atribute suplimentare în @RequestMapping după cum urmează −
valoarea atribut indică URL-ul la care metoda de tratare este mapat și metoda atribut definește metoda de service să se ocupe de cerere HTTP GET., Următoarele puncte importante trebuie notate despre controlerul definit mai sus –
-
veți defini logica de afaceri necesară în interiorul unei metode de serviciu. Puteți apela o altă metodă în interiorul acestei metode ca pe cerință.
-
pe baza logicii de afaceri definite, veți crea un model în cadrul acestei metode. Puteți utiliza setter diferite atribute ale modelului și aceste atribute vor fi accesate de vizualizare pentru a prezenta rezultatul final. Acest exemplu creează un model cu atributul său „mesaj”.,
-
o metodă de serviciu definită poate returna un șir, care conține numele vizualizării care va fi folosit pentru a face modelul. Acest exemplu returnează „hello” ca nume de vizualizare logică.
crearea vizualizărilor JSP
Spring MVC acceptă multe tipuri de vizualizări pentru diferite tehnologii de prezentare. Acestea includ-JSP-uri, HTML, PDF, foi de lucru Excel, XML, șabloane de viteză, fluxuri XSLT, JSON, Atom și RSS, JasperReports etc. Dar cel mai frecvent folosim șabloane JSP scrise cu JSTL.
să ne scrie un simplu salut vedere în/WEB-INF/hello / hello.,jsp –
<html> <head> <title>Hello Spring MVC</title> </head> <body> <h2>${message}</h2> </body></html>
aici ${message} este atributul pe care l-am configurat în interiorul controlerului. Puteți avea mai multe atribute pentru a fi afișate în interiorul vizualizarea.
Spring Web MVC Framework Exemple
Bazează pe conceptele de mai sus, să ne verifica câteva exemple importante care vă vor ajuta în construirea de Primăvară Aplicatii Web −
Sr. Nr., | Exemplu & Descriere |
---|---|
1 | Spring MVC Hello World Exemplu
Acest exemplu va explica cum să scrie un simplu Primăvară Web Hello World aplicație. |
2 | Spring MVC form Handling Example
acest exemplu va explica cum se scrie o aplicație web Spring folosind formulare HTML pentru a trimite datele controlerului și a afișa un rezultat procesat. |
3 | exemplu de redirecționare a paginii de primăvară
Aflați cum să utilizați funcționalitatea de redirecționare a paginii în cadrul 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. |