Spring MVC Andrzej Klusiewicz 1/18



Podobne dokumenty
Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Instrukcja programu PControl Powiadowmienia.

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Jak spersonalizować wygląd bloga?

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Poniżej instrukcja użytkowania platformy

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

WSTĘP. Delphi. DDGX210(PL) - Edycja 1 du 01/

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Wtedy wystarczy wybrać właściwego Taga z listy.

Centralizacji Systemu. Procedury zasilania danymi systemu LAS oprogramowania do aktualizacji LMN. etap C13 pkt 5

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

VinCent Office. Moduł Drukarki Fiskalnej

Microsoft Management Console

PERSON Kraków


Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska

Jak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro)

Konfiguracja historii plików

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

INSTRUKCJA PROGRAMU BHM SPIS TREŚCI

INSTRUKCJA DLA INSPEKTORÓW DS. REJESTRACJI

Instrukcja logowania do aplikacji ING Agent

Nowe funkcjonalności

Zarządzanie Zasobami by CTI. Instrukcja

UWAGA! PRZECZYTAJ NAJPIERW:

DRUKOWANIE ŚWIADECTW LIBRUS

INSTRUKCJA WebPTB 1.0

SZABLONY KOMUNIKATÓW SPIS TREŚCI

Archiwum Prac Dyplomowych

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

INFORMATOR TECHNICZNY WONDERWARE

PODRĘCZNIK UŻYTKOWNIKA

Instalacja i konfiguracja automatu synchronizacji CDN OFFLINE

Opis instalacji systemu Intranet Komunikator

Pierwsze logowanie do systemu I-Bank

Zaznaczając checkbox zapamiętaj program zapamięta twoje dane logowania. Wybierz cmentarz z dostępnych na rozwijalnej liście.

Bazy danych. Andrzej Łachwa, UJ, /15

INSTRUKCJA Panel administracyjny

Kancelaris - Zmiany w wersji 2.50

Instalacja programu. Omówienie programu. Jesteś tu: Bossa.pl

FRAKTAL STUDIO CELNE

Instrukcja zapisu do grup

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Generowanie kodów NC w środowisku Autodesk Inventor 2014

Konfiguracja przeglądarek internetowych oraz Panelu Java dla klientów instutucjonalnych problemy z apletem do logowania/autoryzacji

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

API transakcyjne BitMarket.pl

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Moduł SMS. Instrukcja użytkownika

Nasz kochany drogi BIK Nasz kochany drogi BIK

Elementy animacji sterowanie manipulatorem

Jak postawić tablicę informacyjną? Plan działania dla animatorów przyrodniczych

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Przygotowały: Magdalena Golińska Ewa Karaś

Dokumentacja aktywacji i konfiguracji konta użytkownika zewnętrznego.

PFR Wstępnie wypełnione zeznanie podatkowe. PIT-37 i PIT-38 za rok 2015

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH

Projektowanie bazy danych

Konfiguracja współpracy urządzeń mobilnych (bonowników).

1. Korzyści z zakupu nowej wersji Poprawiono Zmiany w słowniku Stawki VAT Zmiana stawki VAT w kartotece Towary...

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Instrukcja wprowadzania ocen do systemu USOSweb

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

db powernet Instalacja czytnika kart mikroprocesorowych (instrukcja)

ZARZĄDZENIE nr 1/2016 REKTORA WYŻSZEJ SZKOŁY EKOLOGII I ZARZĄDZANIA W WARSZAWIE z dnia r.

elektroniczna Platforma Usług Administracji Publicznej

Zarządzenie Nr 0151/18/2006 Wójta Gminy Kornowac z dnia 12 czerwca 2006r.

Firma Informatyczna JazzBIT

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

InsERT GT Własne COM 1.0

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

Program Płatnik Instrukcja instalacji

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

STRONA GŁÓWNA SPIS TREŚCI. Zarządzanie zawartością stron... 2 Tworzenie nowej strony... 4 Zakładka... 4 Prawa kolumna... 9

WF-FaKir dla Windows

Opis Najważniejsze cechy modułu: Predefiniowane opcje wysyłki Rozszerzony podgląd zamówień... 2

