Języki i Techniki Programowania II. Wykład 13. TRaX, Applety, Java Security



Podobne dokumenty
Przetwarzanie dokumentów XML i zaawansowane techniki WWW Przetwarzanie dokumentów XML za pomocą procesora XSLT (Zajęcia r.

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

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

Kurs WWW Język XML, część II

XML Path Language (XPath)

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

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

Prezentacja i transformacja

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

XML materiały dydaktyczne - Kurs Podstawowy XSL - wprowadzenie. XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO).

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths

Definicja. Aplety są wykonywane po stronie klienta, serwlety po stronie serwera.

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Programowanie obiektowe

XML extensible Markup Language 3

Prezentacja i transformacja

XML extensible Markup Language. część 6

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

XML extensible Markup Language. część 3

Wykład 11: Programowanie Apletów

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016

XML extensible Markup Language. część 4

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

Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Wprowadzenie do XSLT

Tworzenie i obsługa graficznego interfejsu uŝytkownika

XML extensible Markup Language. część 8

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

Extensible Markup Language III

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Podstawy Programowania

Rodzaje przetwarzania XSLT (1)

XSLT. Patryk Czarnik. Instytut Informatyki UW. XML i nowoczesne technologie zarzadzania treścia 2007/08

Operatory. Składnia. Typy proste. Znaki specjalne

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2007/08

XSL, tj. XSLT i XSL-FO czyli jak przekształcać i ładnie wyświetlać XML-e. Kuba Pochrybniak

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

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

Podpisywanie i bezpieczne uruchamianie apletów wg

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Laboratorium Programowania Kart Elektronicznych

XML & XSLT. Programowanie w Javie 2

XPath XML Path Language. XSL Extensible Stylesheet Language. Wyrażenia XPath. XPath data model. Location paths. Osie (axes)

Zaawansowane aplikacje WWW - laboratorium

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

Technologie internetowe

Aplikacje internetowe laboratorium XML, DTD, XSL

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2008/09. Instytut Informatyki UW

Wprowadzenie do standardu XSL

UCHWAŁA NR II/17/2014 RADY GMINY PRZODKOWO. z dnia 30 grudnia 2014 r.

Programowanie komputerów Wykład 6: Aplety Java

Wykorzystywanie parsera DOM w programach Java i PL/SQL

<body> <div style="max-width: 900px; margin: 0 auto;">

Podstawy programowania GUI niskiego poziomu. APLETY.

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2008/09. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2008/09 1 / 1

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Informacja podatku łączny styl

1 Atrybuty i metody klasowe

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

Układ informacji i powiązań między danymi w deklaracji w formacie XML

Ćwiczenie 1. Przygotowanie środowiska JAVA

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

Załącznik nr 2 do uchwały Nr XXII/ 141 /2013 Rady Gminy Bojszowy z dnia r. <?xml version="1.0" encoding="utf-8"?>

Java jako zdalny interfejs aplikacji Webowych aplety

Bezpieczne uruchamianie apletów wg

Multimedia JAVA. Historia

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

UCHWAŁA NR L/932/13 RADY MIASTA MYSŁOWICE. z dnia 19 grudnia 2013 r.

Programowanie obiektowe zastosowanie języka Java SE

<meta:wartosc> </meta:identyfikator> <meta:rodzajrelacji>maczesc</meta:rodzajrelacji>

JavaFX. Programowanie Obiektowe Mateusz Cicheński

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2011/12

Podstawowe informacje o apletach

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Podstawy XML-a. Zaawansowane techniki programowania

Java Platform Micro Edition

Programowanie w języku Java

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2011/12. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2011/12 1 / 54

Wykład 5_2 Arkusze stylów dziedziczenie. Technologie internetowe Zofia Kruczkiewicz

METODY REPREZENTACJI INFORMACJI

Aplikacje RMI

Języki XPath i XQuery

Java jako język programowania

Języki XPath i XQuery

Aplikacje WWW - laboratorium

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Young Programmer: HTML+PHP. Dr inż. Małgorzata Janik, Zajęcia #2

Wstęp do programowania w języku Java

UCHWAŁA NR 135/XXVII/13 RADY MIASTA ZAMBRÓW. z dnia 26 marca 2013 r.

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Transkrypt:

Języki i Techniki Programowania II Wykład 13 TRaX, Applety, Java Security

