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-www.formurlencoded 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" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <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=\"http://www.w3.org/1999/xhtml\">\n");... 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="http://java.sun.com/jsp/page" 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" "http://www.w3.org/tr/xhtml1/dtd/xhtml1- transitional.dtd"> ]]> </jsp:text> <html xmlns="http://www.w3.org/1999/xhtml"> <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="http://www.w3.org/1999/xhtml"> <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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Projektowanie aplikacji J2EE w architekturze Model-View-Controller XI Konferencja PLOUG Kościelisko Październik 2005 Projektowanie aplikacji J2EE w architekturze Model-View-Controller Maciej Zakrzewicz PLOUG, Instytut Informatyki Politechniki Poznańskiej mzakrz@cs.put.poznan.pl

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Testowanie aplikacji Java Servlets

Testowanie aplikacji Java Servlets Borland Developer Days 2004 2-3 czerwca 2004 Testowanie aplikacji Java Servlets Bartosz Walter mailto: Bartek.Walter@man.poznan.pl Agenda Aplikacje Java Servlets TM Jak testować aplikacje internetowe?

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

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

Bardziej szczegółowo

rk HTML 4 a 5 różnice

rk HTML 4 a 5 różnice rk HTML 4 a 5 różnice kompatybilność Pierwszym dużym plusem języka HTML 5 jest to, że jest zdefiniowany w sposób umożliwiający kompatybilność wstecz. Składnia Przykład dokumentu podporządkowującego się

Bardziej szczegółowo

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

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

Zaawansowane aplikacje internetowe laboratorium

Zaawansowane aplikacje internetowe laboratorium 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

Strumienie i serializacja

Strumienie i serializacja Strumienie i serializacja Prezentacja dostępna na Syriuszu: http://sirius.cs.put.poznan.pl/~inf80156 Klasy: InputStream, OutputStream, Reader i Writer W Javie hierarchia strumieni oparta jest o cztery

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

Programowanie rozproszone w języku Java

Programowanie rozproszone w języku Java Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz

Bardziej szczegółowo

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych Plan prezentacji Budowa aplikacji w technologii Enterprise JavaBeans Przegląd architektur aplikacji rozproszonych: CORBA,, Wprowadzenie do Enterprise JavaBeans () Budowa komponentów sesyjnych Budowa komponentów

Bardziej szczegółowo

Java rozszerzenie. dr. A. Dawid

Java rozszerzenie. dr. A. Dawid Java rozszerzenie PLAN WYKŁADU 1. Java2D AWT SWING Inicjalizacja Metody 2. JDBC Connector 3. Programowanie sieciowe Socket ServerSocket 4. Servlety Serwer internetowy Klasa HttpServlet 5. JSP 6. Java3D

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

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

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka Sesje, ciasteczka, wyjątki Nie sposób wyobrazić sobie bez nich takich podstawowych zastosowań, jak logowanie użytkowników czy funkcjonowanie koszyka na zakupy. Oprócz tego dowiesz się, czym są wyjątki,

Bardziej szczegółowo

J2EE wzorce projektowe. Alicja Truszkowska

J2EE wzorce projektowe. Alicja Truszkowska J2EE wzorce projektowe Alicja Truszkowska Motywacja Znaczące miejsce J2EE pośród systemów biznesowych Bogactwo narzędzi i technologii Dobre praktyki projektowania aplikacji Każde, nawet najdoskonalsze

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Java EE 6. Programowanie aplikacji WWW. Krzysztof Rychlicki-Kicior. Ju dzi si gn po jedyne kompendium wiedzy na temat Java EE!

Java EE 6. Programowanie aplikacji WWW. Krzysztof Rychlicki-Kicior. Ju dzi si gn po jedyne kompendium wiedzy na temat Java EE! Krzysztof Rychlicki-Kicior Java EE 6 Programowanie aplikacji WWW Szybko i bez k opotów poznaj Java Enterprise Edition Naucz si praktycznie tworzy ciekawe aplikacje WWW Do cz do elity programistów nowoczesnych

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

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

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

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

Java. Michał Wójcik. michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl

Java. Michał Wójcik. michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl Java Michał Wójcik michal.wojcik@eti.pg.gda.pl http://mwojcik.eti.pg.gda.pl Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska 5 kwietnia

Bardziej szczegółowo

Aktywne i dynamiczne strony WWW. Elementy projektowania stron WWW. Część 3. Formularze HTML przykład. Formularze HTML. dr inŝ.

Aktywne i dynamiczne strony WWW. Elementy projektowania stron WWW. Część 3. Formularze HTML przykład. Formularze HTML. dr inŝ. Aktywne i dynamiczne strony WWW Elementy projektowania stron WWW Część 3 dr inŝ. Tomasz Traczyk Formularze HTML Aktywne strony WWW Dynamiczne strony WWW 2 Formularze HTML Formularze HTML przykład Do czego

Bardziej szczegółowo

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG Budowa aplikacji w technologii Enterprise JavaBeans Maciej Zakrzewicz PLOUG Plan prezentacji Przegląd architektur aplikacji rozproszonych: CORBA, SOAP, EJB Wprowadzenie do Enterprise JavaBeans (EJB) Budowa

Bardziej szczegółowo

JavaServer Faces (JSF)

JavaServer Faces (JSF) JavaServer Faces (JSF) Autor wykładu: Marek Wojciechowski Plan wykładu JSF jako infrastruktura aplikacji WWW JSF.x Nowe cechy JSF.0 Java Enterprise Edition (Java EE) JavaServer Faces (JSF) Java Enterprise

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

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Bezstanowe komponenty sesyjne i zdarzenia zwrotne

Bezstanowe komponenty sesyjne i zdarzenia zwrotne Bezstanowe komponenty sesyjne i zdarzenia zwrotne 1. Zdarzenia zwrotne. klasy nasłuchujące, klasy nasłuchujące a dziedziczenie. 2. Bezstanowe komponenty sesyjne. interfejsy: bazowy, zdalny i lokalny, obiekty

Bardziej szczegółowo

Tworzenie Stron Internetowych. odcinek 10

Tworzenie Stron Internetowych. odcinek 10 Tworzenie Stron Internetowych odcinek 10 JavaScript JavaScript (ECMAScript) skryptowy język programowania powszechnie używany w Internecie. Skrypty JS dodają do stron www interaktywność i funkcjonalności,

Bardziej szczegółowo

media Blitz wydajne sytemy szablonów

media Blitz wydajne sytemy szablonów Blitz wydajne sytemy szablonów Dlaczego stosować szablony? MVC Kontroler Model Widok Co to jest Blitz? Rozszerzenie PHP stworzone przez Alexey A. Rybak a. Regularnie rozwijany od 2005 roku. Szybki i lekki

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo