Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 09

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

Download "Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 09"

Transkrypt

1 Plan Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 09 T. Romańczukiewicz Jagiellonian University 2009/2010

2 Plan Plan 1 JSP 2 Podsumowanie

3 Plan JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans 1 JSP Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Bibliioteki tagów 2 Podsumowanie

4 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans XML, poprawnie sformuowanie Sposoby opisu XML DTD XML Schema XPATH Sposoby prezentacji CSS XSLT DOM SAX JAXB Serwlety JSP

5 JSP JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans JSP pozwala na umieszczanie w jednym dokumencie statycznego kodu HTML z zawartościa generowana dynamicznie (podobnie jak PHP) Kod generowany dynamicznie jest umieszczany w dokumencie HTML za pomoca znaczników <% oraz %> Jest powszechnie obsługiwana (nie narzuca systemu operacyjnego czy serwera WWW) Umożliwia pełny dostęp do technologii serwletów Serwlet można interpretować jako kod javy zawierajacy umieszczony w nim kod HTML JSP można interpretować jako kod HTML zawierajacy umieszczony wewnatrz kod javy

6 JSP JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans JSP Jasielskie Stowarzyszenie Przedsiębiorców pozwala na umieszczanie w jednym dokumencie statycznego kodu HTML z zawartościa generowana dynamicznie (podobnie jak PHP) Kod generowany dynamicznie jest umieszczany w dokumencie HTML za pomoca znaczników <% oraz %> Jest powszechnie obsługiwana (nie narzuca systemu operacyjnego czy serwera WWW) Umożliwia pełny dostęp do technologii serwletów Serwlet można interpretować jako kod javy zawierajacy umieszczony w nim kod HTML JSP można interpretować jako kod HTML zawierajacy umieszczony wewnatrz kod javy

7 JSP JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans JSP Java Server Pages pozwala na umieszczanie w jednym dokumencie statycznego kodu HTML z zawartościa generowana dynamicznie (podobnie jak PHP) Kod generowany dynamicznie jest umieszczany w dokumencie HTML za pomoca znaczników <% oraz %> Jest powszechnie obsługiwana (nie narzuca systemu operacyjnego czy serwera WWW) Umożliwia pełny dostęp do technologii serwletów Serwlet można interpretować jako kod javy zawierajacy umieszczony w nim kod HTML JSP można interpretować jako kod HTML zawierajacy umieszczony wewnatrz kod javy

8 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Listing 1: Przykład 1 <HTML> 2 <BODY> 3 4 Hello! The time is now <%= new java.util.date() %> 5 6 <% 7 / / T h i s i s a s c r i p t l e t. N o t i c e t h a t t h e " d a t e " 8 / / v a r i a b l e we d e c l a r e here i s a v a i l a b l e i n t h e 9 / / embedded e x p r e s s i o n l a t e r on. 10 System.out.println( "Evaluating date now" ); 11 java.util.date date = new java.util.date(); 12 %> 13 Hello! The time is now <%= date %> 14 </BODY> 15 </HTML>

9 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans JSP a Servlety Dokumenty JSP sa niejawnie, automatycznie przekształcane do postaci serwletów - łatwiej i przejrzyściej jest tworzyć zwykłe strony HTML niż stosować instrukcje println tworzace kod HTML. Strony JSP składaja się ze statycznego kodu HTML, znaczników JSP oraz kodu utworzonego w języku JAVA - jest to kod serwletów, więc niemożliwe jest zrozumienie technologii JSP bez znajomości technologii serwletów JSP - wygodniej stosować do tworzenia stron składajacych się z dużej ilości statycznego HTML (prezentacja danych) Serwlety lepsze sa do zastosowań, w których postać generowanych (zwykle dynamicznie) wyników jest zmienna a wykonywane zadania wymagaja tworzenia niewielu danych wyjściowych (przetwarzanie danych) Optymalne rozwiazanie zastosowanie serwletów i JSP

10 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Typy elementów skryptowych JSP Elementy skryptowe pozwalaja na wstawianie kodu javy do serwletów generowanych na podstawie stron JSP, sa to: Wyrażenia postaci: <%= wyrazenie javy %>; sa przetwarzane a wyniki ich wykonania zostaja wstawione do kodu generowanego przez serwlet Skryptlety postaci: <% kod javy %>; sa wstawiane do metody _jspservice serwletu (wywoływanej przez metodę service) Deklaracje: <%! Deklaracja pola lub metody %>; sa wstawiane do treści klasy serwletu, poza jakimikolwiek metodami

11 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Stosowane do umieszczania wartości bezpośrednio w wynikach przekazywanych do klienta, wyrażenie jest obliczane w czasie obsługi żadania, np.: <%= new java.util.date()%> Aby uprościć postać wyrażeń można w nich używać zmiennych predefiniowanych (obiektów niejawnych), które informuja jakie nazwy będa mieć zmienne lokalne używane w metodzie _jspservice (w serwletach wygenerowanych na podstawie stron JSP zastępuje metodę doget). Najważniejsze to: request (obiekt HttpServletRequest), np. Twój komputer: <%= request.getremotehost()%> response (obiekt HttpServletResponse) session (obiekt HttpSession) out (obiekt Writer) buforowana wersja obiektu JspWriter używana do przesyłania wyników do klienta application (obiekt ServletContext) tej struktury danych używaja wspólnie wszystkie servlety i strony JSP wchodzace w skład danej aplikacji WWW (do przechowywania wspólnych danych)

12 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Listing 2: skryptlet 1 <HTML> 2 <BODY> 3 <% 4 / / T h i s s c r i p t l e t d e c l a r e s and i n i t i a l i z e s " d a t e " 5 System.out.println( "Evaluating date now" ); 6 java.util.date date = new java.util.date(); 7 %> 8 Hello! The time is now 9 <% 10 out.println( date ); 11 out.println( "<BR>Your machine s address is " ); 12 out.println( request.getremotehost()); 13 %> 14 </BODY> 15 </HTML>

13 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Mieszanie skryptletów z HTML Do generowania kodu HTML z wnętrza skryptletu można używać zmiennej out. Dla bardziej skomplikowanego HTMLa używanie cały czas zmiennej out może być kłopotliwe. Łatwiej jest mieszać skryptlety z HTMLem: Listing 3: Przykład - generowanie tabelki 1 <TABLE BORDER=2> 2 <% 3 for ( int i = 0; i < n; i++ ) { 4 %> 5 <TR> 6 <TD>Number</TD> 7 <TD><%= i+1 %></TD> 8 </TR> 9 <% 10 } 11 %> 12 </TABLE> Zanim to zadziała trzeba jeszcze ustawić zmienna int n. Znaki %> i %< pozwalaja powrócić do HTML a potem spowrotem do skryptletu Każda instrukcja typu while, for lub if kontroluje również HTML.

14 Dyrektywy JSP JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans W poprzednim przykładzie użyto java.util.date. W JSP można użyć instrukcji import Listing 4: Dyrektywy w JSP 1 <%@ page import="java.util.*" %> 2 <HTML> 3 <BODY> 4 <% 5 System.out.println( "Evaluating date now" ); 6 Date date = new Date(); 7 %> 8 Hello! The time is now <%= date %> 9 </BODY> 10 </HTML> Pierwsza linia w powyższym przykładzie jest nazywana "dyrektywa". Dyrektywa JSP zaczyna się sekwencja <%@. Użyta tutaj dyrektywa jest nazywana dyrektywa page. Dyrektywa page może zawierać listę wszystkich importowanych pakietów. Aby zaimportować ich więcej niż jeden, należy oddzielić poszczególne pakiety przecinkiem. Np. <%@ page import="java.util.*,java.text.*"%>

15 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Dyrektywa include jest używana do fizycznego załaczania zawartosci innego pliku. Załaczany plik może mieć rozszerzenie.html.jsp albo jakiekolwiek inne. Rezultat będzie taki jakby nasz plik JSP zawierał w sobie załaczony tekst. Listing 5: Dyrektywa include 1 <HTML> 2 <BODY> 3 Going to include hello.jsp...<br> 4 <%@ include file="hello.jsp" %> 5 </BODY> 6 </HTML>

16 Deklaracje JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Listing 6: Deklaracje 1 <%@ page import="java.util.*" %> 2 <HTML> 3 <BODY> 4 <%! 5 Date thedate = new Date(); 6 Date getdate() 7 { 8 System.out.println( "In getdate() method" ); 9 return thedate; 10 } 11 %> 12 Hello! The time is now <%= getdate() %> 13 </BODY> 14 </HTML> Deklarowana zmienna typu Date thedate, oraz metoda getdate sa dostępne w naszych skryptletach i wyrażeniach. Czas będzie taki sam przy każdym przeładowaniu strony. Deklaracje sa wyliczane tylko raz kiedy strona jest ładowana.

17 Znaczniki JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Moga zapisywać do strumienia wyjściowego oraz tworzyć, modyfikować i używać obiekty. Sposób wykonania akcji zależy od cech obsługiwanego żadania. Składnia akcji opiera się na XML Tagi JSP nie uzywaja znaku <%, lecz <. Tag JSP jest czymś w rodzaju tagu HTML. Może on mieć "tag poczatkowy", ćiało tagu"i "tag końcowy". Poczatkowy i końcowy tag używaja nazwy tagu, zamkniętej w znaki < i >. Końcowy zaczyna się znakiem / umieszczonym po znaku <. Nazwy tagów zawieraja znak dwukropka w środku, część przed dwukropkiem opisuje typ tagu. Na przykład: <some:tag> body </some:tag> Jeśli tag nie potrzebuje ciała, poczatek i koniec moga być wygodnie złaczone ze soba, tak jak <some:tag/> Tagi moga być dwojakiego rodzaju: ładowane z zewnętrznej biblioteki, albo predefiniowane.

18 Znaczniki JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Tagi predefiniowane zaczynaja się znakami jsp:. Np. jsp:include jest predefiniowanym tagiem, który jest używany do załaczania innych stron. Działa ona podobnie jak dyrektywa include ale zamiast ładowania tekstu załaczanego pliku w oryginalny, tak naprawdę wywołuje załaczany cel w czasie wykonania. jsp:forward przekierowywuje do innej strony Listing 7: Akcja właczania 1 <HTML> <BODY> 2 Going to include hello.jsp...<br> 3 <jsp:include page="hello.jsp"/> 4 </BODY> </HTML>

19 Sesje w JSP JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Sesja jest obiektem zwiazanym z odwiedzajacym. Można do niego wrzucać pewne dane i potem je odczytywać. Dla każdego odwiedzajacego tworzony jest nowy obiekt sesji. Przykład: Formularz Listing 8: Formularz 1 <HTML> 2 <BODY> 3 <FORM METHOD=POST ACTION="SaveName.jsp"> 4 What s your name? <INPUT TYPE=TEXT NAME=username SIZE=20> 5 <P><INPUT TYPE=SUBMIT> 6 </FORM> 7 </BODY> 8 </HTML> Po wypełnieniu tego formularza odwiedzajacy zostanie przekierowany na stronę ŚaveName.jsp", która zachowa jego imię w obiekcie sesja. Zmienna sesion to kolejna zmienna, która jest dostępna w JSP, tak jak zmienne out i request.

20 Sesje w JSP cd. JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans SaveName.jsp zachowuje imię użytkownika w sesji i udostępnia link do kolejnej strony NextPage.jsp. Listing 9: SaveName.jsp 1 <% 2 String name = request.getparameter( "username" ); 3 session.setattribute( "thename", name ); 4 %> 5 <HTML> 6 <BODY> 7 <A HREF="NextPage.jsp">Continue</A> 8 </BODY> 9 </HTML> NextPage.jsp pokazuje jak odzyskać zachowane imię. Listing 10: NextPage.jsp 1 <HTML> 2 <BODY> 3 Hello, <%= session.getattribute( "thename" ) %> 4 </BODY> 5 </HTML>

21 Formularz i Beans JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans JSP ułatwia korzystanie z formularzy. Standardowy sposób obsługi JSP polega na zdefiniowaniu "bean". Potrzebujemy tylko zdefiniować klasę, która zawierać będzie pola takie jak pola formularza. Pola klasy musza mieć śetters"(atrybuty) pasujace do pół formularza. Przykład Listing 11: GetName.html 1 <HTML> 2 <BODY> 3 <FORM METHOD=POST ACTION="SaveName.jsp"> 4 What s your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR> 5 What s your address? <INPUT TYPE=TEXT NAME= SIZE=20><BR> 6 What s your age? <INPUT TYPE=TEXT NAME=age SIZE=4> 7 <P><INPUT TYPE=SUBMIT> 8 </FORM> 9 </BODY> 10 </HTML>

22 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Formularz i Beans c.d. JSP ułatwia korzystanie z formularzy. Standardowy sposób obsługi JSP polega na zdefiniowaniu "bean". Potrzebujemy tylko zdefiniować klase, która zawierać będzie pola takie jak pola formularza. Pola klasy musza mieć śetters"(atrybuty) pasujace do pół formularza. Przykład Listing 12: GetName.html 1 <HTML> 2 <BODY> 3 <FORM METHOD=POST ACTION="SaveName.jsp"> 4 What s your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR> 5 What s your address? <INPUT TYPE=TEXT NAME= SIZE=20><BR> 6 What s your age? <INPUT TYPE=TEXT NAME=age SIZE=4> 7 <P><INPUT TYPE=SUBMIT> 8 </FORM> 9 </BODY> 10 </HTML> Żeby przesyłać te dane, zdefiniujmy klasę javy z polami username, i age i wprowadźmy metody publiczne setter setusername, set i setage i getter ; podobnie ze słowem get zamiast set.

23 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Formularz i Beans c.d. Listing 13: GetName.html 1 public class UserData { 2 String username; 3 String ; 4 int age; 5 6 public void setusername( String value ) { username = value; } 7 public void set ( String value ) { = value; } 8 public void setage( int value ) { age = value; } 9 10 public String getusername() { return username; } 11 public String get () { return ; } 12 public int getage() { return age; } 13 } Trzeba się upewnić,czy jej ścieżka jest dostępna na serwerze. Na serwerze może być także zdefiniowany specjalny katalog, gdzie możemy umieścić class bean. Jeśli zmienimy ścieżke do niego, serwer musi być zatrzymany i zrestartowany,jeśli aktualnie pracuje.

24 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Formularz i Beans c.d. Listing 14: SaveName.jsp 1 <jsp:usebean id="user" class="userdata" scope="session"/> 2 <jsp:setproperty name="user" property="*"/> 3 <HTML> 4 <BODY> 5 <A HREF="NextPage.jsp">Continue</A> 6 </BODY> 7 </HTML> Tag usebean będzie szukał instancji UserData w tej sesji. Jeśli znajdzie ja to ja uaktualni. W przeciwnym przypadku stworzy nowa instancję (nowy bean) UserData Tag setproperty automatycznie przesyła dane wejściowe, łaczy nazwy z odpowiednimi metodami i umieszcza dane w bean!

25 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Formularz i Beans c.d. Listing 15: NextPage.jsp 1 <jsp:usebean id="user" class="userdata" scope="session"/> 2 <HTML> 3 <BODY> 4 You entered<br> 5 Name: <%= user.getusername() %><BR> 6 <%= user.get () %><BR> 7 Age: <%= user.getage() %><BR> 8 </BODY> 9 </HTML> Tag usebean się powtarza. Bean jest dostępny przez nazwę zmiennej user z klasy UserData. Dane wprowadzane przez użytkownika sa przechowywane w bean. Przykład można byłoby uprościć. Nie potrzebujemy ŚaveName.jsp", celem dla GetName.html może być NextPage.jsp, i dane będa ciagle dostępne, jeśli tylko dodamy taga jsp:setproperty. SaveName.jsp można byłoby rozbudować o obsługę błędów - i np prośbę o poprawienie danych

26 Tag libraries JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans W celu skozystania z biblioteki dodaje się dyrektywę: <%@ taglib prefix="blx"uri="/blx.tld"%> "uriókreśla gdzie znaleźć opis biblioteki tagów. "Prefix"jest unikatowy dla biblioteki tagów. Ta dyrektywa mówi, że będziemy używać biblioteki tagów zaczynajac od blx: Biblioteka Blazix wprowadza tag blx:getproperty. Ten tag może być używany, żeby pozwolić użytkownikom na edytowanie danych. W pliku GetName.jsp dodamy i umieścimy formularz wewnatrz blx:getproperty Listing 16: GetName.jsp 1 <%@ taglib prefix="blx" uri="/blx.tld" %> 2 <jsp:usebean id="user" class="userdata" scope="session"/> 3 <HTML> 4 <BODY> 5 <blx:getproperty name="user" property="*"> 6 <FORM METHOD=POST ACTION="SaveName.jsp"> 7 What s your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR> 8 What s your address? <INPUT TYPE=TEXT NAME= SIZE=20><BR> 9 What s your age? <INPUT TYPE=TEXT NAME=age SIZE=4> 10 <P><INPUT TYPE=SUBMIT> 11 </FORM> 12 </blx:getproperty> 13 </BODY> 14 </HTML> Aby wszystkie formularze były prawidłowo modyfikowane przez bibliotekę tagów, umieszczamy wszystkie pola formularza wewnatrz blx:getproperty Użytkownik może teraz edytować dane.

27 haveerror i errors musi być ponownie T. Romańczukiewicz inicjalizowane XML 09 za każdym razem dlatego, że sa Tag libraries c.d JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Listing 17: SaveName.jsp 1 <%@ taglib prefix="blx" uri="/blx.tld" %> 2 <%! 3 boolean haveerror; 4 StringBuffer errors; 5 6 public void errorhandler( String field, String value, Exception ex ) { 7 haveerror = true; 8 if ( errors == null ) errors = new StringBuffer(); 9 else errors.append( "<P>" ); 10 errors.append( "<P>Value for field \"" + field + "\" is invalid." ); 11 if ( ex instanceof java.lang.numberformatexception ) 12 errors.append( " The value must be a number." ); 13 } 14 %> 15 <% 16 / / V a r i a b l e s must be i n i t i a l i z e d o u t s i d e d e c l a r a t i o n! 17 haveerror = false; 18 errors = null; 19 %> 20 <HTML><BODY> 21 <jsp:usebean id="user" class="userdata" scope="session"/> 22 <blx:setproperty name="user" property="*" onerror="errorhandler"/> 23 <% 24 if ( haveerror ) { 25 out.println( errors.tostring()); 26 pagecontext.include( "GetName.jsp" ); 27 } else pagecontext.forward( "NextPage.jsp" ); 28 %> 29 </BODY></HTML>

28 Tag libraries c.d JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans haveerror i errors musi być ponownie inicjalizowane za każdym razem dlatego, że sa one inicjalizowane na zewnatrz deklaracji. jeśli pojawi się bład w trakcie procesu blx:setproperty, wyświetli się bład i wtedy załacz GetName.jsp, żeby użytkownik mógł poprawiać błędy. Jeśli nie pojawia sie żadne błędy, automatycznie przekazujemy użytkownika do NextPage.jsp. Wciaż jest problem z formularzami, jesli age"pokaże się zainicjalizowany na zero zamiast pusty. To można łatwo naprawić dodajac emptyint=0 do obu tagów blx:getproperty i blx:setproperty (pola bean powinny być inicjalizowane na "0"). "0" nie jest odpowiednia wartościa dla wieku dlatego możemy jej użyc do markowania pustych stringów (można wybrać inna wartość np ujemna)

29 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Definiowanie własnych tagów Aby zdefiniować własny tag należy Zaimplementować klasę handler dla tagu zadeklarować tag w tag library descriptor Pełny przykład na Klasa dla znacznika pustego <tlt:simple /> Listing 18: SimpleTag.java 1 public SimpleTag extends Tag Support { 2 public int dostarttag() throws JspException { 3 try { 4 pagecontext.getout().print("hello."); 5 } catch (Exception ex) { 6 throw new JspTagException("SimpleTag: " + e.getmessage()); 7 } 8 return SKIP_BODY; 9 } 10 public int doendtag() { return EVAL_PAGE; } 11 } Implementowane sa metody dostarttag() i doendtag().

30 Descriptor JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans tag library descriptor (TLD) Jest dokumentem XML opisujacym bibliotekę tagów <taglib> - element główny <tlibversion> - wersja <jspversion> - wersja JSP, od której zależy biblioteka <shortname> - może być traktowane jako przedrostek <uri> - URI jednoznacznie definujace bibliotekę <info> - Dodatkowe informacje o bibliotece <tag> - opis tagu. W najprostszym przypadku: 1 <tag> 2 <tagclass>classname</tagclass> 3 <bodycontent>empty</bodycontent> </tag>

31 JSP Podsumowanie Przypomnienie JSP - wstęp Dyrektywy JSP Znaczniki Sesje Beans Istnieje również możliwość rozszerzenia definicji tagów o atrybuty zawartość (bodycontent)

32 Plan JSP Podsumowanie 1 JSP 2 Podsumowanie

33 JSP Podsumowanie JSP pozwala na dynamiczne generowanie zawartości HTML, XML itp. Można mieszać statyczna zawartość (czysty HTML) z zawartościa dynamicza (tzw. skryptlety) - wygodniejsze użycie niż w przypadku serwletów Zawartość dynamiczna generowana jest z kodu javy, który zamieniany jest na servlet. Możliwe jest użycie dyrektyw (np wczytywanie innych plików) Można używać znaczników Możliwa jest obsługa sesji Do obsługi formularzy najlepiej jest korzystać z Beanów, czyli klas ze zdefiniowanymi metodami typu get i set. Wyniki z formularza moga zostać przepisane do pól obiektu, który można przekazać w sesji Możliwe jest też korzystanie z bibliotek tagów. Można też samodzielie tworzyć nowe tagi (klasa handler + opis w TLD)

Wzorce prezentacji internetowych

Wzorce prezentacji internetowych Wzorce prezentacji internetowych 1. Model kontrolera widoku (Model View Controller). 2. Kontroler strony (Page Controller). 3. Kontroler fasady (Front Controller). 4. Szablon widoku (Template View). 5.

Bardziej szczegółowo

Pawel@Kasprowski.pl Programowanie w Internecie. Podstawy użycia JSP. Paweł Kasprowski. vl06z

Pawel@Kasprowski.pl Programowanie w Internecie. Podstawy użycia JSP. Paweł Kasprowski. vl06z Podstawy użycia JSP Paweł Kasprowski JSP Java Server Pages Tworzenie dokumentów html ze wstawkami w Javie Dokumenty przekształcane są w servlety klasy generujące html Serwery JSP Przykładowe serwery: Blazix

Bardziej szczegółowo

<HTML> <BODY> Hello World! </BODY> </HTML> potem zmienić rozszerzenie z ".html" na ".jsp" i załadować go w przeglądarce.

<HTML> <BODY> Hello World! </BODY> </HTML> potem zmienić rozszerzenie z .html na .jsp i załadować go w przeglądarce. JSP JSP po prostu umieszcza Javę wewnątrz stron HTML. MoŜna wziąć stronę HTML i zmienić rozszerzenie na ".jsp" zamiast ".html". To jest dobre ćwiczenie na początek. W tym celu moŝna utworzyć plik hello.html