XPath javax.xml.xpath XPathFactory factory = XPathFactory.newInstance() (DEFAULT_OBJECT_MODEL_URI) XPath xp = factory.newxpath() xp.evaluate(string expression, InputSource is)

XPath /step/step... bądź step/step... step jest postaci axisname::nodetest[predicate] axis: ancestor, ancestor-or-self, attribute, child, descendant, descendant-or-self, following, following-sibling, parent, preceding, precedingsibling, self test: nazwa, wyrażenie albo text(), node()

XPath <?xml version="1.0" encoding="iso 8859 1"?> <bookstore> <book> <title lang="eng">harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">learning XML</title> <price>39.95</price> </book> </bookstore>

XPath Przykłady: xmldoc.selectnodes("bookstore") dzieci bookstore xmldoc.selectnodes("/bookstore") bookstore xmldoc.selectnodes("/bookstore/book") dzieci typu book xmldoc.selectnodes("//book") jakiekolwiek book xmldoc.selectnodes("bookstore//book ) jakiekolwiek book o przodku bookstore xmldoc.selectnodes("//@lang ) wszystkie atrybuty lang

XPath Przykłady z warunkami: xmldoc.selectnodes("/bookstore/book[0]") pierwszy book xmldoc.selectnodes("/bookstore/book[last()]") ostatni book xmldoc.selectnodes("/bookstore/book[price>35]/price") xmldoc.selectnodes("/bookstore/book[price>35]/title") xmldoc.selectnodes("/bookstore/book[@category='cooking'] [@available='true'] ) xmldoc.selectnodes("/bookstore/*") jakiekolwiek dziecko xmldoc.selectnodes("///book[@*]") book ktory ma jakikolwiek atrybut xmldoc.selectnodes("//book //title") unia wezlow

XPath Przykłady z osiami: node.selectnodes("child::book") potomkowie book node.selectnodes("sibling::*") rodzenstwo obecnego wezla node.selectnodes("following::*") wszystkie wezly dalej w dokumencie node.selectnodes("following sibling::*") wszystkie wezly rodzenstwo dalej w dokumencie node.selectnodes("descendant::*") wszyscy potomkowie node.selectnodes("parent::*") przodek

Transformacje XSLT Transformacje: zamieniają dokument XML przy użyciu dokumentu XSL <xsl:template> - value match określa przez XPath jaką cześć dokumentu XML zastosować <xsl:template match="/"><html>...</html></xsl:template match> <xsl:value-of select="catalog/cd/title"/> - wyciąga przez XPath wartość z dokumentu XML <xsl:for-each select="catalog/cd"> - stosowany jest dla każdego węzła z podanego zbioru <xsl:sort select= artist > - sortuje wewnątrz for-each

Transformacje XSLT <xsl:choose> <xsl:when test="expression">... some output... </xsl:when> <xsl:otherwise>... some output... </xsl:otherwise> </xsl:choose> <xsl:if test=... >...</xsl:if>

XML Przykładowy <?xml version="1.0" encoding="iso 8859 1"?> <?xml stylesheet type="text/xsl" href="cdcatalog.xsl"?> <catalog> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <country>usa</country> <company>columbia</company> <price>10.90</price> <year>1985</year> </cd>... </catalog>

XSL Style Sheet <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <h2>my CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">title</th> <th align="left">artist</th> </tr>

XSL Style Sheet <xsl:for each select="catalog/cd"> <tr> <td><xsl:value of select="title"/></td> <td><xsl:value of select="artist"/></td> </tr> </xsl:for each> </table> </body> </html> </xsl:template>

XSL Style Sheet <xsl:sort select="artist"/> <xsl:if test="price > 10">......some output if the expression is true...... </xsl:if>

XSL Style Sheet <xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value of select="artist"/></td> </xsl:when> <xsl:otherwise> <td><xsl:value of select="artist"/></td> </xsl:otherwise> </xsl:choose>

XSL Style Sheet <?xml version="1.0" encoding="iso 8859 1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <h2>my CD Collection</h2> <xsl:apply templates/> </body> </html> </xsl:template>

XSL Style Sheet <xsl:template match="cd"> <p> <xsl:apply templates select="title"/> <xsl:apply templates select="artist"/> </p> </xsl:template> <xsl:template match="artist"> Artist: <span style="color:#00ff00"> <xsl:value of select="."/></span> <br /> </xsl:template> </xsl:stylesheet>

Transformacje XSLT TransformerFactory factory = TransformerFactory.newInstance(); factory.seterrorresolver(myerrorresolver); factory.seturiresolver(myuriresolver); Transformer transformer = factory.newtransformer(new StreamSource("sheet.xsl")); transfomer.transform(new StreamSource("documentA.xml"), new StreamResult(System.out));SAX

Transformacje XSLT Dopuszczalne typy rezultatów: SAXResult DOMResult StreamResult Zmienia najczęściej jeden dokument XML w drugi

Applety <applet name="jsapplet" [niewymagany] archive="jsapplet.jar" code="helloworldapplet" width="300" MAYSCRIPT [niewymagany] height="300" codebase=url [niewymagany] alt=text [niewymagany] > <param name=parametr1 value= 4 >... </applet>

Applety <object classid="clsid:8ad9c840 044E 11D1 B3E9 00805F499D93" width= "290" height= "290" style="border width:0;" id="rup" name="rup" codebase="http://java.sun.com/products/plugin/autodl/jinstall 1_4_1 windows i586.cab#version=1,4,1"> <param name="archive" value="jsapplet.jar"> <param name="code" value="com.raditha.articles.jshelloworld"> <param name="mayscript" value="yes"> <param name="scriptable" value="true"> <param name="name" value="jsapplet"> </object>

Applety import javax.swing.japplet; import java.awt.graphics; public class HelloWorld extends JApplet { public void paint(graphics g) { g.drawrect(0, 0, getsize().width 1, getsize().height 1); g.drawstring("hello world!", 5, 15); } }

Applety import java.applet.applet; import java.awt.graphics; public class Simple extends Applet { StringBuffer buffer; public void init() { buffer = new StringBuffer(); additem("initializing... "); } public void start() { additem("starting... "); }

Applety public void stop() { additem("stopping... "); } public void destroy() { additem("preparing for unloading..."); } private void additem(string newword) { System.out.println(newWord); buffer.append(newword); repaint(); }

Applety public void paint(graphics g) { //Draw a Rectangle around the applet's display area. g.drawrect(0, 0, getwidth() 1, getheight() 1); //Draw the current string inside the rectangle. g.drawstring(buffer.tostring(), 5, 15); } }

Applety public void paint(graphics g) { //Draw a Rectangle around the applet's display area. g.drawrect(0, 0, getwidth() 1, getheight() 1); //Draw the current string inside the rectangle. g.drawstring(buffer.tostring(), 5, 15); } }

Applety Applety nie mogą: Ładować bibliotek lokalnych i wywoływać metod natywnych Czytać i pisać do plików Łączyć się z innym hostem niż ten z którego zostały ściągnięte Uruchamiać lokalnie poleceń Okna otwierane przez applet wyglądają inaczej niż te otwierane przez aplikację

Applety Applety: Uruchamiane mogą być są przez appletviewer Odmalowywanie odbywa się poprzez: wywołanie paint(graphics g) przez wątek obsługi zdarzeń (np. gdy zostanie odsłonięty ekran) można przeciążyć wywołanie repaint() które informuje wątek obsługi zdarzeń by wywołał update() update(graphics g) czyści kontekst, woła paint można przeciążyć

Applety Double buffering init(): offscreen = createimage(dim.width,dim.height); buffergraphics = offscreen.getgraphics(); paint(): buffergraphics.clearrect (0,0,dim.width,dim.width); buffergraphics.fillrect(curx,cury,20,20);... update składa sie wtedy tylko z paint()

Applety Applety mają: Dostęp do przeglądarki w której zostały uruchomione getappletcontext().showdocument(url); getappletcontext().showdocument(url,target); Dostęp do metod publicznych appletów na tej samej stronie Applet2 applet2 = (Applet2)getAppletContext().getApplet ("applet2"); Możliwość wywoływać JavaScript import netscape.javascript.jsobject;//!!!!! call(string,object[]) eval(string)

Bezpieczeństwo Appletów policytool - java.home\lib\security\java.security

Podpisywanie Appletów Czynności nadawcy: keytool -genkey służy do generowania self-signed certificate jarsigner służy do podpisywania appletów keytool -export służy do przekazania klucza publicznego odbiorcy Czynności odbiorcy: keytool -import importuje klucz zmiana policy przez podanie odpowiedniego klucza

Podpisywanie Appletów Czynności nadawcy: keytool -certreq stworzenie Certificate Signing Request, i przesłanie do Certificate Authority (np. Verisign) keytool -import zaimportowanie odpowiedzi CA jarsigner Czynności odbiorcy: