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

Podobne dokumenty
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 Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Serwery aplikacji. dr Radosław Matusik. radmat

Wybrane działy Informatyki Stosowanej

Serwery aplikacji. dr Radosław Matusik. radmat

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

Java wybrane technologie

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

prepared by: Programowanie WWW Servlety

Aplikacje Internetowe, Servlety, JSP i JDBC

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

1 Wprowadzenie do J2EE

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

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Serwery aplikacji. dr Radosław Matusik. radmat

mgr inż. Michał Paluch

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

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

Podstawy i języki programowania

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

Piotr Laskowski Krzysztof Stefański. Java Servlets

Tworzenie i wykorzystanie usług

akademia androida Składowanie danych część VI

Wzorce prezentacji internetowych

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

JavaServer Pages. Konrad Kurdej Karol Strzelecki

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

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Podstawowe wykorzystanie Hibernate

Kurs WWW 1. Paweł Rajba

Facelets ViewHandler

Java wybrane technologie spotkanie nr 5. Java Server Pages

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

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

Złożone komponenty JSF wg

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Sesje i logowanie. 1. Wprowadzenie

Programowanie w Ruby

Złożone komponenty JSF wg

Testowanie aplikacji. Kurs języka Ruby

Aplikacje internetowe - laboratorium

Java Server Faces narzędzie do implementacji w wy prezentacji

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

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Aplikacje internetowe i rozproszone - laboratorium

Zaawansowane aplikacje internetowe laboratorium

Laboratorium 7 Blog: dodawanie i edycja wpisów

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Aplikacje WWW - laboratorium

Gatesms.eu Mobilne Rozwiązania dla biznesu

Programowanie 3 - Funkcje, pliki i klasy

Architektury Usług Internetowych. Laboratorium 1. Servlety

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Testowanie aplikacji Java Servlets

Podejście obiektowe do relacyjnych baz danych Hibernate.

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

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

PHP: bloki kodu, tablice, obiekty i formularze

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

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

prepared by: Programowanie WWW Model-View-Controller

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Java Database Connectivity

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Aplikacje Internetowe

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Zaawansowane aplikacje WWW - laboratorium

Kurs programowania aplikacji bazodanowych

Wprowadzenie do Doctrine ORM

Serwlety i JSP na platformie Java EE. Damian Makarow

Programowanie w języku Java

Tomasz Dobek.

Programowanie współbieżne i rozproszone

Dziedziczenie. dr Jarosław Skaruz

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

Diagramy klas. dr Jarosław Skaruz

Specyfikacja implementacyjna aplikacji serwerowej

Leszek Stasiak Zastosowanie technologii LINQ w

HttpRequest Aplikacja Czat

Architektury Usług Internetowych. Laboratorium 1 Servlety

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

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

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

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

Programowanie obiektowe

Podstawy technologii WWW

J2EE wzorce projektowe. Alicja Truszkowska

QualitySpy moduł persystencji

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Serwery Statefull i Stateless

Pakiety podprogramów Dynamiczny SQL

Zastosowanie komponentów EJB typu Session

Comarch e-sklep Sync. wersja

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

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Transkrypt:

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 JSP pod lupą.

JSP tags JSTL - to standardowa biblioteka tagów do JSP. Biblioteka ta zawiera tagi pozwalające nam iterować, tworzyć zapytania logiczne, manipulować dokumentami XML, internacjonalizować naszą stronę, czy tworzyć zapytania SQL. Bibliotekę JSTL można podzielić na kilka grup tagów: Core tags (najczęściej używane tagi), tagi formatujące, tagi SQL, tagi XML, funkcje JSTLowe. Po pobraniu i rozpakowaniu JARki z tagami, należy ją umieścić w katalogu WEB-INF\lib a następnie inkludować dyrektywę <taglib> na początku każdego pliku JSP, który ma korzystać z tych tagów.

Używanie tagów Na początku pliku JSP umieszczamy dyrektywę <% taglib prefix= c uri= http://java.sun.com/jsp/jstl/core %> // core tags <% taglib prefix= fmt uri= http://java.sun.com/jsp/jstl/fmt %> // tagi formatujące <% taglib prefix= sql uri= http://java.sun.com/jsp/jstl/sql %> // tagi SQL <% taglib prefix= xml uri= http://java.sun.com/jsp/jstl/xml %> // tagi XML <% taglib prefix= fn uri= http://java.sun.com/jsp/jstl/functions %> // funkcje JSTLowe Teraz możemy używać tagi JSTL tak jak tagi HTML używając odpowiedniego prefiksu. <c:out value= ${ something } > - działa jak <%=... > <c:set var= val scope= Session value= ${2*2+2} /> <c:if test= ${val>0} >...</c:if> - ewaluuje body jeżeli podane warunki zostaną spełnione <fmt:formatdate pattern= dd-mm-yyyy value= <%=new java.util.date()%> /> <sql:query datasource= ${dsname} var= result >SELECT * from testtable</sql:query> <xml:parse xml= ${importedfile} var= output /> - parsuje dokument xmlowy do output ${fn:indexof(string, searchfor )} - wyszukuje index w którym zaczyna się wyszukiwany string wewnątrz zadanego stringu.

Custom tags Oczywiście można tworzyć własne tagi. Tag składa się z taga otwierającego, body i taga zamykającego. Jeśli tag nie posiada body, to może być on zakończony w tagu otwierającym poprzez umieszczenie na końcu, przed znakiem zamykającym nawias trójkątny, znaku /. Aby napisać własny tag rozszerz klasę SimpleTagSupport i nadpisz metodę dotag() public class mytag extends SimpleTagSupport { public void dotag() throws JspException, IOException { getjspcontext().getout().println( print tag value ); } } Aby dostać się do atrybutów wystarczy utworzyć w klasie pola o takich samych nazwach i przygotować do nich settery. Aby dostać się do zawartości body, użyj metody getjspbody(), możesz wywołać na nim także invoke(writer writer) i zapisać zawartość do writera.

Obiekty JSP W jsp mamy do czynienia z kilkoma obiektami, które pomagają nam w zarządzaniu aplikacją, odbieraniu i wysyłaniu zapytań oraz tworzenia samego wyglądu strony. request, response, out, session, application, config, pagecontext, page, Exception.

Obiekty JSP pod lupą Request jest obiektem zawierającym parametry zapytania (header). Request zawiera tablice ciasteczek, enumerator nazw atrybutów, enumerator nazw parametrów, sesję, język (Locale) itp. Response jest natomiast obiektem zawierającym odpowiedź od klienta. Response może zdekodować URL, sprawdzić czy odpowiedź zawiera podany header, dodać header, dodać ciasteczko, wysłać błąd HTTP, ustawić kodowanie i wiele innych. Response zawiera także metodę pozwalającą wyczyścić cały request. Out to obiekt PrintWriter a pozwalający na wypisywanie tekstu na stronie. Session to obiekt sesji który zawiera atrybuty wraz z wartościami (nazwa atrybutu to String a wartość to Object). Ponadto, sesja ma swoje Id, datę stworzenia, datę ostatniego dostępu oraz maksymalny czas bez aktywności, po którym sesja wygasa. Sesja zwraca także wartość boolean isnew, która mówi nam o tym, że dany klient jeszcze nie dołączył do sesji, lub jeszcze się nie dowiedział o jej istnieniu.

Obiekty JSP pod lupą cd. Obiekt config daje dostęp do parametrów inicjalizacyjnych z web.xml Za jego pomocą możemy dostać się do konfiguracji serwera, połączenia z bazą danych etc.: config.getinitparameter("initparametername"); Natomiast taki parametr umieszczamy w web.xml: <init-param> <param-name>initparametername</param-name> <param-value>6</param-value> </init-param> Może to być dowolny sterownik bazy danych etc. PageContext to objekt odpowiadający całej stronie JSP. PageContext definiuje kilka pól, takich jak: PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, APPLICATION_SCOPE.

Dziękuję za uwagę!