JAVA EE SPRING FRAMEWORK 3 + TILES2 + HIBERNATE 3 + SPRING SECURITY 3 TUTORIAL BETA. Paweł Tomaszek

Wielkość: px
Rozpocząć pokaz od strony:

Download "JAVA EE SPRING FRAMEWORK 3 + TILES2 + HIBERNATE 3 + SPRING SECURITY 3 TUTORIAL BETA. http://code.google.com/p/stackov/ Paweł Tomaszek 30.04."

Transkrypt

1 JAVA EE SPRING FRAMEWORK 3 + TILES2 + HIBERNATE 3 + SPRING SECURITY 3 TUTORIAL BETA Paweł Tomaszek pwl.tomaszek(at)gmail.com

2 SPIS TREŚCI 1. Wstęp Dygresji kilka Podział tutorialu na projekty Dostęp do projektów Słownikowa szczypta teorii IDE i związane Eclipse, JRE, JDK Kontener webowy Apache Tomcat Witaj Świecie! Witaj Chaosie! HelloWorld.war Nowy projekt Spring Framework konfiguracja Warstwa kontrolera Uruchomienie Koncepcja rozwoju projektów Szablon widoków StackOv-Tiles.war Tiles konfiguracja I warstwa prezentacji Baza danych StackOv-Hibernate.war Baza danych Hibernate konfiguracja Warstwa kontrolera Warstwa dostępu do danych Warstwa prezentacji Podsumowanie Autoryzacja StackOv-SpringSecurity.war SpringSecurity konfiguracja Warstwa prezentacji Podsumowanie All-In-One StackOv.war Bibliografia... 30

3 1. Wstęp 1.1. Dygresji kilka Dokument ma na celu przedstawienie kolejnych kroków prowadzących do stworzenia prostego serwisu internetowego. Nie ukazuje jednak, jak klik po kliku tego dokonać, ani dokładnie co, jak i dlaczego jest w danej chwili robione. Z tego powodu pogłębianie wiedzy przez korzystanie z wyszukiwarek internetowych, forów i literatury specjalistycznej jest wskazane. W Sieci znaleźć można wiele polsko- i angielskojęzycznych samouczków ukazujących różne podejścia i narzędzia związane z tematem aplikacji internetowych oraz technologii Java Enterprise Edition. Polecam korzystać z nich, samemu testować i wybierać, co jest subiektywnie lepsze. Niektóre kwestie, takie jak konfiguracja JDK z IDE, nie będą tu poruszane, ponieważ tak daleko idące powielanie wiedzy Internetu, nawet dla ateisty wydaje się być grzechem. Także niniejszy tekst dla niektórych może wydawać się swoistą kalką i w pewnym stopniu tak właśnie jest. Tutorial nie ma na calu dogłębnego wyjaśniania, czym jest JVM, JRE, JDK, IDE i inne trzyliterowe skróty. Informację o wspominanych należy czerpać z Internetu, tudzież literatury książkowej. Charakterystyka używanych bibliotek jest bardzo ogólna. Oczywistym jest, gdzie można odnaleźć odpowiednią dokumentację na ich temat. Wszystkie operacje przedstawione w dokumencie zostały wykonane w systemie Windows XP 64-bit SP3. Nie ma jednak problemu z programowaniem pod Linuksem czy innymi wersjami systemów MS (wymagania co do platformy OS znaleźć można na oficjalnych stronach deweloperów narzędzi). Frameworkowi czy frejmłorkowi? Konwencja jaką przyjąłem dla niektórych może wydawać się poprawna, a dla innych już nie. Zasady j. polskiego jasno nie precyzują jak postępować z żargonem technicznym będącym jednym z LSP (language for specific purposes). Wyznacznikiem przy pisaniu tekstu, było to, byś po prostu mogła/mógł zrozumieć o co chodzi. Styl nazewnictwa klas i plików został przyjęty z ogólnie panujących konwencji, z którymi miałem styczność (dowiedz się sama/sam, dlaczego część początkowa pakietów Java nosi nazwę odwróconego adresu internetowego). Nie wszystko będzie jasne na samym początku to normalne. Nie będzie też tłumaczone korzystanie m.in. z oficjalnej dokumentacji to chleb powszedni programisty. Z każdą kolejną stroną powinno być lepiej. Możliwe, że w tutorialu występują błędy natury językowej i technicznej daj znać, to poprawię. 1

4 1.2. Podział tutorialu na projekty Tutorial składa się z 5 projektów, z których każdy kolejny zawiera w sobie to co poprzedni + modyfikacje i nowe frameworki. Kolejne rozdziały opisują tworzenie bądź budowę każdej z aplikacji: HelloWorld.war podstawowa konfiguracja nowego projektu jedynie ze Spring Framework i stroną JSP na kontenerze Tomcat; warstwa kontrolerów; podstawowy obieg danych w szablonie MVC (w zasadzie same warstwy VC) StackOv-Tiles.war szablon widoków Tiles StackOv-Hibernate.war CRUD (zapisywanie/odczytywanie/edytowanie/usuwanie) obiektów z baz danych; konfiguracja serwera MySQL i aplikacji webowej; mapowanie obiektów Java na obiekty w bazie i vice versa za pomocą Hibernate; używanie podstawowych funkcji działania na obiektach StackOv-SpringSecurity.war autoryzacja za pomocą Spring Security; podstawowa konfiguracja i implementacja StackOv.war najbardziej rozbudowany projekt. Integruje wcześniej użyte frameworki na nieco większym poziomie; współtworzony z Grzegorzem Ilachem, odpowiedzialnym głównie za front-end oraz AJAX/JSON; tutorial Grześka oraz poruszone przez niego kwestie znajdować się będą w innym pliku, tak więc przy przeczesywaniu projektu przydadzą Ci się oba dokumenty każdy będzie poruszał inne aspekty jednej aplikacji 1.3. Dostęp do projektów Najnowsze wersje aplikacji znajdują się w repozytorium SVN w drzewie branches (dla 4 pierwszych projektów; archiwa w dziale Download mogą być przestarzałe) oraz w katalogu trunk (dla StackOv.war). Adres: 2

5 2. Słownikowa szczypta teorii Serwlet obiekt klasy Java, który potrafi odpowiadać na zgłoszenia HTTP. Kontener/serwer aplikacji pudełko, w którym egzystują serwety. Jego zadaniem jest zarządzanie przekierowaniami, transakcjami, cyklem życia serwletów, bezpieczeństwem i kilkoma innymi kwestiami. Servlet API interfejs umożliwiający interakcję pomiędzy serwletem a kontenerem webowym. MVC model, widok, kontroler. Model obiekt używany w aplikacji, jak również warstwa DAO. Kontroler klasa przyjmująca żądania i działająca na ich podstawie. Często wymusza zmiany w modelu i zwraca widok. Widok strona będąca interfejsem użytkownika, czyli po prostu wygenerowana w przeglądarce treść; widok to także określenie źródła, czyli plik HTML, JSP, JSF, itp. DAO Data Access Object. BO Business Object. 3

6 3. IDE i związane 3.1. Eclipse, JRE, JDK Pracę należy zacząć od pobrania zintegrowanego środowiska programistycznego ze wsparciem dla Java EE, np. Eclipse Helios [1] lub NetBeans. Przy pisaniu poradnika wykorzystano pierwszy z wymienionych programów. Uwaga! Mimo posiadania 64-bitowego OS, lepiej nie pobierać 64-bitowych wersji środowisk. U mnie pojawiały się problemy z IDE oraz JDK/JRE, co jest dosyć znaną przypadłością, lecz nie regułą. Jednak bezpieczniej będzie pobrać 32-bitową wersję Eclipse i Javy. Proces instalacji ogranicza się do wypakowania archiwum zip do miejsca, w którym trzymane są programy. Przy pierwszym uruchomieniu najprawdopodobniej wyskoczy taki komunikat: Rys Informacja o braku Javy Do uruchomienia Eclipse wystarczy JRE, jednak do tworzenia aplikacji niezbędne jest JDK (które notabene zawiera w sobie niezależne JRE). Dlatego, jeśli nie masz JDK, pobierz je ze strony Oracle [8]. Jeśli jest już w systemie, wystarczy, że wykonasz jedną z rzeczy: ustalisz zmienną systemową PATH na ścieżkę do javaw.exe ustawisz odpowiednią ścieżkę w pliku eclipse.ini z parametrem -vm skopiujesz JRE w folder wskazany w komunikacie, tak by plik javaw.exe był widziany przez IDE we własnym podkatalogu jre Uruchomienie aplikacji oznacza, że JRE jest poprawnie dowiązane. Kolejnym sprawą, o którą upomni się IDE, jest wskazanie katalogu workspace, w którym to będą przechowywane nowotworzone projekty. Rys Wskazanie katalogu roboczego 4

7 W razie problemów posiłkuj się stroną producenta [2]. Na sam koniec upewnij się, że w Eclipse ustawiony jest widok Java EE. Zmiana perspektywy: Window > Open Perspective > Other > Java EE Jeśli dopiero zaczynasz przygodę z Eclipse lub w ogóle z programowaniem z użyciem IDE, polecam pobawić się w klikanego: najeżdżać myszą nad przyciski, czytać opisy i wciskać je, jeśli przyjdzie na to ochota. Eclipse jest bardzo stabilne i dopóki przed klawiaturą nie posadzi się kilku małp, nic nie powinno się stać. Drobne zepsucie czegoś (przestawienie widoku, usunięcie pasków narzędzi czy paneli) i późniejsze naprawienie, sprawi, że poczujesz się pewniej z platformą Kontener webowy Apache Tomcat Aplikacje stworzone w technologii Java EE uruchamia się w specjalnym środowisku kontenerze webowym (serwerze Java EE). Jednym z nich jest Tomcat. Inne to m.in. GlassFish i JBoss. Na poziomie zabawy z technologią Java EE wybór kontenera nie ma większego znaczenia. Warto jednak zaznaczyć, że Tomcat pracuje w miarę stabilnie (czasem są problemy z publikowaniem zmian) i szybko się uruchamia, co dla środowiska developerskiego jest dużym plusem. Dywagacje na temat wyższości jednych rozwiązań nad innymi, znaleźć można m.in. w publikacjach internetowych. Instalacja serwera obejmie 7. wersję Tomcata: Pobierz Tomcat 7.0 ze strony Tomcat Apache [5]. Ściągnij odpowiednią paczkę (np. 32-bit Windows zip) i rozpakuj ją do folderu programów. W Eclipse kliknij PPM (Prawy Przycisk Myszy) w panelu Servers > New > Server. Rys Panel serwerów Z listy wybierz Apache/Tomcat v7.0 Server i kliknij Next. Podaj lokalizację serwera i zakończ kreator. 5

8 Rys Powiązanie projektu z kontenerem Na liście serwerów pojawiła się nowa pozycja. Zaznacz ją i kliknij w ikonę strzałki na zielonym tle, oznaczoną jako Start the server. Wpisz w oknie przeglądarki (zewnętrznej lub wewnętrznej) adres Jeśli pojawi się okienko powitalne Tomcat, jest dobrze. W innym przypadku należy zdiagnozować, co jest nie tak. Zastopuj serwer, wejdź w katalog Tomcata, a dalej w podfolder bin. Wciśnij na klawiaturze Win+r, wpisz cmd. Na otwartą konsolę przeciągnij i upuść plik startup.bat. Jeśli wyskoczył błąd dotyczący: JAVA_JRE, ustaw zmienną systemową o tej nazwie na katalog zainstalowanego JDK. CATALINA_HOME, ustaw zmienną systemową o tej nazwie na katalog wypakowanego Tomcata. 6

9 Poprawny start powinien prezentować się mniej-więcej tak: Rys Start serwera z poziomu konsoli Komunikat o APR można zignorować. Chodzi o to, że dodatkowe biblioteki mogą zoptymalizować działanie Tomcata. Jeśli chcesz, możesz z nich skorzystać. By zatrzymać serwer, wciśnij Ctrl+C lub uruchom shutdown.exe z podkatalogi bin. Przetestuj działanie kontenera z poziomu Eclipse. Jeśli pojawia się Error 404, zastopuj serwer, wejdź w jego ustawienia i zaznacz opcję Use Tomcat Installation. Zapisz zmiany i uruchom serwer. Jeśli po jego włączeniu pojawia się strona powitalna, pozostaw taką konfigurację. Jednak w takim przypadku dobrze jest usunąć przykładowe projekty z folderu webapps katalogu Tomcata, by uniknąć ich deployowania przy każdym starcie serwera (zwróć uwagę na logi konsoli). 7

10 4. Witaj Świecie! Witaj Chaosie! HelloWorld.war Nie wyłamując się z konwencji, czas na Przywitanie! Jeśli nie masz ochoty na wykonywanie poniższych kroków, skorzystaj z przygotowanego projektu HelloWorld.war, który zawiera w sobie prawie dokładnie to samo (zewnętrzne biblioteki nie są dodawane do archiwów oszczędność miejsca. Musisz je dodawać indywidualnie do każdego projektu.), co otrzymałabyś/otrzymałbyś po przebrnięciu przez paragrafy. Dojdź samodzielnie, jak go zaimportować. Przedstawione w rozdziale (i kolejnych) informacje z pewnością nie będą od razu jasne. Nie jest moją intencją tłumaczenie wszystkiego. Od tego jest odpowiednia literatura i inne tutoriale, a także niezbędne godziny spędzone przed monitorem. Powodzenia! 4.1. Nowy projekt By utworzyć nowy projekt, wyklikaj: File > New > Dynamic Web Project Okno powinno zostać wypełnione, jak na poniższym obrazku. Rys Okno tworzenia nowego projektu 8