Bardziej szczegółowo

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013 e-biznes Wykład dla studentów Informatyki Stosowanej UJ 2012/2013 Michał Cieśla pok. 440a, email: michal.ciesla@uj.edu.pl konsultacje: środy 10-12 http://users.uj.edu.pl/~ciesla/ 1 Literatura B. Burke,

Bardziej szczegółowo

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages. Elementy JEE 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages. 1 Java Enterprice Edition Java Enterprice Edition (JEE) jest rozszerzeniem Java Standard

Bardziej szczegółowo

prepared by: Programowanie WWW Servlety

prepared by: Programowanie WWW Servlety Programowanie WWW Servlety Przypomnienie problemu Aplikacja do liczenia kredytów Klasa Kredyt Formatka do wprowadzania danych (czysty HTML) Skrypt liczący ratę (JSP wykorzystujące klasę Kredyt) Klasa Kredyt

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat Ćwiczenie 1 Proszę napisać aplikację wykorzystującą serwlety i bazy danych, która umożliwi wyszukiwanie tytułów książek po nazwisku autora oraz autorów po tytule książki. Ćwiczenie

Bardziej szczegółowo

mgr inż. Michał Paluch

mgr inż. Michał Paluch Komunikacja w Internecie Użytkownik klika w odpowiednie łącze. Przeglądarka formatuje żądanie i wysyła Serwer odnajduje zasób, formatuje odpowiedź i przesyła do przeglądarki. Protokół HTTP Zadania klienta

Bardziej szczegółowo

Java wybrane technologie spotkanie nr 5. Java Server Pages

Java wybrane technologie spotkanie nr 5. Java Server Pages Java wybrane technologie spotkanie nr 5 Java Server Pages 1 Składnia dowolny HTML (template) 2

Bardziej szczegółowo

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet JSP ciąg dalszy Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić JSP tags, Używanie tagów, Custom tags, JSP objests, Obiekty

Bardziej szczegółowo

pawel.rajba@gmail.com, http://kursy24.eu/

pawel.rajba@gmail.com, http://kursy24.eu/ pawel.rajba@gmail.com, http://kursy24.eu/ Servlets Charakterystyka Główne metody Obiekty request i response JSP Dyrektywy Elementy skryptowe Elementy akcji Generowanie treści Obiekty niejawne Obiekty request

Bardziej szczegółowo

2 Przykªad strony JSP. 3 Elementy dokumentu JSP

2 Przykªad strony JSP. 3 Elementy dokumentu JSP 1 JSP Java Server Pages technologia Javy pozwalaj ca na generowanie dynamicznych dokumentów HTML lub XML. Pozwala na umieszczanie kodu j zyka Java w tre±ci dokumentów. Jest elementem opakowuj cym standardowe

Bardziej szczegółowo

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK Zaawansowane aplikacje internetowe EJB 2 Celem tego laboratorium jest pokazanie, w jaki sposób aplikacje stworzone w różnych technologiach mogą korzystać z funkcjonalności udostępnianej przez komponenty

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja

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

Architektury Usług Internetowych. Laboratorium 1. Servlety

Architektury Usług Internetowych. Laboratorium 1. Servlety Architektury Usług Internetowych Laboratorium 1. Servlety Wstęp Celem laboratorium jest zapoznanie się z modelem klient-serwer (żądanie-odpowiedź) na przykładzie serwletów. Kontener webowy Kontener webowy

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

Przegląd technologii JSP

Przegląd technologii JSP Marcin Paszkowski Czego potrzebujemy? Przegląd technologii JSP Do obsługi serwletów oraz JSP używamy kontenera. Czym on jest? Zapewnia on prosty mechanizm komunikacji pomiędzy serwletami a serwerem www.

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Java Enterprise Edition spotkanie nr 4. Java Server Pages c.d.

Java Enterprise Edition spotkanie nr 4. Java Server Pages c.d. Java Enterprise Edition spotkanie nr 4 Java Server Pages c.d. 1 Opracował Jacek Sroka Implict variables & objects application javax.servlet.servletcontext np. application.log() lub getrealpath("/web-inf/licznik.txt")

Bardziej szczegółowo

Serwlety i JSP. Autor: Marek Zawadka deekay@gazeta.pl

Serwlety i JSP. Autor: Marek Zawadka deekay@gazeta.pl Serwlety i JSP Autor: Marek Zawadka deekay@gazeta.pl Plan prezentacji Wstęp CGI i inne wcześniejsze rozwiązania Serwlety ulepszenia klasa HTTPServlet obsługa sesji wielowątkowość JSP czym się różni od

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje Internetowe, Servlety, JSP i JDBC Aplikacje Internetowe, Servlety, JSP i JDBC Opis Java 2 Enterprise Edition (JEE) jest potężną platformą do tworzenia aplikacji webowych. PLatforma JEE oferuje wszystkie zalety tworzenia w Javie plus wszechstronny

Bardziej szczegółowo

Szablon główny (plik guestbook.php) będzie miał postać:

Szablon główny (plik guestbook.php) będzie miał postać: Skrypt: Księga gości Skrypt generujący księgę gości będzie się składał z trzech części: szablonu głównego, który należy zapisać pod nazwą guestbook.php, formularza służącego do dodawania wpisów, który

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

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 1 Servlety

Architektury Usług Internetowych. Laboratorium 1 Servlety Architektury Usług Internetowych Laboratorium 1 Servlety Wstęp Celem laboratorium jest zapoznanie się z modelem klient-serwer (żądanieodpowiedź) na przykładzie serwletów. Kontener webowy Kontener webowy

Bardziej szczegółowo

Aplikacje Internetowe. przygotował: pawel@kasprowski.pl

Aplikacje Internetowe. przygotował: pawel@kasprowski.pl Aplikacje Internetowe przygotował: pawel@kasprowski.pl Zakres przedmiotu Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse z użyciem serwera Apache Tomcat Materiały przede wszystkim

Bardziej szczegółowo

Aplikacje Internetowe. Zakres przedmiotu. Plan ramowy. Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse

Aplikacje Internetowe. Zakres przedmiotu. Plan ramowy. Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse Aplikacje Internetowe Zakres przedmiotu Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse zużyciem serwera Apache Tomcat Materiały przede wszystkim Internet książki na temat JSP (Java

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Złożone komponenty JSF wg

Złożone komponenty JSF wg Złożone komponenty JSF wg https://docs.oracle.com/javaee/7/jeett.pdf http://www.coreservlets.com Technologie internetowe 9 1 Opis znaczników obsługiwanych przez Facelets (tutorial EE 7) 2 Przegląd znaczników

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

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

Java wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 6 Java Server Pages c.d. JavaBeans konwencja nazewnicza getxxx(), setxxx() i isxxx() publiczny, bezargumentowy konstruktor można serializować przy pomocy ObjectOutputStream

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

Kurs WWW 1. Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW 1. Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Kurs WWW 1 Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ 1 Na podstawie: Hougland, D. i Tavistock A., JSP. Tworzenie stron WWW, RM, Warszawa 2002 Wprowadzenie Technologia po stronie serwera

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

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

Formularze w PHP dla początkujących

Formularze w PHP dla początkujących Instrukcja numer 07 Formularze w PHP dla początkujących Zaawansowane techniki tworzenie stron WWW Bazy danych w PHP dla początkujących Formularze stworzone w HTML mogą służyć jako metoda pobierania informacji

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

prepared by: pawel@kasprowski.pl Programowanie WWW Model-View-Controller

prepared by: pawel@kasprowski.pl Programowanie WWW Model-View-Controller Programowanie WWW Model-View-Controller Przypomnienie problemu Aplikacja do liczenia kredytów Klasa Kredyt Formatka do wprowadzania danych (czysty HTML) Skrypt liczący ratę (JSP wykorzystujące klasę Kredyt)

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Złożone komponenty JSF wg

Złożone komponenty JSF wg Złożone komponenty JSF wg https://docs.oracle.com/javaee/7/jeett.pdf http://www.coreservlets.com Technologie internetowe 8 Technologie internetowe 8, Zofia 1 Opis znaczników obsługiwanych przez Facelets

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Tworzenie aplikacji internetowych w języku Java

Tworzenie aplikacji internetowych w języku Java Tworzenie aplikacji internetowych w języku Java Podstawy JSP Informacje na temat przedmiotu Wykładowca: Paweł Kasprowski (pawel@kasprowski.pl) Temat: Tworzenie aplikacji internetowych w języku Java Umiejętności

Bardziej szczegółowo

JavaServer Pages. Konrad Kurdej Karol Strzelecki

JavaServer Pages. Konrad Kurdej Karol Strzelecki JavaServer Pages Konrad Kurdej Karol Strzelecki Podejścia do projektowania web aplikacji za pomocą Javy Serwlety Java Serwlety Java to technologia wchodząca w skład Java EE (dawniej J2EE). Serwlet Java

Bardziej szczegółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm

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

Wprowadzenie do JSP. Marcin Apostoluk, Tadeusz Pawlus, Wojciech Walczak. Technologie Biznesu Elektronicznego, 7 marzec 2006

Wprowadzenie do JSP. Marcin Apostoluk, Tadeusz Pawlus, Wojciech Walczak. Technologie Biznesu Elektronicznego, 7 marzec 2006 Marcin Apostoluk Tadeusz Pawlus Wojciech Walczak Technologie Biznesu Elektronicznego, 7 marzec 2006 Plan prezentacji 1 2 3 4 5 6 7 Kto się tym zajmuje? Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

Wyjątki (exceptions)

Wyjątki (exceptions) Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Java wybrane technologie spotkanie nr 4. Serwlety c.d.

Java wybrane technologie spotkanie nr 4. Serwlety c.d. Java wybrane technologie spotkanie nr 4 Serwlety c.d. 1 Wprowadzenie Narzucona struktura katalogów aplikacji (większa przenośności) webapps -app1 -app2 -app3 (root) -*.html, *.gif, *.js, *.css (być może

Bardziej szczegółowo

Serwlety i JSP na platformie Java EE. Damian Makarow

Serwlety i JSP na platformie Java EE. Damian Makarow Serwlety i JSP na platformie Java EE Damian Makarow Przebieg prezentacji Serwlety JSP Serwlety a aplikacje Java EE Sesje Ciasteczka Cykl życia Znaczniki Scope JSTL Serwlety+JSP Serwlety i JSP na platformie

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

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

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe AJAX 1 Celem tego laboratorium jest pokazanie moŝliwości technologii AJAX. W ramach ćwiczeń zostanie zbudowana prosta aplikacja, przechwytująca kliknięcia uŝytkownika

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

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

XML extensible Markup Language. część 5

XML extensible Markup Language. część 5 XML extensible Markup Language część 5 XML ważne zastosowanie Jak często pracujemy z plikami XML? Wróćmy jeszcze do wykładu poprzedniego. A dokładnie do pliku zawierającego ten wykład. xml_2017_wyklad_4.pptx

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /

Bardziej szczegółowo

b) Jako nazwę projektu wpisz SerwletyJSPJSTL. Nie zmieniaj wartości pozostałych opcji. Kliknij przycisk Next >.

b) Jako nazwę projektu wpisz SerwletyJSPJSTL. Nie zmieniaj wartości pozostałych opcji. Kliknij przycisk Next >. Serwlety, JSP, JSTL Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji 7.0.1). Celem ćwiczenia jest wprowadzenie do podstawowych

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

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

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Michał Bielecki, KNI 'BIOS'