I. Zakładanie nowego konta użytkownika.

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

Obsługa pakietu biurowego OFFICE

ARAKS FAKTURY Instalujemy program i wystawiamy fakturę krok po kroku, oraz co wyróżnia nasz program od innych. - 1

Posiadane punkty lojalnościowe można również wykorzystać na opłacenie kosztów przesyłki.

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

E-faktura PKP Energetyka

WZÓR SKARGI EUROPEJSKI TRYBUNAŁ PRAW CZŁOWIEKA. Rada Europy. Strasburg, Francja SKARGA. na podstawie Artykułu 34 Europejskiej Konwencji Praw Człowieka

Ogłoszenie o zwołaniu Zwyczajnego Walnego Zgromadzenia IDM Spółka Akcyjna w upadłości układowej z siedzibą w Krakowie na dzień 30 czerwca 2015 roku

1. Warunki. 2. Zakładanie konta. 3. Logowanie. 4. Korzystanie z portalu partnera serwisowego 5. Subkonta 5.1Zakładanie subkonta. 5.

Aktualizacja CSP do wersji v7.2. Sierpień 2014

OptiMore Importer Rejestru VAT. Instrukcja obsługi programu

Instrukcja Jak złożyć dokument elektroniczny

Transkrypt:

Spring MVC pierwsza aplikacja Kod źródłowy aplikacji którą tworzę w niniejszym kursie jest do pobrania z adresu: http://www.jsystems.pl/storage/spring/springmvc1.zip Aplikacja jest tworzona w NetBeans, a uruchamiana na serwerze Glassfish który to jest dołączany do w.w. IDE. Zaczniemy od stworzenia zwykłej aplikacji WEBowej: Spring MVC Andrzej Klusiewicz 1/18

Po jej utworzeniu musimy dodać niezbędne biblioteki. W Netbeans należy wybrać właściwości projektu, przejść do sekcji Libraries a następnie kliknąć AddLibrary i wybrać potrzebne: Będzie nam też potrzebny plik konfiguracyjny web.xml, dlatego dodajemy do do katalogu WEB- INF: Spring MVC Andrzej Klusiewicz 2/18

Będzie nam też potrzebny jakiś pakiet w którym umieścimy nasze klasy: Na początek aby przyjrzeć się sposobowi przekazywania kontroli nad wywołaniami Springowi, stworzymy zwyczajny serwlet. Pamiętaj by zaznaczyć dodanie informacji o nim do web.xml! Spring MVC Andrzej Klusiewicz 3/18

Gdy zajrzymy do web.xml po dodaniu serwletu, zobaczymy że pojawił się w nim taki oto wpis: W liniach 7-9 mamy zapisane, że wywołanie podstrony Przyklad.do będzie obsługiwane przez Spring MVC Andrzej Klusiewicz 4/18

nasz nowy serwlet. Nieco ten wpis przerobimy. Przyjrzyj się linii 9. Wpis / oznacza, że strona początkowa naszej aplikacji będzie obsługiwana przez nasz serwlet. Gdybyśmy wprowadzili tam wpis /* oznaczałoby to, że każde wywołanie adresu w naszej aplikacji będzie przez ten serwlet obsługiwane- tj. każdy podadres np. http://localhost:8080/springmvc/niematakiejstrony.do również byłoby obsłużone. Różnica w gwiazdce :) Dokonamy teraz małej zmiany w naszym serwlecie. W momencie wywołania naszej aplikacji na ekranie w przeglądarce powinna się wyświetlić treść Halo, tutaj servlet!. Spring MVC Andrzej Klusiewicz 5/18

Uruchommy więc naszą aplikację: Moglibyśmy podzielić naszą aplikację na moduły i obsługiwać je przez różne serwlety... albo np. tylko jeden moduł obsługiwać z użyciem Spring MVC. Nieco przerabiam mój plik web.xml: Porównajmy adres wywołania naszego serwletu: Spring MVC Andrzej Klusiewicz 6/18

Teraz będzie drobna zmiana. W linii 10 do adresu /jakismodul/ dodałem *. To oznacza że każde wywołanie z początkiem /jakismodul/ będzie obsługiwane przez nasz przykładowy serwlet: I sprawdzamy : Mam nadzieję, że po tych przykładach to co się dzieje w nowych liniach 14-21 w pliku web.xml będzie dla Ciebie oczywiste :) Wszystkie wywołania których adres będzie się zaczynał od /SpringMVC/spring/ będą obsługiwane przez serwlet o nazwie springmvc. A ten serwlet to klasa DispatcherServlet której... nie definiowaliśmy :) To właśnie tutaj następuje przekazanie kontroli do Springa. To jest klasa dostarczana z bibioteką Springa, która przejmie kontrolę nad wywołaniami w naszej aplikacji (przynajmiej we wskazanym zakresie adresowym). Co by się stało gdybyśmy w linii 20 zdeklarowali /*? Wszystkie wywołania w naszej aplikacji byłyby obsługiwane przez Springa.. Spring MVC Andrzej Klusiewicz 7/18

OK, sprawdźmy teraz co się stanie kiedy wywołamy w przeglądarce adres nowego modułu: Spring MVC Andrzej Klusiewicz 8/18

Pojawił się błąd, a gdy mu się przyjrzymy zobaczymy że problem polega na braku pliku springmvcservlet.xml To jest plik konfiguracyjny Spring MVC w którym będziemy deklarowali m.in. kontrolery naszej aplikacji. Nazwa pliku springmvc-servlet.xml nie jest przypadkowa. Wynika ona z tego jak nazwaliśmy servlet dla klasy DispatcherServlet w linii 15 pliku web.xml. Gdybyś w tym miejscu wpisał zamiast springmvc np. gdziejestnemo, Spring szukałby pliku gdziejestnemoservlet.xml. Wielkość liter ma znaczenie. Skoro Spring tak bardzo potrzebuje tego pliku, to mu go dajmy : Nadamy mu nazwę springmvc-servlet.xml: Spring MVC Andrzej Klusiewicz 9/18

Będą nam też potrzebne pewne przestrzenie nazw XML które będziemy wykorzystywać, dlatego je zaznaczamy: Spring MVC Andrzej Klusiewicz 10/18

Nie ma możliwości wyboru przestrzeni MVC dlatego musimy dodać ją ręcznie do nowego pliku. Możesz tez gotowy plik pobrać z przykładowego kodu którego adres znajdziesz na początku tego rozdziału i umieścić go w katalogu WEB-INF. Ponówmy próbę dostępu do modułu: Zaglądamy do konsoli serwera: Widzimy że Spring odnalazł nasz nowy plik (linia z Loading XML bean definitions...). Przyjrzyjmy się teraz ostatniej linii z ostrzeżeniem. Problem polega na tym, że nie określiliśmy w pliku springmvc-servlet.xml przez jaką klasę ma być obsługiwany adres /SpringMVC/spring/. Spring MVC Andrzej Klusiewicz 11/18

Dodajemy więc nowy wpis do springmvc-servlet.xml: Linia 21 oznacza, że Spring ma poszukać deklaracji mapowań obsługiwanych adresów w adnotacjach znajdujących się w klasach pakietu (i jego podpakietów) który wskazaliśmy w linii 23 :) Do pakietu pl.jsystems.springmvc.controller dodajemy teraz zwyczajną klasę Hello. Wprowadzamy metodę sayhello która wypisuje na konsoli serwera tekst HELLO MUPPET. Koniecznie dodaj wpis @Controller nad deklarają klasy, oraz @RequestMapping nad metodą SayHello. Wpis @Controller z linii 16 deklaruje, że klasa ta obsługuje żądania HTTP, a @RequestMapping z parametrem wskazują która klasa do robi i dla jakiego konkretnie żądania. Adres /hello.do jest względny i oznacza wywołanie /SpringMVC/spring/hello.do. Spring MVC Andrzej Klusiewicz 12/18

Wywołajmy więc ten adres: Nasze ulubione 404. Czy to znaczy że coś nie zadziałało? To zależy :) This is not a bug, this is a feature :) A tak poważnie wszystko zgodnie z planem. Zajrzyjmy do konsoli serwera: Wyświetlił nam się komunikat Hello Muppet, a to oznacza że nasza metoda sayhello została zgodnie z założeniem wywołana. Błąd 404 pojawia się dlatego, że nie mam strony JSP którą powinienem w odpowiedzi wyświetlić. Konkretnie to plik powinien się nazywać hello.jsp ponieważ metoda sayhello zwraca ciąg tekstowy hello i powinien znajdować się bezpośrednio w katalogu WEB-INF co zdeklarujemy sobie w pliku springmvc-servlet: W linii 27 deklaruję gdzie Spring ma szukać plików JSP, a w linii 28 jakie mają mieć rozszerzenie. Jeśli chcesz, w linii 27 możesz dodać jakiś podkatalog np. /WEB-INF/jsp/, albo wydzielić w ogóle osobny katalog na pliki jsp związane z tym modułem np. /WEB-INF/jsp/spring/ Spring MVC Andrzej Klusiewicz 13/18

Stwórzmy jeszcze w zadeklarowanym katalogu plik hello.jsp: i umieśćmy w nim taki oto kod: Teraz przy wywołaniu adresu /SpringMVC/spring/hello.do powinniśmy zobaczyć taki komunikat: Spring MVC Andrzej Klusiewicz 14/18

Przydałoby się jednak zrobić coś więcej niż wyświetlanie statycznej wartości. Przekażmy więc jakieś dane z kontrolera do widoku (patrz linia 23): a następnie wyświetlmy ją na stronie JSP (patrz linia 16): Spring MVC Andrzej Klusiewicz 15/18

Zauważ że w JSP odwołuję się do przekazanego elementu po nazwie która ustaliłem w pierwszym parametrze metody addattribute tj. wiadomosc. Efekt: Przekazywać oczywiście możemy też obiekty, listy, a także możemy obsługiwać formularze, ale tym zajmiemy się w kolejnych częściach tego kursu. W tej chwili zrobiliśmy chyba najprostszą możliwą implementację Spring MVC. Mamy oczywiście wiele możliwych wariantów jak choćby w miejsce adnotacji użycie deklaracji beanów w pliku XML. Jeszcze pozwolę sobie na małe rozwinięcie tematu zarządzania wywołaniami. Przypuśćmy że tworzymy dużą aplikację złożoną z kilku modułów i chcielibyśmy mieć osobne pliki konfiguracyjne. Kod źródłowy do następnych przykładów znajdziesz pod adresem : http://www.jsystems.pl/storage/spring/springmvc2.zip Dodamy sobie kolejną paczkę do web.xml: Spring MVC Andrzej Klusiewicz 16/18

W związku z tym że nasz serwlet nazywa się drugimodul dodajemy też plik drugimodulservlet.xml. W nim dodajemy takie wpisy jak poprzednio, z tą różnicą że pliki JSP znajdą się w osobnym podkatalogu w WEB-INFie (patrz linia 27), a dodatkowo wydzielimy sobie osobny pakiet na kontrolery tego modułu. Dzięki temu będziemy mogli mieć klasy kontrolerów o takiej samej nazwie. Oczywiście taki pakiet tworzymy, a w nim umieszczamy odrobinę różniącą się klasę kontrolera: Zauważ że tutaj również określone jest mapowanie dla /hello.do, ale jak pamiętamy jest to adres względny i w tym przypadku oznacza wywołanie /SpringMVC/drugimodul/hello.do, a nie /SpringMVC/spring/hello.do. Metoda nadal zwraca tekst hello, co oznacza że Spring poszuka pliku hello.jsp by go wyświetlić, tym razem jednak będzie go szukał w katalogu WEB- INF/drugimodul. Spring MVC Andrzej Klusiewicz 17/18

W katalogu WEB-INF tworzymy podkatalog (taki jaki wskazaliśmy we wpisie w pliku drugimodulservlet.xml) i umieszczamy w nim plik jsp analogiczny do poprzedniego, z tym że dla odróżnienia zmienimy troszkę jego zawartość. Sprawdźmy: Spring MVC Andrzej Klusiewicz 18/18