11 Wersja modułu odpowiada wersji serweta, który ma dostęp do API (także w odpowiedniej wersji). Wybór 3.0 API Servlet pociąga za sobą pewne wymogi: wersja JDK >=1.6 kontener webowy Tomcat >=7.0 Jeśli nie stać programisty na luksus 3.0, może zmienić wersję na np. 2.5, która znacznie obniża wymagania, lecz nie ma większego wpływu na docelowe działanie aplikacji, która i tak będzie jedynie zabawką, niekorzystającą z najnowszych usług Java EE. Jeszcze dwa kliknięcia w Next i okno dialogowe przeniesie Cię do ostatniego punktu dialogowego. Upewnij się, że zostało zaznaczone pole Generate web.xml deployment descriptor, a następnie wciśnij Finish. Deskryptor web.xml jest sercem aplikacji; definiuje serwety oraz ich parametry, np. mapowanie adresu czy kodowanie znaków w kontekście całej aplikacji. Więcej o jego zadaniach przeczytasz w kolejnych rozdziałach. W lewym panelu pojawi się drzewo projektu z szeregiem odnóg. Interesujące są: Java Resources miejsce, w którym znajdować się będą pisane klasy Java WebContent zasoby aplikacji: widoki jsp, konfiguracja serwletów i bibliotek, ale także obrazki, js, style css, itp Spring Framework konfiguracja Z pewnością wiesz (przynajmniej ogólnikowo), czym jest Spring Framework. Czas na jego implementację w projekcie. Odpowiednie biblioteki (rys. 4.4.) pobrane ze strony Spring Source [7] umieść w katalogu WebContent/WEB- INF/lib. To będzie standardowe miejsce dla wszystkich dodawanych jarów. Konfiguracja web.xml: <?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi=" xmlns=" xmlns:web=" xsi:schemalocation=" id="webapp_id" version="3.0"> <!-- Ustawienie kodowania w obrębie aplikacji Standardem jest UTF-8 --> <filter> <filter-name>characterencodingfilter</filter-name> <filter-class>org.springframework.web.filter.characterencodingfilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceencoding</param-name> <param-value>true</param-value> </init-param> </filter> <!-- UrlRewriteFilter FILTER Odpowiednio modyfikuje adresy URI. O co chodzi widać w pliku konfiguracyjnym urlrewrite.xml --> <filter> <filter-name>urlrewritefilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.urlrewritefilter</filter-class> </filter> <!-- Konfiguracja servleta. 9

12 Najechanie myszką na kolejne bloki powinno wyświelić stosowną pomoc. Ważnym elementem jest blok <param-value> określający miejsce, w którym znajduja się pliki konfiguracyjne dla serwleta. Dane umieszczane w bloku, są inicjalizowane przez VJM i umieszczane w wirtualnej pamięci w obiekcie ServletContext, do którego można w razie potrzeby odwołać się w kodzie Java. --> <display-name>helloworld</display-name> <servlet> <servlet-name>helloworld</servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value> /WEB-INF/config/*-config.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- Określenie, jakie żądania będzie odbierał serwlet. Może być to np. <url-pattern>*.hw</url-pattern>. W tym przypadku, jeśli zostałoby wywołane żądanie inne niż z zakończeniem.hw, servlet nie obsłużyłby go. --> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/app/*</url-pattern> </servlet-mapping> <!-- Klasa obsługująca pliki konfiguracyjne --> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <context-param> <param-name>contextconfiglocation</param-name> <param-value> /WEB-INF/config/*-config.xml </param-value> </context-param> <!-- Mapowanie wszyskich żądań przez CharacterEncodingFilter --> <filter-mapping> <filter-name>characterencodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Mapowanie wszyskich żądań przez UrlRewriteFilter --> <filter-mapping> <filter-name>urlrewritefilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> Korzystanie z urlrewrite nie jest niezbędne, lecz warto znać to narzędzie, gdyż przy rozbudowanej aplikacji może okazać się bardzo pomocne. O bibliotece przeczytasz w oficjalnej dokumentacji [9], a ogólnikowo, narzędzie pozwala na zmianę wywoływanych adresów na inne, zdefiniowane w pliku konfiguracyjnym. Konfiguracja urlrewrite.xml: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//dtd UrlRewrite 3.0//EN" " <urlrewrite default-match-type="wildcard"> <rule> <from>/images/**</from> <to>/images/$1</to> </rule> <rule> <from>/js/**</from> <to>/js/$1</to> </rule> <rule> <from>/css/**</from> <to>/css/$1</to> </rule> <rule> <from>/**</from> <to>/app/$1</to> </rule> 10

13 <outbound-rule> <from>/app/**</from> <to>/$1</to> </outbound-rule> </urlrewrite> Zgodnie z kodem web.xml, w odpowiednim miejscu należy utworzyć folder config. Będą w nim przechowywane konfiguracje obejmujące różne części aplikacji, a więc konfiguracje dla dołączanych bibliotek. Na początek ustawienia dla Springa. Należy dodać plik app-config.xml, a w jego wnętrzu umieścić: <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:p=" xmlns:context=" xmlns:mvc=" xsi:schemalocation=" > <!-- W podanej ścieżce powinny znajdować się pliki kontrolerów. Kontroler znajdujący się w innej ścieżce (np. pl.com.maslo) nie zostanie przeskanowany podczas wywołania żądania. Kontroler znajdujący się głębiej (np. pl.com.helloworld.maslo.cukierek) zostanie sprawdzony pod kątem pasowania do żądania. --> <context:component-scan base-package="pl.com.helloworld" /> <!-- Włączenie obsługi adnotacji Springa. --> <mvc:annotation-driven /> <!-- Lokalizacja dla pliku startowego po wywołaniu 'gołęgo' żądania serwletu. Po wpisaniu przekierowanie trafi do pliku redirect --> <mvc:view-controller path="/" view-name="redirect" /> <!-- Obsługa tylko pewnego typu plików dla widoków. Wg poniższego zapisu wszystkie widoki brane pod uwagę przez kontrolery muszą się znajdować w katalogu /WEB-INF/jsp/ i muszą mieć rozszerzenie.jsp --> <bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="prefix" value="/web-inf/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans> Idąc dalej, oto kod dla pliku redirect.jsp, który ma się znaleźć w folderze jsp: <%@page contenttype="text/html" pageencoding="utf-8"%> <!-- Bezpośrednie przekierowanie do welcome. Zostanie wygenerowany URL o adresie HelloWorld/welcome --> <% response.sendredirect("welcome"); %> W poszukiwaniu kontrolera obsługującego żądanie welcome, zostaną zbadane klasy w ścieżce pl.com.helloworld zdefiniowanej uprzednio w pliku app-config. 11

14 4.3. Warstwa kontrolera By serwlet odnalazł pakiet oraz kontroler, należy je utworzyć. W tym celu rozwiń drzewo Java Resources, kliknij PPM na src > New > Package. Wprowadź nazwę pl.com.helloworld i zatwierdź. Analogicznie dodaj do pakietu klasę Java (Class) o nazwie WelcomeController. Jego zawartość wypełnij tak: package pl.com.helloworld; import java.io.ioexception; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; import public class WelcomeController { = "welcome", method = RequestMethod.GET) public String start() throws IOException { System.out.println("hello z kontrolera! "); return new String("/welcome"); } definiuje klasę jako kontroler. Wszystkie pliki oznaczone w ten sposób są przeszukiwane w celu znalezienia pasującej maski dla żądania (definiowanej za Każdy kontroler może obsługiwać wiele żądań zdefiniowanych w kolejnych metodach. W pierwszy parametr odpowiada żądaniu, które obsłuży metoda kontrolera. Drugi to typ żądania (którego nie trzeba definiować na tym etapie projektu, lecz w trakcie rozrostu aplikacji, podział na obsłużenie żądania typu GET, POST i innych, będzie wymagany). Klasa zwraca obiekt klasy String, który w kontekście kontrolera Spring uznawany jest za nazwę pliku widoku. Przypomnij sobie linijki <property name="prefix" value="/web-inf/jsp/"/> <property name="suffix" value=".jsp"/> z pliku app-config.xml i zwróć uwagę, dlaczego mimo podania tylko części nazwy widoku i zupełnym braku ścieżki, kontroler zapewne zwróci poprawny widok. Oczywiście zwróci go, jeśli plik welcome.jsp będzie istniał. Utwórz go w odpowiedniej ścieżce i wstaw kod: <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <h2> Hello World! </h2> 4.4. Uruchomienie Projekt wydaje się być skonfigurowany. Pozostaje go odpalić na kontenerze webowym. Wykonaj wybraną czynność: PPM na projekcie > Run As > Run on Server. Wybierz skonfigurowany uprzednio serwer; kliknij Next. kliknij PPM na serwerze > Add and Remove. 12

15 Rys Uruchamianie aplikacji na serwerze Każde z działań doprowadzi Cię do punktu, w którym definiuje się powiązanie aplikacji z kontenerem. Lewa strona zawiera indeks otwartych niepowiązanych projektów, które nie będą publikowane; natomiast prawa listę projektów, które będą instalowane przy starcie/restarcie serwera. Upewnij się, że HelloWorld znajduje się po prawej stronie panelu i kliknij Finish. 13

16 Twym oczom w automagicznie powstałym oknie (o ile wybrałeś pierwszą czynność z początku podrozdziału. Jeśli nie, musisz sam uruchomić serwer i uruchomić wewnętrzną przeglądarkę webową) powinien ukazać się mniej-więcej taki widok: Rys Działająca aplikacja Zwróć uwagę na wiadomość z konsoli (zerknij na kod kontrolera). Oczywiście stronę można oglądać także pod zewnętrznymi przeglądarkami wpisując odpowiedni adres. W ustawieniach Eclipse można dokonać wyboru wewnętrznej przeglądarki. Wartym zauważenia jest, że po modyfikacji jakiegokolwiek pliku i zapisaniu go, w panelu Servers widać poruszenie (zmianę statusu), a w Console nowe logi. Otóż nowoutworzona instancja Tomcata posiada domyślne ustawienie ponownego publikowania (ang. redeploy, republish) danych po każdej aktualizacji tychże. Oczywiście można to zostawić w spokoju, jednak przy większym projekcie taka funkcja jest wielce niepożądana. Aby ją wyłączyć należy kliknąć dwukrotnie na serwer Tomcata w panelu Servers, odnaleźć pole 14

17 Publishing, rozwinąć je, zaznaczyć Never publish automatically, zamknąć zakładkę potwierdzając dokonane zmiany. Od tej chwili deploy będzie odbywał się tylko na żądanie. A oto dotychczasowa struktura projektu: Rys Struktura projektu 15

18 5. Koncepcja rozwoju projektów Znasz podstawy, więc teraz zacznie się ciekawsza zabawa. Załóżmy, że na potrzeby kursu stworzymy prostą stronę a la Stack Overflow [12]. Projekt będzie zawierał: kompozycyjny podział widoku strony (Tiles) dostęp do bazy danych (Hibernate Framework) logowanie (Spring Framework) dodawanie postów (asynchronicznie AJAX/JSON) ocenianie postów (asynchronicznie AJAX/JSON) Jeśli chcesz, zmień nazwę projektu oraz pakietów na coś bardziej odpowiedniego. U mnie będzie to mało oryginalne StackOv. Poza zmianą nazwy projektu, można też zmienić nazwę serwletu w pliku web.xml; w przypadku zmiany nazwy pakietu w folderze src, wymagana jest aktualizacja ścieżki dla kontrolerów w pliku app-config.xml. Aby odnaleźć wzorce tekstowe w projekcie, można pomóc sobie narzędziem wyszukiwania i zamiany (Ctrl+H). By nie rozciągać tutoriala, zmienię nieco kwestię przybliżania kodu źródłowego. Od teraz będę się powoływał do plików i interesujących jego części zamiast listować źródła. Cały kod oraz obszerniejszy komentarz będzie natomiast do zobaczenia po zaimportowaniu kolejnych archiwów projektu i przeczesywaniu jego struktury. 16

19 6. Szablon widoków StackOv-Tiles.war Rozdział ten jest poświęcony frameworkowi Apache Tiles. Umożliwia on kompozycyjny podział layoutu i wygenerowanie widoku. Każdy z elementów strony, jak stopka, menu czy treść główna, muszą znajdować się w oddzielnych plikach. Rys Model kompozycyjny [10] Nieco inne podejście stosuje się w podziale dekoracyjnym, którego używa m.in. Sitemesh, będący jedną z kilku alternatyw dla Tiles. Różnice w obu technologiach dokładniej opisane są na stronie Apache Tiles [10]. 17

20 6.1. Tiles konfiguracja I warstwa prezentacji Po imporcie StackOv-Tiles.war dodaj do projektu odpowiednie biblioteki (rys. 6.2.) z dostarczonego zbioru lub ze strony producenta [11]. Rys Biblioteki Wejdź w folder jsp. Zauważysz tam plik include.jsp oraz folder tiles-templates, w którym znajduje się kilka plików. include.jsp zawiera w sobie importowane ścieżki do wykorzystywanych bibliotek tagów, styli css czy skryptów js. Sam plik jest z kolei importowany w widokach jsp korzystających z wcześniej wymienionych usług. Oczywiście pozycje z include.jsp można samodzielnie importować w widokach, ale zasada stosowana w projekcie wydaje się nieco lepsza. Konfiguracja Tiles opiera się na dwóch plikach xml: tiles-config.xml, w którym zawarta jest ścieżka do biblioteki dla wywołań oraz adres konfiguracyjny dla definicji widoków; tiles-defs.xml, w którym znajdują się definicje widoków. Same nazwy plików w folderze tiles-templates niosą sobą informacje o ich przeznaczeniu. Najciekawiej z nich prezentuje się plik layout.jsp, w którym zawarte są importy odpowiednich części całego widoku użytkownika. <tiles:insertattribute name="menu" /> <tiles:insertattribute name="content" /> <tiles:insertattribute name="footer" /> Plik ten tworzy strukturę portalu, którą tak jak w normalnym pliku jsp, można wspomagać np. blokami div w celu tworzenia odpowiedniego położenia części strony. W naszym przypadku całość będzie wyglądała jak wielopoziomowy tort, więc zwykły import bez używania bloków powinien załatwić sprawę. Czas na przyporządkowanie importowanych atrybutów. W jaki sposób menu, content i footer mapują odpowiednie strony jsp? Spójrz na tiles-defs.xml: <definition name="base.definition" template="/web-inf/jsp/tiles-templates/layout.jsp"> <put-attribute name="menu" value="/web-inf/jsp/tiles-templates/menu.jsp" /> <put-attribute name="content" value="" /> <put-attribute name="footer" value="/web-inf/jsp/tiles-templates/footer.jsp" /> 18

21 </definition> Element definicji nazwany base.definition określa główny szablon strony, którym jest layout.jsp. Kolejne atrybuty definiowane po nazwie wskazują na pliki, które mogą być wstrzykiwane w odpowiednich miejscach w layout.jsp. menu oraz footer są określone od razu. content będzie trzeba przesłaniać. <definition name="/*" extends="base.definition"> <put-attribute name="content" value="/web-inf/jsp/{1}.jsp"/> </definition> <definition name="*/*" extends="base.definition"> <put-attribute name="content" value="/web-inf/jsp/{1}/{2}.jsp"/> </definition> <definition name="*/*/*" extends="base.definition"> <put-attribute name="content" value="/web-inf/jsp/{1}/{2}/{3}.jsp"/> </definition> Każde pasujące żądanie zostanie przepuszczone przez którąś z definicji dziedziczących po base.definition. Definicje potomne domyślnie zawierają to samo co element po którym dziedziczą. Przesłaniają jedynie to, co potrzeba, a są wywoływane jedynie, jeśli pasują do żądania określonego w parametrze name. W aplikacji zależnie od zagnieżdżenia linku widoku zwracanego z kontrolera, odpowiednio pasujący plik będzie ustawiany jako wartość dla atrybutu content. Najlepiej będzie sprawdzić to na przykładzie. W zasadzie wszystko już zostało skonfigurowane i po odpaleniu serwera, tak jak w poprzednim przykładzie, powinieneś zobaczyć treść powitalną, a prócz tego także menu i stopkę. Jak możesz sprawdzić, w kontrolerze zwracany jest napis /welcome. Przez skonfigurowanie Tiles, owy tekst przechodzi przez definicje, wpasowuje się w wyrażenie /* i zostaje uznany jako część ścieżki do pliku stanowiącego obszar content całej wyświetlanej strony. menu i footer są już domyślnie określone w definicji nadrzędnej. Poszczególne części są składane w całość w layout.jsp, a następnie właśnie ten dynamicznie skonstruowany plik jest renderowany i zwracany w przeglądarce jako widok. Dotychczas opisywany projekt znajduje się w archiwum StackOv-Tiles.war. Dodatkowo dodany został pakiet oraz widok dla podstrony O stronie, a także styl css. 19

22 7. Baza danych StackOv-Hibernate.war Hibernate Framework udostępnia funkcje realizujące mapowanie relacyjnych baz danych na obiekty Java i na odwrót. Innymi słowy pozwala na przyjemne wykorzystanie bazy danych w projekcie opartym na aplikacji Java EE Baza danych W projekcie używany będzie serwer MySQL, a dostęp do bazy odbywał się będzie przez aplikację phpmyadmin. Oba komponenty znaleźć można w pakiecie XAMPP [14]. Do uruchomienia phpmyadmin należy włączyć serwer Apache oraz MySQL, a następnie kliknąć przycisk Admin przy drugim. Korzystanie z aplikacji raczej nie powinno stanowić problemu, szczególnie jeśli masz dostęp do Internetu. Jeśli Apache nie startuje, to zapewnie pracuje na zajętym porcie, wykorzystywanym np. przez aktualnie używanego klienta komunikatora. Zlokalizuj aplikację korzystającą z portu i zamknij ją. Po uruchomieniu Apache ponownie włącz aplikację, która być może znajdzie sobie inny port wilk syty i owca cała. Działanie Apache jest wymagane jedynie do phpmyadmin, natomiast do samego projektu Java EE nie jest potrzebne. Na początek utwórz użytkownika sodb (z hasłem) na hoście lokalnym, mającego nadane wszystkie uprawnienia do bazy o tej samej nazwie Hibernate konfiguracja Do zaimportowanego projektu StackOv-Hibernate.war powinieneś dołączyć odpowiednie biblioteki pobrane ze strony producenta [13]. U mnie najnowsza wersja (3.6.3) powoduje problemy. By nie szukać zależności (a nie używam Mavena) zdecydowałem się na skorzystanie ze starszej wersji Hibernate i zależności, z których korzystałem w dawnych projektach. Zbiór bibliotek dla aktualnego projektu widać na rysunku

23 Rys Biblioteki Zajrzyj do katalogu konfiguracyjnego aplikacji i zerknij na plik hibernate-config.xml. W tym jednym pliku zostały ustawione obiekty umożliwiające dostęp do bazy. W komentarzach zostało wyjaśnione co i jak. Istotną rzeczą jest, że wszystkie klasy będące odzwierciedleniami encji w bazie danych muszą być umieszone w pakiecie zdefiniowanych w pliku hibernate-config.xml jako packagestoscan pl.stackov.classes. Z kolei jdbc.properties opisuje parametry połączenia z bazą i konfiguracją Hibernate. Znaczenia konkretnych pól są wyjaśnione w dokumentacji. Zanim przejdziemy dalej, uruchom aplikację. Zauważysz nowy link Lista tematów. Kliknij w niego. Powinna wyświetlić się lista pusta tematów. W kolejnych podrozdziałach znajdziesz wytłumaczenie jak to działa. 21

24 7.3. Warstwa kontrolera Wszystkie obiekty z znajdujące się w pakiecie pl.stackov.modules są przeszukiwane przez Spring przy każdym żądaniu. Jeśli żądanie pasuje do kontrolera, tudzież jego funkcji, to ta funkcja jest wywoływana. W ciele każdej metody można robić wiele, np. pracować na obiektach dostarczonych w żądaniu czy wysyłać dane do zwracanych widoków. Najlepiej prześledzić to na przykładzie: Dodawanie nowych tematów. Jest to możliwe dzięki funkcji add() klasy TopicController, która przenosi użytkownika do formularza w katalogu jsp/edit.jsp. Tam po uzupełnieniu tytułu i zatwierdzeniu, obiekt klasy Temat jest przechwytywany przez żądanie w funkcji add2(), która pociąga do pracy funkcje serwisowe obiektu TopicService, a na końcu przekierowuje do listy tematów. Całość działa wg schematu MVC. Kliknięcie linku w interfejsie użytkownika (View) powoduje wywołanie reakcji w kontrolerze (Controller). W nim mogą nastąpić operacje na bazie danych (Model), po czym zwracany jest kolejny widok użytkownika (View), będący najbardziej zewnętrzną formą odpowiedzi na wcześniej wywołane żądanie. I tak w kółko. Spójrz na obrazki pomocnicze. Rys Poziom zagnieżdżenia warstw architektury trójwarstwowej. Na podstawie [15] Warstwa biznesowa z rysunku 7.2. odpowiada warstwie serwletu, który odbiera wszystkie żądania; kontrolerom, do których trafiają przekierowane z serwlet żądania; oraz klasom pomocniczym, do których odwołują się kontrolery, a które wykonują operacje biznesowe (jednak nie na danych. Dopiero te funkcje wywołują kolejne stanowiące interfejs warstwy danych). Rys Związek pomiędzy modelem, kontrolerem i widokiem. Na podstawie [16] Jak widać z rysunku 7.3. kontroler jest pośrednikiem pomiędzy warstwą widoku i dostępu do danych. Jak zauważyłaś/zauważyłeś w kontrolerze znajduje się obszerny komentarz, dlatego w tym paragrafie opuszczę tłumaczenie co z czym. 22

25 7.4. Warstwa dostępu do danych Zwróć uwagę, że w bazie danych została utworzona nowa tabela temat, a przecież nie było wzmianki o jakimkolwiek kodzie SQL. Hibernate i jego adnotacje pozwalają na automatyczne tworzenie tabel w bazie danych po zdefiniowaniu jedynie klas Java (odpowiada za to parametr hibernate.hbm2ddl.auto=update w hibernate-config.xml)! Zerknij na nowy pakiet.classes, a w nim na klasę Temat.java będąca odpowiednikiem automatycznie wygenerowanej encji temat w bazie danych. Opisywanie wykorzystanych adnotacji mija się z celem, gdyż dokumentacja na ten temat jest naprawdę obfita, a sama struktura niezwykle prosta. Wystarczy wiedzieć, że tak zdefiniowana klasa samoistnie zdefiniuje się w bazie, jeśli oczywiście tabela o tej nazwie nie będzie jeszcze istniała. OK, tabela już jest, lecz brak w niej rekordów. Dodawanie rekordu z poziomu warstwy modelu jest dosyć proste i przedstawia się jak na schemacie: Rys Rozgraniczenie warstwy biznesowej od warstwy dostępu do danych Jesteśmy w widoku formularza dodawania tematu. Po podaniu nazwy tematu kontroler (opisany w poprzednim paragrafie) wywołuje funkcje addtopic(form) z klasy serwisowej BO TopicService (oznaczonej Ta z kolei wywołuje metodę addtopic(temat) z klasy DAO TopicDAO (oznaczonej Owa klasa korzysta z pomocniczej wstrzykniętej (@Autowired) klasy hibernatetemplate i wywołuje funkcję add(object) dodawania rekordu do bazy danych. Prześledź cały mechanizm na spokojnie i porównaj z metodami realizującymi inne funkcjonalności. Być może zastanawiasz się dlaczego nie wykorzystałem takiego schematu: Rys Wymieszane w jednej płaszczyźnie funkcjonalności warstwy biznesowej i warstwy dostępu do danych 23

26 Byłoby o dwie klasy mniej (interfejs i implementacja BO), a tak następują po sobie niepotrzebne wywołania kolejnych metod kolejnych interfejsów. Otóż tak też można by zrobić, jednak w trakcie rozrostu projektu wspólny obszar warstwy czysto biznesowej i dostępu do danych niemal na pewno przysporzyłby wielu problemów. Odseparowanie warstw skutkuje lepszą czytelnością, a także ewentualną refaktoryzacją. Zasada jaką powinieneś/powinnaś się kierować jest taka w klasach oznaczonych mają znajdować się metody bezpośrednio działające na bazie tu dobrze umieścić jest logikę biznesową (notabene możliwą do wykonania w kontrolerze, ale z racji, że kontroler powinien być czysty na ile to możliwe, lepiej przenieść ją w te klasy). Dodatkowo, wymienione wyżej adnotacje istnieją nie ot tak sobie. Spring robi z nich użytek, i tak np. w klasie oznaczonej jako DAO (@Repository), można określić role klasy w kontekście całej aplikacji, przyznając dodatkowe możliwości czy ograniczenia (np. nazewnictwo instancji klas w aplikacji, rodzaj transakcyjności), poprzez definiowanie atrybutów danej adnotacji. Nie będzie to wykorzystywane w tym projekcie, ale warto o tym pamiętać. Wartym zauważenia jest fakt, że dodanie nowej warstwy interfejsu, w pewnym stopniu powoduje zwiększenie zapotrzebowania systemu, a także doprowadza do nieco dłuższego wywołania ostatecznego kodu. Jest to cena za zastosowanie zwiększonej modularności, która jednak nie ma dużego znaczenia przy niniejszym projekcie, dla którego prędkość działania nie jest krytycznie ważnym atrybutem. TopicDAOImpl.java najciekawiej prezentująca się klasa warstwy biznesowej ma bezpośredni dostęp do bazy danych. Po wstrzyknięciu obiektu HibernateTemplate (zerknij na hibernate-config.xml i ostatnie linijki) można łatwo korzystać z funkcji operujących na rekordach bazy. Przyjrzyjmy się jednej public List<Temat> getlistoftopics() { DetachedCriteria criteria = DetachedCriteria.forClass(Temat.class); List<Temat> list = hibernatetemplate.findbycriteria(criteria); } return list; Pierwsza adnotacja informuje Spring, by nie sygnalizował ostrzeżeń związanych z rzutowaniem obiektów (wyciągane rekordy umieszczane w liście tematów). Kolejna oznacza, że metoda jest przesłaniana i definiowana z implementowanego interfejsu. DetachedCriteria to klasa pomocnicza służąca do tworzenia zapytań. Nie używany jest jednak SQL, a po prostu metody pozwalające na określenie o co nam chodzi. Stworzone zapytanie może zostać użyte jako parametr do funkcji findbycriteria(detachedcriteria) wyciągającej dane z bazy. Możliwe jest również używanie czystego SQL i użycie funkcjo find(string). Funkcja zwraca listę obiektów Temat, która po drabinie zagnieżdżenia wędruje do warstwy serwisowej, gdzie funkcja getlistoftopics() została wywołana (a dalej do kontrolera, gdzie z kolei została wywołana funkcja serwisowa getlistoftopics() i ostatecznie do zwracanego przez kontroler widoku). 24

27 7.5. Warstwa prezentacji <h2>lista tematów</h2> <a href="add">dodaj temat</a> <table> <c:foreach items="${topics}" var="item"> <tr> <td><c:out value="${item.id}" /></td> <td><c:out value="${item.tytul}" /></td> <td><a href="edit?id=<c:out value="${item.id}"/>">edytuj</a></td> <td><a href="delete?id=<c:out value="${item.id}"/>">usuń</a></td> </tr> </c:foreach> </table> Powyższy kod nie wymaga wielu wyjaśnień. Ot korzystając ze znaczników HTML i JSTL następuje iteracja po otrzymanej z kontrolera liście i wyświetlenie wyników Podsumowanie W pliku JSP zauważ dodatkowo wygenerowane linki do edycji i usuwania pozycji. Żądania po ich kliknięciu trafiają do tego samego kontrolera i dalej do odpowiednich metod. Ich działania nie będę opisywał. Spróbuj samodzielnie do tego dojść bazując na opisanych wyżej informacjach. Rozdział jest dosyć trudny, gdyż w stosunku do rozdziału HelloWorld, doszła kolejna warstwa dostępu do danych; a sama warstwa kontrolera także się skomplikowała. Przy testowaniu aplikacji zwracaj uwagę na logi konsoli. Znajdziesz tam informacje tym co się w danej chwili dzieje co zostało wywołane, co robi Hibernate, itp. W razie problemów właśnie tam można znaleźć pomocne dane. 25

28 8. Autoryzacja StackOv-SpringSecurity.war Zabezpieczmy aplikację tak, by: dostęp do listy tematów miał każdy (zarówno zalogowany jak i niezalogowany użytkownik) każdy widział linki dodawania/edycji/usuwania tematów tylko zalogowany zwykły użytkownik lub administrator mógł dodawać i edytować tematy wyłącznie administrator mógł usuwać pozycje każdy zalogowany użytkownik miał swój dodatkowy panel administrator miał dodatkowo swój super tajny panel 8.1. SpringSecurity konfiguracja Na początek odpowiednie biblioteki ze strony Spring Security [17] wrzuć do katalogu lib (rys. 8.1.). Rys Biblioteki 26

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

Załącznik 1 instrukcje instalacji Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych

Bardziej szczegółowo

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application

Bardziej szczegółowo

Podstawowe wykorzystanie Hibernate

Podstawowe wykorzystanie Hibernate Podstawowe wykorzystanie Hibernate Cel Wykonanie prostej aplikacji webowej przedstawiającą wykorzystanie biblioteki. Aplikacja sprawdza w zależności od wybranej metody dodaje, nową pozycje do bazy, zmienia

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

Bardziej szczegółowo

Aplikacje internetowe - laboratorium

Aplikacje internetowe - laboratorium Aplikacje internetowe - laboratorium Administracja serwerem aplikacji. Celem ćwiczenia jest zainstalowanie i administracja prostym serwerem aplikacji. Ćwiczenie zostanie wykonane przy użyciu popularnego

Bardziej szczegółowo

Enterprise JavaBeans (EJB)

Enterprise JavaBeans (EJB) Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z sesyjnymi komponentami Enterprise JavaBeans. Zilustrowane będą różnice między komponentami stanowymi i bezstanowymi. Pokazane będzie

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Przykłady na podstawie zadań lab. z przedmiotu Technologie internetowe

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Pages Celem ćwiczenia jest zbudowanie kilku prostych stron internetowych z użyciem technologii JSP. Podczas ćwiczenia wykorzystany zostanie algorytm sortowania bąbelkowego

Bardziej szczegółowo

Pracownia internetowa w szkole ZASTOSOWANIA

Pracownia internetowa w szkole ZASTOSOWANIA NR ART/SBS/07/01 Pracownia internetowa w szkole ZASTOSOWANIA Artykuły - serwery SBS i ich wykorzystanie Instalacja i Konfiguracja oprogramowania MOL Optiva na szkolnym serwerze (SBS2000) Artykuł opisuje

Bardziej szczegółowo

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Wykład 3 Inżynieria oprogramowania Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Instalacja systemu zarządzania treścią (CMS): Joomla

Instalacja systemu zarządzania treścią (CMS): Joomla Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

Bardziej szczegółowo

Instrukcja instalacji

Instrukcja instalacji Instrukcja instalacji Niniejsza instrukcja obejmuje instalację krok po kroku narzędzi potrzebnych do uruchomienia aplikacji ERS pod systemem Windows. Ze względu na uniwersalność użytych rozwiązań możliwe

Bardziej szczegółowo

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

PROJEKTOWANIE APLIKACJI INTERNETOWYCH PROJEKTOWANIE APLIKACJI INTERNETOWYCH LABORATORIUM NR 2 REJESTRACJA NA WEBRATIO.COM 1. Wejdź na webratio.com i zarejestruj konto na uczelniany adres email (@wi.zut.edu.pl). 2. Po wpisaniu danych i zatwierdzeniu,

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0 Instrukcja instalacji środowiska testowego na TestingCup 2017 wersja 1.0 Spis treści: 1. Wstęp Błąd! Nie zdefiniowano zakładki. 2. Konfiguracja sprzętowa 2 3. Instalacja bazy danych MySQL 5.7 2 4. Import

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

XML-owe bazy danych ćwiczenia 1

XML-owe bazy danych ćwiczenia 1 XML-owe bazy danych ćwiczenia 1 Pierwsza część ćwiczeń będzie zapoznaniem się z przykładową bazą danych dokumentów XML dbxml oraz bazą danych obiektowo-relacyjną Oracle, która pozwala na przechowywanie

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Spring Web MVC, Spring DI

Spring Web MVC, Spring DI Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 5 Spring Web MVC, Spring DI Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Technologie Technologie / narzędzia będące

Bardziej szczegółowo

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP W tym opracowaniu opisano, jak korzystać z edytora zasad grupy do zmiany ustawień zasad lokalnych dla

Bardziej szczegółowo

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień: Zasady grupy (GPO) Windows Server 2008 R2 Zasady grupy to potężne narzędzie udostępnione administratorom systemów Windows w celu łatwiejszego zarządzania ustawieniami stacji roboczych. Wyobraźmy sobie

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

Załącznik 1 instrukcje instalacji Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800.

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800. Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800. Wraz z niniejszym tutorialem, dołączone są 4 pliki (krok0, krok1, itd). Nie należy ich

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Uruchamianie bazy PostgreSQL

Uruchamianie bazy PostgreSQL Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL

Bardziej szczegółowo

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami Dotyczy programów opartych na bazie BDE: Menedżer Pojazdów PL+ Ewidencja Wyposażenia PL+ Spis treści: 1. Wstęp...

Bardziej szczegółowo

Współpraca z platformą Emp@tia. dokumentacja techniczna

Współpraca z platformą Emp@tia. dokumentacja techniczna Współpraca z platformą Emp@tia dokumentacja techniczna INFO-R Spółka Jawna - 2013 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax (33) 853 04 06 e-mail: admin@ops.strefa.pl Strona1

Bardziej szczegółowo

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter Konfiguracja i przygotowanie przykładowej aplikacji opartej o model Model-View- Controller Konfiguracja frameworka Zainstaluj na serwerze

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe

Programowanie wielowarstwowe i komponentowe Programowanie wielowarstwowe i komponentowe JSF 2 wprowadzenie Konfiguracja Eclipse - dodanie szablonu XHTML dla potrzeb JSF 1. Otwórz menu Window/Preferences. Następnie z drzewka wybierz Web/HTML Files/Editor/Templates.

Bardziej szczegółowo

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/04_01/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie kopii zapasowej ustawień systemowych serwera - Zadania do wykonania

Bardziej szczegółowo

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji OMNITRACKER Wersja testowa Szybki przewodnik instalacji 1 Krok 1:Rejestracja pobrania (jeżeli nie wykonana dotychczas) Proszę dokonać rejestracji na stronieomninet (www.omnitracker.com) pod Contact. Po

Bardziej szczegółowo

FAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen?

FAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen? 27.06.11 FAQ Systemu EKOS 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen? Procedura rejestracji ocen wymaga podpisywania protokołów (w postaci wypełnionych formularzy InfoPath Forms

Bardziej szczegółowo

Platformy Programowania

Platformy Programowania Platformy Programowania Ćwiczenie 1 4 x Hello World! Środowisko programistyczne, w którym będziemy pracować do wakacji: Microsoft Visual Studio 2010 Profesional 1. Utwórz aplikację konsolową. Po uruchomieniu

Bardziej szczegółowo

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,

Bardziej szczegółowo

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja Produkcja by CTI Proces instalacji, ważne informacje oraz konfiguracja Spis treści 1. Ważne informacje przed instalacją...3 2. Instalacja programu...4 3. Nawiązanie połączenia z serwerem SQL oraz z programem

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

Dokumentacja fillup - MS SQL

Dokumentacja fillup - MS SQL Dokumentacja fillup - MS SQL e-file.pl 28 lipca 2017 Spis treści Wstęp 2 Wymagania sprzętowe 2 Windows Server 2012.......................... 2 Windows 10............................... 3 MS SQL Server.............................

Bardziej szczegółowo

Dokumentacja panelu Klienta

Dokumentacja panelu Klienta Dokumentacja panelu Klienta Wersja 1.1 Strona 1 z 17 Spis treści Historia zmian... 3 Logowanie do Panelu Klienta... 4 Panel... 5 Wysyłki... 6 Przyłączenia... 7 Ustawienia... 8 Zasoby... 8 Integracje...

Bardziej szczegółowo

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków 4. Budowa prostych formularzy, stany sesji, tworzenie przycisków 1. Utwórz formularz tabelaryczny umożliwiający modyfikację prowadzących listę przebojów. a. Zaloguj się do systemu APEX podając znaną Ci

Bardziej szczegółowo

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

Wstęp. Opis ten dotyczy wydziałów orzeczniczych. Wstęp. Opis ten dotyczy wydziałów orzeczniczych. W związku z przekształceniem 79 Sądów w Wydziały Zamiejscowe i związane z tym liczne zapytania odnośnie strony technicznej i sposobu przygotowania baz danych

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).

Bardziej szczegółowo

STRONY DEALERSKIE W SYSTEMIE K2

STRONY DEALERSKIE W SYSTEMIE K2 STRONY DEALERSKIE W SYSTEMIE K2 (aktualizacja na sierpień 2014) INSTRUKCJA ZARZĄDZANIA TREŚCIĄ Poniżej prezentujemy instrukcję obsługi nowej wersji systemu zarządzania treścią K2 po migracji na nową platformę.

Bardziej szczegółowo

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu Spis treści 1. Zgłoszenia serwisowe wstęp... 2 2. Obsługa konta w solidnym serwisie... 2 Rejestracja w serwisie...3 Logowanie się do serwisu...4 Zmiana danych...5 3. Zakładanie i podgląd zgłoszenia...

Bardziej szczegółowo

Przewodnik użytkownika (instrukcja) AutoMagicTest

Przewodnik użytkownika (instrukcja) AutoMagicTest Przewodnik użytkownika (instrukcja) AutoMagicTest 0.1.21.137 1. Wprowadzenie Aplikacja AutoMagicTest to aplikacja wspierająca testerów w testowaniu i kontrolowaniu jakości stron poprzez ich analizę. Aplikacja

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania

Bardziej szczegółowo

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: 1. Listener dla przycisku. Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: W linii 24 tworzymy globalną metodę mglobal_onclicklistener,

Bardziej szczegółowo

Modele danych walidacja widoki zorientowane na model

Modele danych walidacja widoki zorientowane na model Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

Java EE: JSF + EJB + JPA

Java EE: JSF + EJB + JPA Java EE: JSF + EJB + JPA Celem ćwiczenia jest utworzenie prostej aplikacji bazodanowej umożliwiającej przeglądanie i dodawanie zleceń serwisowych. Ćwiczenie pokazuje współpracę technologii JSF (podstawowej

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Faces Celem ćwiczenia jest przygotowanie aplikacji internetowej z wykorzystaniem technologii JSF. Prezentowane ćwiczenia zostały wykonane w środowisku Oracle JDeveloper

Bardziej szczegółowo

Aplikacje www laboratorium

Aplikacje www laboratorium Aplikacje www laboratorium Konfigurowanie zabezpieczeń w oparciu o JAAS w serwerze GlassFish Zabezpieczanie aplikacji webowych z wykorzystaniem JASS jest w podstawowych zastosowaniach procesem dwuetapowym.

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA PORTALU SIDGG

INSTRUKCJA UŻYTKOWNIKA PORTALU SIDGG INSTRUKCJA UŻYTKOWNIKA PORTALU SIDGG dla Państwowy Instytut Geologiczny Państwowy Instytut Badawczy 1. Uruchomienie aplikacji. a. Wprowadź nazwę użytkownika w miejsce Nazwa użytkownika b. Wprowadź hasło

Bardziej szczegółowo

Dokumentacja panelu Klienta

Dokumentacja panelu Klienta Dokumentacja panelu Klienta Wersja 1.2 Strona 1 z 25 Spis treści Historia zmian... 3 Logowanie do panelu Klienta... 4 Panel... 5 Wysyłki... 6 Przyłączenia... 7 Ustawienia... 8 Zasoby... 8 Integracje...

Bardziej szczegółowo

Podręcznik użytkownika Obieg dokumentów

Podręcznik użytkownika Obieg dokumentów Podręcznik użytkownika Obieg dokumentów Opracowany na potrzeby wdrożenia dla Akademii Wychowania Fizycznego im. Eugeniusza Piaseckiego w Poznaniu W ramach realizacji projektu: Uczelnia jutra wdrożenie

Bardziej szczegółowo

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B Forte Zarządzanie Produkcją Instalacja i konfiguracja Wersja 2013.1.B Forte Zarządzanie Produkcją - Instalacja i konfiguracja Strona 2 z 13 SPIS TREŚCI 1 Instalacja i konfiguracja Forte Zarządzanie Produkcją...

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku. Aktywności to podstawowe elementy związane z platformą Android. Dzięki poznaniu aktywności będziesz w stanie napisać pierwszą aplikację przeznaczoną na urządzenie mobilne. Po dodaniu kontrolek możesz w

Bardziej szczegółowo

Instalacja i podstawowa konfiguracja aplikacji ImageManager

Instalacja i podstawowa konfiguracja aplikacji ImageManager Instalacja i podstawowa konfiguracja aplikacji ImageManager Wymagania systemowe dla aplikacji ImageManager przynajmniej 1 GB pamięci RAM (4 GB rekomendowane) przynajmniej 75 MB wolnego miejsca na dysku

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET...

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET... Spis treści... 1 1. REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA... 3 2. PANEL ZMIANY HASŁA... 5 3. PANEL EDYCJI DANYCH UŻYTKOWNIKA... 6 4. EXTRANET.NET... 8 a. ZMIANA HASŁA EXTRANET.NET... 10 5. PZPN24... 12

Bardziej szczegółowo

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

Zastępstwa Optivum. Jak przenieść dane na nowy komputer? Zastępstwa Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Zastępstwa Optivum na innym komputerze, należy na starym komputerze wykonać kopię zapasową bazy danych programu

Bardziej szczegółowo

Instrukcjaaktualizacji

Instrukcjaaktualizacji Instrukcja Instrukcjaaktualizacji aktualizacji oprogramowania oprogramowaniainpro InProBMS BMS SPIS TREŚCI 1. AKTUALIZACJA 3 1.1. ARCHIWIZACJA BAZY DANYCH...3 1.1.1. AUTOMATYCZNA...3 1.1.2. RĘCZNA...4

Bardziej szczegółowo

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel 5.3. Tabele Tabela jest podstawowym elementem bazy danych. To właśnie w tabelach gromadzone są w bazie rekordy danych. Projektując tabelę, definiujemy, jakie pola będzie zawierał pojedynczy rekord informacji.

Bardziej szczegółowo

Podstawy Pentaho Data Integration

Podstawy Pentaho Data Integration Podstawy Pentaho Data Integration 1. Instalacja Pentaho Data Integration Program Pentaho Data Integration można pobrać ze strony - http://www.pentaho.com/download, wybierając wersję na prawo czyli data

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA Instalacja KS - EDE w systemie KS - ZSA ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

INSTRUKCJA UŻYTKOWNIKA Instalacja KS - EDE w systemie KS - ZSA ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90 Instrukcja użytkownika Instalacja KS - EDE w systemie KS ZSA I. Wstęp W związku ze zmianami wynikającymi z wprowadzeniem Jednolitych Plików Kontrolnych w ramach systemu KS ZSA dodano możliwość korzystania

Bardziej szczegółowo

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1.

Wybrane Działy Informatyki Stosowanej LABORATORIUM 1. WDIS 2019L: Zajęcia 1. Serwer Apache Tomcat. Środowisko NetBeans. Strona 1 z 9 Wybrane Działy Informatyki Stosowanej LABORATORIUM 1. KONFIGUROWANIE SERWERA APACHE TOMCAT. PODSTAWY UMIESZCZANIA PLIKÓW HTML,

Bardziej szczegółowo

Zaawansowane Techniki Bazodanowe

Zaawansowane Techniki Bazodanowe Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Zaawansowane Techniki Bazodanowe Krzysztof Koptyra, Dawid Tomaszewski Raport

Bardziej szczegółowo

8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków

8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków 8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków 1. Jak wspomnieliśmy wcześniej, nie można wymagać od użytkowników, znajomości wszystkich identyfikatorów prowadzących, wykonawców

Bardziej szczegółowo

5.2. Pierwsze kroki z bazami danych

5.2. Pierwsze kroki z bazami danych 5.2. Pierwsze kroki z bazami danych Uruchamianie programu Podobnie jak inne programy, OO Base uruchamiamy z Menu Start, poprzez zakładkę Wszystkie programy, gdzie znajduje się folder OpenOffice.org 2.2,

Bardziej szczegółowo

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda Logowanie do panelu administracyjnego Aby móc zarządzać stroną, należy zalogować się do panelu administracyjnego.

Bardziej szczegółowo