Michał Bielecki, KNI 'BIOS' Michał Bielecki, KNI 'BIOS' PHP czyli język typu client side 1. przeglądarka www żąda dokumentu o rozszerzeniu.php 2. serwer odbiera żądanie i przesyła do parsera php 3. parser php znajduje żądany plik

Bardziej szczegółowo

Serwlety Java: zagadnienia zaawansowane. Data Sources. Data Sources. Przykład pliku data-sources.xml

Serwlety Java: zagadnienia zaawansowane. Data Sources. Data Sources. Przykład pliku data-sources.xml Serwlety Java: zagadnienia zaawansowane Data Sources Data Sources Przykład pliku data-sources.xml Obiekt Data Source stanowi logiczną definicję bazy danych programista korzysta z obiektu Data Source serwer

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Pages Standard Tag Library Celem ćwiczenia jest zapoznanie ze standardową biblioteką znaczników JSTL. W ramach ćwiczenia zostanie skonstruowany prosty sklep internetowy

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, obsługa formularzy oraz zmiennych

Bardziej szczegółowo

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,

Bardziej szczegółowo

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,

Bardziej szczegółowo

Aplikacje RMI Lab4

Aplikacje RMI   Lab4 Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych

Bardziej szczegółowo

14. POZOSTAŁE CIEKAWE FUNKCJE

14. POZOSTAŁE CIEKAWE FUNKCJE 14. POZOSTAŁE CIEKAWE FUNKCJE Funkcji jest cała masa, których nie poruszono w tym kursie. Bardziej ciekawe postaram się właśnie w tej lekcji omówić. Na pewno wielu z Was, czeka z niecierpliwością na funkcję

Bardziej szczegółowo

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86 Spis treści 1 Wprowadzenie - architektura, protokoły, system WWW... 1 1.1 Wstęp.................................................. 1 1.2 Ważniejsze daty......................................... 2 1.3 Protokoły

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Ustawienie zmiennych środowiskowych Przed rozpoczęciem pracy z pakietem AXIS należy ustalić

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Java Server Pages. Leksykon kieszonkowy

Java Server Pages. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

JAX-RS czyli REST w Javie. Adam Kędziora

JAX-RS czyli REST w Javie. Adam Kędziora JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL

Bardziej szczegółowo

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie

Bardziej szczegółowo

KLASY, INTERFEJSY, ITP

KLASY, INTERFEJSY, ITP KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo