Java Enterprise Edition spotkanie nr 3. Serwlety c.d.

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

Download "Java Enterprise Edition spotkanie nr 3. Serwlety c.d."

Transkrypt

1 Java Enterprise Edition spotkanie nr 3 Serwlety c.d. 1

2 Wzorzec obserwator ServletRequestAttributeListener void attributeadded(servletrequestattributeevent ev) void attributeremoved(servletrequestattributeevent ev) void attributereplaced(servletrequestattributeevent ev) HttpSessionAttributeListener void attributeadded(httpsessionbindingevent ev) void attributeremoved(httpsessionbindingevent ev) void attributereplaced(httpsessionbindingevent ev) ServletContextAttributeListener void attributeadded(servletcontextattributeevent ev) void attributeremoved(servletcontextattributeevent ev) void attributereplaced(servletcontextattributeevent ev) 2

3 Listenery c.d. ServletContextListener void contextdestroyed(servletcontextevent ev) void contextinitialized(servletcontextevent ev) public class ContextListenerTest implements ServletContextListener { public void contextinitialized(servletcontextevent ev) { try { Connection c = // tworzymy połączenie z bazą danych ev.getservletcontext().setattribute("con", c); catch (Exception e) { public void contextdestroyed(servletcontextevent ev) { try { Connection c = (Connection) ev.getservletcontext().getattribute("con"); c.close(); catch (Exception e) { 3

4 Listenery c.d. Analogicznie HttpSessionListener HttpServletRequestListener 4

5 Wskazywanie Listenerów Bezpośrednio w web-app <listener> <listener-class>wyklad.contextlistenertest</listener-class> </listener> Wszystkie interfejsy można obsługiwać jedną klasą 5

6 Klastry Zalety Fail-over support Load balancing Aplikacja odpowiednio przygotowana na istnienie kilku egzemplarzy każdego serwletu składowe statyczne składowe egzemplarza różnice lokalnego systemu plików istnienie kilku egzemplarzy ServletContext 6

7 Co gwarantuje specyfikacja Każda aplikacja ma tylko jeden egzemplarz ServletContext na danej JVM wyjątkowo ServletContext domyślnej aplikacji jest tylko na jednej JVM atrybuty ServletContext ustawiana na jednej JVM są niewidoczne na pozostałych (można się w zamian wspierać bazą danych lub sesją) ServletContextEvent i ServletContextAttributeEvent nie muszą być propagowane na inne JVM parametry ServletContext są dostępne na wszystkich JVM 7

8 Co gwarantuje specyfikacja c.d. Sesja w każdej chwili jest obsługiwana na tylko jednej JVM (może, ale nie musi migrować, np. ze względu na fail-over support lub load balancing) jeżeli sesja jest migrowana, to atrybuty (implementujące java.io.serializable, kontener może nie przyjmować innych argumentów - IllegalArgumentException) również ale niekoniecznie dochodzi do wywołania ich metod readobject(), writeobject() zdarzenia HttpSessionEvents nie muszą być migrowane na inne JVM o migrowaniu informowane są atrybuty implementujące HttpSessionActivationListener 8

9 Filtry Co może filtr: na podstawie analizy żądania: kontynuować przetwarzania lub samodzielne wygenerować odpowiedź wstępnie przetworzyć żądanie dodatkowo przetworzyć odpowiedzi przekierować żądania do innego zasobu 9

10 Pytania Aplikacja używa ServletContextListener do powiadamiania administratora, gdy dochodzi do jej wyłączenia. Czy używanie aplikacji w środowisku rozproszonym będzie miało wpływ na tą funkcjonalność? Nie. Egzemplarz ServletContext będzie utworzony na każdym serwerze i administratorzy zostaną powiadomieni o zniszczeniu każdego z nich. Aplikacja przechowuje listę aktualnie zalogowanych użytkowników w ServletContext i wypisuję ją na żądanie. Jaki wpływ na tą funkcjonalność będzie miało używanie tej aplikacji w środowisku rozproszonym? Żądania będą informowały o użytkownikach zalogowanych tylko na maszynie obsługującej żądanie (podzbiór wszystkich użytkowników). 10

11 Przykład public class WitajŚwiecieFiltrów implements Filter { private FilterConfig filterconfig; public void init(filterconfig filterconfig) throws ServletException { this.filterconfig = filterconfig; //w aplikacjach webowych parametry w rzeczywistości to //HttpServletRequest i HttpServletResponse public void dofilter(servletrequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse res = (HttpServletResponse) response; res.setcontenttype("text/html;charset=utf8"); PrintWriter pw = res.getwriter(); pw.println("<html>"); pw.println("<head></head>"); pw.println("<body>"); pw.println("<h3>witaj świecie filtrów!</h3>"); pw.println("</body>"); pw.println("</html>"); pw.close(); public void destroy() { 11

12 Deskryptor <filter> <filter-name>witajswieciefiltrow</filter-name> <filter-class>wyklad.witajświeciefiltrów</filter-class> </filter> mapowanie dla URI <filter-mapping> <filter-name>witajswieciefiltrow</filter-name> <url-pattern>/filtry/*</url-pattern> </filter-mapping> mapowanie dla serwletu <filter-mapping> <filter-name>witajswieciefiltrow</filter-name> <servlet-name>pathservlet</servlet-name> </filter-mapping> od wersji 2.5 można: podać * zamiast nazwy serwletu w jednym elemencie filter-mapping można użyć wiele podelementów servlet-name i url-pattern 12

13 Kolejność filtrów Kolejność: Najpierw są wszystkie filtry dla URI, potem dla serwletów W ramach każdej grupy kolejność jest zgodna z kolejnością wymienienia w deskryptorze Kolejność filtrowania odpowiedzi jest odwrotna do kolejności filtrowania żądania 13

14 Niektóre zastosowania uwierzytelnianie sporządzanie logów i audyt kompresja szyfrowanie przekształcenia XSLT przekierowanie żądania do innego zasobu (przy pomocy RequestDispatcher) przygotowywanie zasobów 14

15 Interfejsy/klasy związane z filtrowaniem javax.sevlet.filter implementuje programista javax.servlet.filterconfig filtry też mają parametry inicjalizacji String getfiltername() String getinitparameter(string) Enumeration getinitparameternames() ServletContext getservletcontext() javax.servlet.filterchain dostarcza kontener void dofilter(servletrequest, ServletResponse) przekazuje sterowanie do następnego filtra lub do zasobu jeżeli ten był ostatni zmianę żądania/odpowiedzi można uzyskać przez opakowanie odpowiadających im obiektów przy pomocy: javax.servlet.servletrequestwrapper javax.servlet.servletresponsewrapper javax.servlet.http.httpservletrequestwrapper javax.servlet.http.httpservletresponsewrapper 15

16 Przykład import javax.servlet.http.*; public class WrapperIgnorujacyCache extends HttpServletRequestWrapper { public WrapperIngnorujacyCache(HttpServletRequest request) { public String getheader(string name) { if (name.equals("if-modified-since")) return null; else return super.getheader(name); 16

17 Przykład c.d. class ByteArrayServletOutputStream extends ServletOutputStream { ByteArrayOutputStream baos; ByteArrayServletOutputStream() { this.baos = new public void write(int b) throws IOException { baos.write(b); ByteArrayOutputStream tobytearrayoutputstream() { return baos; byte[] tobytearray() { return baos.tobytearray(); 17

18 Przykład c.d. public class WrapperBuffor extends HttpServletResponseWrapper { public WrapperBuffor(HttpServletResponse response) { super(response); private ByteArrayServletOutputStream basos = new ByteArrayServletOutputStream(); private PrintWriter pw = new PrintWriter(basos.toByteArrayOutputStream()); public PrintWriter getwriter() { return pw; public ServletOutputStream getoutputstream() { return basos; byte[] tobytearray() { return basos.tobytearray(); 18

19 Przykład c.d. public class TextToHtmlFilter implements Filter { public void dofilter(servletrequest request, ServletResponse response, FilterChain filterchain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; WrapperIgnorujacyCache wic = new WrapperIgnorujacyCache(req); WrapperZBufforem wzb = new WrapperZBufforem(res); filterchain.dofilter(wic, wzb); String prefix = "<html><body background=\"tlo.png\"><pre>"; String suffix = "</pre></body></html>"; StringBuilder sb = new StringBuilder(prefix); String oryginalnydokument = new String(wzb.toByteArray()); sb.append(oryginalnydokument); sb.append(suffix);... res.setcontenttype("text/html;charset=utf8"); res.setcontentlength(sb.length()); PrintWriter pw = res.getwriter(); pw.println(sb.tostring()); 19

20 Filtry c.d. dla każdego wpisu <filter> będzie jeden egzemplarz filtru na każdej maszynie wirtualnej filtry muszą być przygotowane na współbieżną obsługę wielu żądań domyślnie filtrowanie odbywa się tylko dla zwykłych żądań, ale można zażądać również filtrowania RequestDispatcher.forward(), RequestDispatcher.include() i strony obsługi błędów <filter-mapping> <filter-name>jakiśfiltr</filter-name> <url-pattern>/*</url-pattern> <dispatcher>request</dispatcher> <dispatcher>forward</dispatcher> <dispatcher>include</dispatcher> <dispatcher>error</dispatcher> </filter-mapping> 20

21 MVC z filtrami zamiast serwletów serlwety są dobre jeżeli decyzja jaki widok wyświetlić jest podejmowana na podstawie reguł biznesowych 1) grupa powiązanych żądań jest przetwarzana przez jeden serwlet 2) serwlet przyjmuje dane i tworzy odpowiednie JavaBeany 3) potem przy pomocy RequestDispatchera przekierowuje żądanie do odpowiedniej strony JSP, np. na podstawie wyniku jakiś obliczeń filtry używamy jak potrzeba dodatkowej konfigurowalności, bo nie trzeba w nich kodować jaki widok następnie wyświetlić i dodawać mechanizmu pozwalającego wybrać (np. jakiegoś dodatkowego parametru żądania) np. JSP generujące XML i HTML 21

22 Jeszcze trochę o sesji Standardowo numer sesji jest trzymany w cookie POST /servlet/testservlet HTTP/1.1 User-Agent= MOZILLA/1.0 cookie=jsessionid=61c4f e70993e c6 Content-Type: application/x- userid=john ponieważ cookisy można użyć do szpiegowania, niektórzy je wyłączają Do przepisywania URLi służy metoda encodeurl(string), a do użytku z HttpServletResponse.sendRedirect() metoda encoderedirecturl(string) identyfikator jest dodawany po ; zamiast po? (np. /wyklad/testsevlet;jsessioid= ) w takiej aplikacji nie można używać zasobów statycznych (np. stron HTML), trzeba je przefiltrować/przepchnąć przez serwlet i przepisywać zawarte w nich adresy 22

23 Jeszcze trochę o listenerach HttpSessionAttributeListener już omawialiśmy dodawanie, usuwanie i zmienianie atrybutu wskazujemy w deskryptorze (będzie jeden egzemplarz) HttpSessionListener np. można spamiętywać aktywne sesje sessioncreated()/destroyed() sessiondestroyed() woływane po zniszczeniu s. więc nie można w niej grzebać wskazujemy w deskryptorze (będzie jeden egzemplarz) HttpSessionBindingListener implementują obiekty, które chcą wiedzieć kiedy są dodawane (valuebound()) lub usuwane (valueunbound()) z sesji w tych metodach mamy dostęp do sesji, a przez nią do kontekstu nie informujemy o nim w deskryptorze (egzemplarzami są wartości atrybutów) HttpSessionActivationListener używany do informowania atrybutów przy migrowaniu sesji między JVM w klastrze 23

24 Pytanie W sesji przechowywane jest ID. W chwili usuwania sesji trzeba na jego podstawie wykonać pewne sprzątanie. Jak to zrobi? sessiondestroyed() z HttpSessionListener nie odczyta już ID trzeba zrobić wrapper dla ID, który będzie implementował HttpSessionBindingListener 24

25 Java Server Pages 25

26 Składnia dowolny HTML (template) dyrektywa %> <%! deklaracja %> <% skryptlet %> <%= wyrażenie %> <jsp:nazwaakcji /> <%-- komentarz --%> 26

27 Przykład <?xml version="1.0" encoding="utf8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html xmlns=" <head> <meta http-equiv="content-type" content="text/html; charset=utf8" /> <title>witaj świecie</title> </head> <body> page language="java" contenttype="text/html; charset=utf8" pageencoding="utf8" %> <%! int licznik = 0; %> <% licznik++; %> Witaj świecie (liczba wejść <%= licznik %>) <%-- to jest komentarz --%> </body> </html> 27

28 Fragment wygenerowanego serwletu Opracował public final class WitajSwiecie_jsp extends org.apache.jasper.runtime.httpjspbase implements org.apache.jasper.runtime.jspsourcedependent { int licznik = 0; public void _jspservice(httpservletrequest request, HttpServletResponse response) throws java.io.ioexception, ServletException { PageContext pagecontext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this;... 28

29 Fragment wygenerowanego serwletu c.d. Opracował... try { response.setcontenttype("text/html; charset=utf8"); pagecontext = _jspxfactory.getpagecontext(this, request, response, null, true, 8192, true); application = pagecontext.getservletcontext(); config = pagecontext.getservletconfig(); session = pagecontext.getsession(); out = pagecontext.getout();... out.write("<html xmlns=\" licznik++; out.write("witaj świecie (liczba wejść "); out.print( licznik ); out.write(")\n"); out.write("</body>\n"); out.write("</html>"); catch (Throwable t) {... finally {... 29

30 Składnia XML <?xml version="1.0" encoding="utf-8"?> <jsp:root xmlns:jsp=" version="2.0"> <jsp:directive.page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8" /> <jsp:text> <![CDATA[ <?xml version="1.0" encoding="utf-8"?> ]]> </jsp:text> <jsp:text> <![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " transitional.dtd"> ]]> </jsp:text> <html xmlns=" <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>składnia XML</title> </head> <body> <jsp:declaration> String kto="ala"; </jsp:declaration> <jsp:scriptlet> String pozdr="witaj "+kto+"!"; </jsp:scriptlet> <jsp:expression> pozdr </jsp:expression> </body> </html> </jsp:root> 30

31 Dyrektywy dyrektywa lista-atrybutów %> możliwe dyrektywy to page, include, taglib lista atrybutów istotna jest wielkość znaków wartości muszą być otoczone parą " lub ' przed i po = nie może być spacji przykłady <%@ page language="java" %> <%@ include file="plik.html" %> <%@ taglib prefix="test" uri="taglib.tld" %> 31

32 Deklaracje mogą zawierać dowolne Javowe deklaracje włącznie z klasami wewnętrznymi i blokami inicjalizacji statycznej. kilka deklaracji w jednym bloku <%! String[] wykłady = {"Wprowadzenie", "JavaMail", "Serwlety", "Serwlety c.d.", "JSP"; String getwykład(int i) { return wykłady[i-1]; %> deklaracje w oddzielnych blokach <%! String[] wykłady = {"Wprowadzenie", "JavaMail", "Serwlety", "Serwlety c.d.", "JSP"; %> <%! String getwykład(int i) { return wykłady[i-1]; %> 32

33 Skryptlety zawierają kod umieszczany w metodzie service() silnik JSP sam deklaruje dla nas kilka zmiennych, np. response i out <%! int i = 0; %> <% response.setcontenttype("text/html;charset=utf8"); %> out.println("<html>"); out.println("<head>"); out.println("</head>"); out.println("<body>"); out.println("<h3>liczniknaatrybucie</h3>"); out.println("aktualna wartość: " + i++); out.println("</body>"); out.println("</html>"); 33

34 Wyrażenia wypisują wartość zmiennej typu podstawowego lub napisu reprezentującego obiekt (nie kończą się średnikiem) <%! int wartośćcałkowita = 7; boolean wartośćlogiczna = true; char getlitera() { return 'A'; //nie może być void Float obiektfloat = new Float(12.6f); String napis = "jakiś napis"; StringBuilder bufor = new StringBuilder("początek"); %> <ul> <li>123=<%= 123 %></li> <li>wartośćcałkowita=<%= wartośćcałkowita %></li> <li>wartośćlogiczna=<%= wartośćlogiczna %></li> <li>true=<%= true %></li> <li>!true=<%=!true %></li> <li>getlitera()=<%= getlitera() %></li> <li>math.random()=<%= Math.random() %></li> <li>obiektfloat=<%= obiektfloat %></li> <li>obiektfloat.floatvalue()=<%= obiektfloat.floatvalue() %></li> <li>obiektfloat.tostring()=<%= obiektfloat.tostring() %></li> <li>napis=<%= napis %></li> <li>bufor=<%= bufor %></li> </ul> 34

35 Akcje jsp:include i jsp:forward poprzez RequestDispatcher jsp:usebean, jsp:setproperty i jsp:getproperty jsp:plugin definiowane przez użytkownika (custom tags) 35

36 Komentarze <%-- komentarz JSP --%> <% //komentarz Javy %> <!-- komentarz HTML --> 36

37 Cykl życia tłumaczenie strony (dla całej translation unit) strona może być składana z kawałków przy pomocy dyrektywy include również walidacja składni kompilacja można wymusić kompilację nie wykonując żądania url?jsp_precompile=true lub url?jsp_precompile samemu nie należy stosować parametrów z przedrostkiem jsp załadowanie klasy 37

38 Cykl życia c.d. utworzenie egzemplarza serwlet implementuje javax.servlet.jsp.httpjsppage wywołanie jspinit() można zadeklarować przy pomocy deklaracji <%! %> wywołanie _jspservice() wywołanie jspdestroy() można zadeklarować przy pomocy deklaracji <%! %> 38

39 Dyrektywa page import rozdzielona przecinkiem lista klas i pakietów, które chcemy zaimportować zawsze są importowane javax.servlet.*, javax.sevlet.jsp.*, javax.servlet.http.* przykład <%@ page import="java.util.*, java.io.*" %> session true lub false w zależności od tego czy strona bierze udział w sesji czy nie (decyduje o dostępności session) errorpage względny adres URL, która ma być użyty do obsługi błędów powstałych na tej stronie razem z iserrorpage pozwala wielokrotnie zastosować ten sam kod obsługi błędów dobrą praktyką jest używać tego atrybutu we wszystkich stronach iserrorpage true lub false w zależności od tego czy dana strona może być użyta jako strona obsługi błędów (zmienna exception) 39

40 Przykład Wyjatek.jsp page errorpage="obslugawyjatku.jsp" %> <% if (true) throw new Exception("nasz komunikat"); %> ObslugaWyjatku.jsp <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>obsługa wyjątku</title> </head> <body> <%-- jeżeli chcemy używać zmiennej exception --%> page iserrorpage="true" %> <h1>złapano: <%= exception.getmessage() %></h1> <%-- ta strona mogła by być statyczna --%> </body> </html> 40

41 Dyrektywa page c.d. language jedyna możliwa wartość to java (można nie podawać) extends wskazuje klasę, którą będzie rozszerzał serwlet domyślna klasa zależy od implementacji i zazwyczaj się jej nie zmienia buffer wielkość bufora przechowującego wyjście specyfikacja wymusza przynajmniej 8kb autoflush jak true dane z bufora są wysyłane do klienta w momencie przepełnienia, jak false zgłaszany jest wyjątek info wartość zwracana przez getservletinfo() contenttype domyślnie text/html;iso pageencoding domyślnie ISO

42 Niuanse kolejność deklaracji <body> <%= powitanie %> <%! String powitanie = "Witaj świecie"; %> </body> kolejność skryptletów <body> <% String x = a+b; %> <%-- b jest niezdefiniowane--%> <%! String a = "a"; %> <% String b = "b"; %> </body> inicjalizacja zmiennych <%! int i; %> Atrybut i posiada wartość <%= i %> <br/> <% int j; %> <%-- zmienne w javie nie mają wartości domyślnych --%> Zmienna j posiada wartość <%= j %> oczywiście atrybuty zachowują wartość między wywołaniami 42

43 Instrukcje Javy <% %> if (true) out.println("<code>true</code>"); else out.println("<code>false</code>"); <%-- zazwyczaj nawiasy klamrowe są potrzebne --%> <% if (true) { %> <code>true</code> <% else { %> <code>false</code> <% %> 43

44 Atrybuty wyliczane w chwili wywołania <html xmlns=" <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>akcje</title> </head> <body> <jsp:include page="naglowek.html" /> <h3>treść</h3> <p>to jest treść</p> <% String adresstopki="stopka.html"; %> <jsp:include page="<%= adresstopki %>" /> </body> </html> 44

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

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

Java wybrane technologie spotkanie nr 3. Serwlety

Java wybrane technologie spotkanie nr 3. Serwlety Java wybrane technologie spotkanie nr 3 Serwlety 1 Klient-Serwer Odpowiedzialność serwera przyjmowanie żądań od klienta przygotowywanie odpowiedzi statyczna dynamiczna Rodzaje odpowiedzi statyczna dynamiczna

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

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

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

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

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

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

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

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

Programowanie w Sieci Internet filtry oraz web.xml. Kraków, 11 stycznia 2013 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet filtry oraz web.xml. Kraków, 11 stycznia 2013 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet filtry oraz web.xml Kraków, 11 stycznia 2013 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Filtry, wywoływanie filtrów, wywołania łańcuchowe

Bardziej szczegółowo

Serwlety. Co to jest serwlet? Przykładowy kod serwletu. Po co są serwlety?

Serwlety. Co to jest serwlet? Przykładowy kod serwletu. Po co są serwlety? Serwlety Co to jest serwlet? kawałek kodu w Javie po stronie serwera HTTP rozszerza moŝliwośći serwera CGI, w Javie, wzbogacone o biblioteki ułatwiające Ŝycie programiście (np. utrzymywanie sesji, wpólne

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

Java EE: Serwlety i filtry serwletów

Java EE: Serwlety i filtry serwletów Java EE: Serwlety i filtry serwletów Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 6.9 Celem ćwiczenia jest przedstawienie podstawowej technologii platformy Java

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

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

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

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

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

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

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

Komunikacja między serwletami

Komunikacja między serwletami Poznań Java Users Group Komunikacja między serwletami Bartosz Walter Instytut Informatyki Politechniki Poznańskiej Sceny z życia serwletów Obsługa żądań Żądanie Kontener GET / index.html HTTP/1.0 Serwlet

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

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

Programowanie wielowarstwowe i komponentowe JSP, JSF

Programowanie wielowarstwowe i komponentowe JSP, JSF Programowanie wielowarstwowe i komponentowe JSP, JSF JSP Cykl życia strony JSP Strony JSP są przetwarzane jako servlety, więc dziedziczą po nich wiele cech Kiedy następuje odwołanie do strony JSP, jest

Bardziej szczegółowo

Piotr Laskowski Krzysztof Stefański. Java Servlets

Piotr Laskowski Krzysztof Stefański. Java Servlets Piotr Laskowski Krzysztof Stefański Java Servlets Java Servlets Technologia dynamicznego generowania treści dla aplikacji WWW Wyspecyfikowana przez Sun, obecnie przez Java Community Process Pierwsza formalna

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

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

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

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji Wykład prowadzi Mikołaj Morzy CGI i serwlety Plan wykładu Metody konstrukcji logiki prezentacji Programy CGI Serwlety Java implementacja korzystanie z nagłówków obsługa zmiennych Cookies obsługa sesji

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

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

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

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

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

PaaS technologie i standardy. Paulina Adamska tiia@pjwstk.edu.pl

PaaS technologie i standardy. Paulina Adamska tiia@pjwstk.edu.pl PaaS technologie i standardy Paulina Adamska tiia@pjwstk.edu.pl Plan przedmiotu Technologie webowe Standardy i protokoły wykorzystywane w aplikacjach webowych Wprowadzenie do tematyki chmur Przegląd platform

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

Gatesms.eu Mobilne Rozwiązania dla biznesu

Gatesms.eu Mobilne Rozwiązania dla biznesu Mobilne Rozwiązania dla biznesu SPECYFIKACJA TECHNICZNA WEB API-USSD GATESMS.EU wersja 0.9 Opracował: Gatesms.eu Spis Historia wersji dokumentu...3 Bezpieczeństwo...3 Wymagania ogólne...3 Mechanizm zabezpieczenia

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

Facelets ViewHandler

Facelets ViewHandler JSF i Facelets Wprowadzenie JSP (JavaServer Pages) są natywną i najczęściej używaną technologią do tworzenia warstwy prezentacyjnej dla JSF (JavaServer Faces) Istnieją alternatywne technologie opisu wyglądu

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 Database Connectivity

Java Database Connectivity Java Database Connectivity Celem ćwiczenia jest zbudowanie kilku prostych serwletów z użyciem technologii JDBC. Podczas ćwiczenia zbudowane zostaną serwlety ilustrujące podstawowe techniki łączenia się

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

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

Programowanie w języku Java

Programowanie w języku Java Programowanie w języku Java Wykład 6: Programowanie rozproszone: Servlety, JSP JEE warstwa WWW Programowanie w języku Java 2 1 Interakcje serwer-klient Programowanie w języku Java 3 Technologie warstwy

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

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

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 09 Plan Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 09 T. Romańczukiewicz Jagiellonian University 2009/2010 Plan Plan 1 Serwlety Plan Serwlety Przypomnienie Serwlety - wstęp Wstęp Możliwości

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

Logika prezentacji III

Logika prezentacji III Logika prezentacji III wykład prowadzi Mikołaj Morzy Logika prezentacji 1 Plan wykładu Szablony JSP cykl życia deklaracje dyrektywy skryptlety język EL Inne technologie szablonów Velocity WebMacro FreeMarker

Bardziej szczegółowo

SOAP. Autor: Piotr Sobczak

SOAP. Autor: Piotr Sobczak SOAP Autor: Piotr Sobczak AGENDA: Trochę o Web Services Wprowadzenie do SOAP Anatomia komunikatu SOAP Wysyłanie i otrzymywanie komunikatu SOAP oraz API Javy w przykładach SOAP z załącznikami SOAP-RPC Obsługa

Bardziej szczegółowo

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF O mnie 12 lat doświadczenia w systemach WEB Java/JEE (ISC) 2 CISSP CTO w J-LABS GET / HTTP/1.1 Host: bank.pl User-Agent: Mozilla/5.0

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

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

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

Wprowadzenie do J2EE. Maciej Zakrzewicz. Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/

Wprowadzenie do J2EE. Maciej Zakrzewicz. Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ 1 Wprowadzenie do J2EE Maciej Zakrzewicz Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ Plan rozdziału 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji

Bardziej szczegółowo

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.pl Serwer aplikacji Serwer aplikacji to: Serwer wchodzący w skład sieci komputerowej, przeznaczony

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

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

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

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

TIN Techniki Internetowe Lato 2005

TIN Techniki Internetowe Lato 2005 TIN Techniki Internetowe Lato 2005 Grzegorz Blinowski Instytut Informatyki Politechniki Warszawskiej Plan wykładów 2 Intersieć, ISO/OSI, protokoły sieciowe, IP 3 Protokoły transportowe: UDP, TCP 4 Model

Bardziej szczegółowo

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Tomasz Kuczyński Dział Aplikacji Tomasz Nowak Zespół Bezpieczeństwa Wrocław, 2.12.2010 r. Konferencja i3: internet

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

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

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008 Adam 1 grudnia 2008 Wstęp Opis Historia Apache kontener serwletów rozwijany w ramach projektu Apache jeden z bardziej popularnych kontenerów Web open source, Apache Software License rozwijany przez ASF

Bardziej szczegółowo

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.pl Serwer aplikacji Serwer aplikacji to: Serwer wchodzący w skład sieci komputerowej, przeznaczony

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

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ć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

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

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Języki i metody programowania Java INF302W Wykład 3 (część 1) Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,

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

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 9 Serializacja Przygotował: Jacek Sroka 2 Przypomnienie Abstrakcja strumienia hierarchia binarna InputStream/OutputStream hierarchia znakowa Reader/Writer

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

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Budowa prostej aplikacji wielowarstwowej Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz Konfigurowanie edytora programu za pomocą Tools/Options/Editor Konfigurowanie edytora programu za pomocą

Bardziej szczegółowo

Programowanie Obiektowe Ćwiczenie 4

Programowanie Obiektowe Ćwiczenie 4 Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Java Server Faces - wprowadzenie

Java Server Faces - wprowadzenie Java Server Faces - wprowadzenie Java Server Faces (JSF) jest najpopularniejszą technologią opartą o język JAVA, służącą do tworzenia aplikacji webowych (dynamicznych stron WWW). pomimo że JSF i EJB wchodzą

Bardziej szczegółowo

Java wybrane technologie

Java wybrane technologie Java wybrane technologie spotkanie nr 14 Bezpieczeństwo Podstawowe pojęcia uwierzytelniania (authentication) autoryzacja (authorization) atrybuty bezpieczeństwa informacji integralność danych (data integrity)

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

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

Architektura Model-View-Controller

Architektura Model-View-Controller 172 Architektura Model-View-Controller Maciej Zakrzewicz Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ JSP Model 1 173 1 JSP 3 2 Klasa zewnętrzna (np. JavaBean) 2 1. Przeglądarka

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss. 1 Enterprise JavaBeans 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss. 2 Enterprise JavaBeans Enterprise JavaBeans (EJB) to specyfikacja

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo