Distribuované systémy a výpočty (02)

Podobné dokumenty
Java a XML. 10/26/09 1/7 Java a XML

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

Distribuované systémy a výpočty

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Základy programování v jazyce JAVA

API pro práci s XML. Jirka Kosek. Poslední modifikace: $Date: 2014/12/17 17:15:28 $ Copyright Jiří Kosek

1. Téma 12 - Textové soubory a výjimky

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Tvorba informačních systémů

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

Jemný úvod do spracovania XML

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

RMI Remote Method Invocation

Distribuované systémy a výpočty

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Základy HTML, URL, HTTP, druhy skriptování, formuláře

X36WWW. Technologie aplikačních serverů. Miroslav Bureš,, Martin Klíma. X36WWW: 12. přednáška 1

Algoritmizace a programování

Typický prvek kolekce pro české řazení

Programování v jazyce JavaScript

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Tvorba informačních systémů

KTE / ZPE Informační technologie

Obsah prezentace. Co je to XML? Vlastnosti. Validita

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition vývoj webových aplikací

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Java a Caché IV: Manipulace s objekty

Programování v Javě I. Únor 2009

Java technologie pro webové aplikace

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Čipové karty Lekařská informatika

Uspořádání klient-server. Standardy pro Web

Serverové skriptovací technologie

Programování v Javě I. Leden 2008

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

Abstraktní datové typy: zásobník

Nainstalujte zvolený server s podporou servletů a JSP, např. Jakarta/Tomcat nebo JBOSS.

Úvod do programovacích jazyků (Java)

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Textové soubory. alg9 1

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu

Tvorba informačních systémů

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Webové Aplikace (6. přednáška)

Programování v jazyce JavaScript

BI-AWD. Administrace Webového a Databázového serveru Úvod do problematiky HTTP serveru

Programování v jazyce JavaScript

Příkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo

Název Live prez Sear enta Maps

Java - výjimky. private void vstup() throws IOException {... }

NSWI096 - INTERNET JavaScript

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Java Výjimky Java, zimní semestr

RDF API a SPARQL syntaxe, API, příklady. 4IZ440 Reprezentace a zpracování znalostí na WWW Josef Petrák me@jspetrak.name

Základy HTML (2. přednáška)

Skriptovací jazyky. Obsah

KIV/PIA 2013 Jan Tichava

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky DIPLOMOVÁ PRÁCE

1. Jazyk XML a formát jeho dokumentů

NSWI096 - INTERNET. Úvod do HTML

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy

WWW technologie. HTTP protokol

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Práce se soubory opakování

Návrh softwarových systém. Návrh softwarových systémů

Úvod do programovacích jazyků (Java)

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

language="javascript">... </script>.

Vývoj Internetových Aplikací

ios Cvičení RSS čtečka

Formuláře. Internetové publikování. Formuláře - příklad

Tvorba stránek v HTML ve Wordu

První kapitola úvod do problematiky

WWW a HTML. Základní pojmy. Ivo Peterka

Programování v jazyce JavaScript

NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Bottle -- příklad. Databáze. Testovací data. id Jedinečný identifikátor řádku: Bude typu INT s AUTO_INCREMENT a nastavíme ho jako primární klíč

Server-side technologie pro webové aplikace

Instalace a konfigurace web serveru. WA1 Martin Klíma

Úvod do XML Technologie

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Programování v jazyce JavaScript

AJAX. Dynamické změny obsahu stránek

Semináˇr Java XI Servlety, JSP Semináˇr Java XI p.1/38

NSWI142 Webové aplikace Zkouškový test

TÉMATICKÝ OKRUH Softwarové inženýrství

BI-AWD. Administrace Webového a Databázového serveru Virtualizace HTTP serveru

Tvorba webových stránek

Transkript:

Distribuované systémy a výpočty (02) p. 1/4 Distribuované systémy a výpočty (02) Jan Janeček katedra počítačů České vysoké učení technické v Praze

Distribuované systémy a výpočty (02) p. 2/4 HTML technologie HTML komunikace WWW stránky CGI skripty Java servlety JSP skriptlety

Distribuované systémy a výpočty (02) p. 3/4 XML technologie XML komunikace XML dokumenty DOM / SAX parsing nástroje XSLT a XPath

Distribuované systémy a výpočty (02) p. 4/4 HTML - HyperText Markup Language <html> <head> <title> HelloWorld </title> </head> <body> <h1> Header<h1> <p> Text... <table> <tr> </tr> </table>... <a href="page-a/index.html">page A</a> </body> </html>

HTML stránka Distribuované systémy a výpočty (02) p. 5/4

Distribuované systémy a výpočty (02) p. 6/4 HTML stránka HTML request http: \\ dsn.felk.cvut.cz \ HelloWorld.html HTML response <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 1.0... <html> <head> <title> HelloWorld </title> </head> <body> <h1> Hello, world! </h1> </body> </html>

Distribuované systémy a výpočty (02) p. 7/4 HTTP protokol HTTP request GET /index.html HTTP/1.1 Host: dsn.felk.cvut.cz HTTP response HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Content-Length: 438 Connection: close Content-Type: text/html; charset=utf-8

CGI script - metoda GET Distribuované systémy a výpočty (02) p. 8/4

Distribuované systémy a výpočty (02) p. 9/4 CGI script - metoda GET Metoda GET http://dsn.felk.cvut.cz/helloworld.cgi #include <stdio.h> int main(void) { printf("content-type: text/plain \n \n"); printf("hello World in C! \n"); }

Distribuované systémy a výpočty (02) p. 10/4 CGI script - metoda GET #include <stdio.h> int main() { printf("content-type: text/html \n \n") ; printf("<html> \n") ; printf("<head> \n") ; printf("<title> HelloWorld </title> \n") ; printf("</head> \n") ; } printf("<body> \n") ; printf("<h1> Hello, world! </h1> \n") ; printf("</body> \n") ; printf("</html> \n") ; exit(0) ;

Distribuované systémy a výpočty (02) p. 11/4 CGI script - metoda GET Předání parametrů http://dsn.felk.cvut.cz/helloworld.cgi? name = value <form action="http://dsn.felk.cvut.cz/cgi-bin/helloworld.cgi" method=get> Name: <input type=text name="name"><br> <input type=submit value="send"> </form>

Distribuované systémy a výpočty (02) p. 12/4 CGI script - metoda GET #include <stdio.h> int main() { char **cgivars ; int i ; cgivars = getcgivars() ; printf("content-type: text/html \n \n") ; printf("<html> \n") ; printf("<head><title>cgi Results</title></head> \n") ; printf("<body> \n") ; printf("<h1> Hello, world! </h1> \n") ; printf("your CGI input variables were: \n") ; printf("<ul> \n") ; for (i=0; cgivars[i]; i+= 2) printf("<li> [%s] = [%s] \n", cgivars[i], cgivars[i+1]) ; printf("</ul> \n") ; printf("</body> \n") ; printf("</html> \n") ; exit(0) ; }

Distribuované systémy a výpočty (02) p. 13/4 CGI script - metoda GET #!/bin/sh echo Content-type: text/html echo echo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> echo <HTML> echo <HEAD> echo <TITLE>CGI GET Service</TITLE> echo </HEAD> echo <BODY> echo <H1>Response :</H1> zpracování parametrů z $QUERY_STRING echo </BODY> echo </HTML>

CGI script - metoda POST Distribuované systémy a výpočty (02) p. 14/4

Distribuované systémy a výpočty (02) p. 15/4 CGI script - metoda POST Metoda POST POST /addmessage HTTP/1.0 Host: www.mailtothefuture.com Content-type: application/x-www-form-u Content-length: 133 data

Distribuované systémy a výpočty (02) p. 16/4 CGI script - metoda POST <form action="http://dsn.felk.cvut.cz/cgi-bin/helloworld.cgi" method=post> Name: <input type=text name="name"><br> <input type=submit value="send"> </form> parametry jsou zpracovány jako standardní vstup...

Distribuované systémy a výpočty (02) p. 17/4 Servlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doget(httpservletrequest rq, HttpServletResponse rsp) throws ServletException, IOException {... } }

Distribuované systémy a výpočty (02) p. 18/4 Servlet public void doget(httpservletrequest rq, HttpServletResponse rsp) throws IOException, ServletException { String name = rq.getparameter("name"); rsp.setcontenttype("text/html"); PrintWriter out = rsp.getwriter(); out.println("... }

Distribuované systémy a výpočty (02) p. 19/4 Servlet public void dopost(httpservletrequest rq, HttpServletResponse rsp) throws ServletException, IOException { doget(rq, rsp); }

Distribuované systémy a výpočty (02) p. 20/4 JSP - Java Server Pages <html> <head> <meta http-equiv="content-type" content="text/html;... > <title>java Server Pages (JSPs)</title> </head> <body style="font-family:comic Sans MS; color:darkblue"> <form action="http://localhost/example.jsp" method="get"> <table border="0"> <tr> <td>first name:</td> <td><input type="text" size="10" name="first"></td> </tr>... </table> <p><input type="submit" value="send"> </p> </form> </body> </html>

Distribuované systémy a výpočty (02) p. 21/4 JSP - Java Server Pages </html> <p>... Your name: <%= getparameter("first") %> <% = getparameter("family") %> </html>...

Distribuované systémy a výpočty (02) p. 22/4 JSP - skriplet <%@ page contenttype="text/xml" import="java.util.*" %> <% String firstname = request.getparameter("first").tostring(); String familyname = request.getparameter("family").tostring(); %> </html> <p>...... Your name: <%= firstname + " " + familyname %> </html>...

Applet Distribuované systémy a výpočty (02) p. 23/4

Applet + CGI script Distribuované systémy a výpočty (02) p. 24/4

Distribuované systémy a výpočty (02) p. 25/4 XML - Extensible Markup Language <?xml version="1.0" encoding="utf-8"> <dokument> <data> Tady mám nějaká data... </data>... a tohle je jen výplň... </dokument>

Distribuované systémy a výpočty (02) p. 26/4 XML - Příklad <qa:book xmlns:qa="http://www.qa.com"> <qa:title>a Few Good Men</qa:title> <qa:lentto maxloan="28"> <B>Doe</B>, John </qa:lentto> </qa:book>

Distribuované systémy a výpočty (02) p. 27/4 XML - Definice struktury dokumentu DTD - Data Type Definition <!DOCTYPE booklist [ <!ELEMENT booklist (book)+> <!ELEMENT book (person,...)> <!ATTLIST book maxloan CDATA #REQUIRED> <!ELEMENT person (#PCDATA)> ]> XML Schema - nahrazuje dnes již zastaralý DTD - formát definic je XML Schema

Distribuované systémy a výpočty (02) p. 28/4 XML Schema - definice prvků <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="booklist"> <xsd:complextype> <xsd:sequence> <xsd:element name="book" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="person" type="xsd:string"/>... </xsd:sequence>... <xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema>

Distribuované systémy a výpočty (02) p. 29/4 XML Schema - definice atributů <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="booklist"> <xsd:complextype> <xsd:sequence> <xsd:element name="book" maxoccurs="unbounded"> <xsd:complextype>... <xsd:atribute name="maxloan" type="xsd:string"/> <xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema>

Distribuované systémy a výpočty (02) p. 30/4 XML Schema - definice prvků s atributy... <xsd:element name="booklist"> <xsd:complextype> <xsd:sequence> <xsd:element name="book" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="person" type="xsd:string"/>... </xsd:sequence> <xsd:atribute name="maxloan" type="xsd:string"/> <xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element>...

Distribuované systémy a výpočty (02) p. 31/4 DOM parser - test XML dokumentu import org.apache.xerces.parsers.domparser; import org.xml.sax.saxexception; import java.io.ioexception; public class XercesChecker { public static void main(string[] args) { if (args.length <= 0) { System.out.println("Usage: java XercesChecker URL"); return; } String document = args[0]; DOMParser parser = new DOMParser(); try { parser.parse(document); System.out.println(document + " is well-formed."); } catch (SAXException e) { System.out.println("... "); } catch (IOException e) { System.out.println("... "); } }

Distribuované systémy a výpočty (02) p. 32/4 DOM parser - načtení XML dokumentu import org.apache.xerces.parsers.domparser; import org.w3c.dom.*; public class XMLDOMParser { public static void main(string[] args) { if (args.length <= 0) { System.out.println("Usage: java XercesChecker URL"); return; } String document = args[0]; DOMParser parser = new DOMParser(); try { Document doc = parser.getdocument(document); }... catch (IOException e) { System.out.println("... "); }

Distribuované systémy a výpočty (02) p. 33/4 DOM parser - uzly dokumentu package org.w3c.dom; public interface Node { public static final short ELEMENT_NODE = 1; public static final short ATTRIBUTE_NODE = 2; public static final short TEXT_NODE = 3; public static final short CDATA_SECTION_NODE = 4; public static final short ENTITY_REFERENCE_NODE = 5; public static final short ENTITY_NODE = 6; public static final short PROCESSING_INSTRUCTION_NODE = 7; public static final short COMMENT_NODE = 8; public static final short DOCUMENT_NODE = 9; public static final short DOCUMENT_TYPE_NODE = 10; public static final short DOCUMENT_FRAGMENT_NODE = 11; public static final short NOTATION_NODE = 12;

Distribuované systémy a výpočty (02) p. 34/4 DOM parser - metody public String getnodename(); public String getnodevalue() throws DOMException; public void setnodevalue(string nodevalue) throws DOMException; public short getnodetype(); public String getnamespaceuri(); public String getlocalname();... public Node getparentnode(); public boolean haschildnodes(); public NodeList getchildnodes(); public Node getfirstchild(); public Node getlastchild(); public Document getownerdocument(); public boolean hasattributes(); public NamedNodeMap getattributes();...

Distribuované systémy a výpočty (02) p. 35/4 SAX parser import org.xml.sax.*; import org.xml.sax.helpers.xmlreaderfactory; import java.io.ioexception; public class SAXChecker { public static void main(string[] args) { if (args.length <= 0) { System.out.println("Usage: java SAXChecker URL"); return; } try { XMLReader parser = XMLReaderFactory.createXMLReader(); parser.parse(args[0]); System.out.println(args[0] + " is well-formed."); } catch (SAXException e) {... } catch (IOException e) {... } } }

Distribuované systémy a výpočty (02) p. 36/4 SAX parser - callbacks package org.xml.sax; public interface ContentHandler { public void setdocumentlocator(locator locator); public void startdocument() throws SAXException; public void enddocument() throws SAXException; public void startelement(string namespaceuri, String localname, String qualifiedname, Attributes atts) throws SAXException; public void endelement(string namespaceuri, String localname, String qualifiedname) throws SAXException; public void characters(char[] text, int start, int length) throws SAXException; public void ignorablewhitespace(char[] text, int start, int length) throws SAXException; public void processinginstruction(string target, String data) throws SAXException; }...

Distribuované systémy a výpočty (02) p. 37/4 JSP - Java Server Pages <html> <head> <meta http-equiv="content-type" content="text/html;... > <title>java Server Pages (JSPs)</title> </head> <body style="font-family:comic Sans MS; color:darkblue"> <form action="http://localhost/example.jsp" method="get"> <table border="0"> <tr> <td>first name:</td> <td><input type="text" size="10" name="first"></td> </tr>... </table> <p><input type="submit" value="send"> </p> </form> </body> </html>

Distribuované systémy a výpočty (02) p. 38/4 JSP - Java Server Pages <%@ page contenttype="text/xml" import="java.util.*" %> <% String firstname = request.getparameter("first").tostring(); String familyname = request.getparameter("family").tostring(); %> <ConfirmationMessage> <Name> <%= firstname + " " + familyname %> </Name> <When> <%= (new Date()).toLocaleString() %> </When> </ConfirmationMessage>

AJAX - Asynchronous JavaScript And XML Distribuované systémy a výpočty (02) p. 39/4

AJAX - Asynchronous JavaScript And XML Distribuované systémy a výpočty (02) p. 40/4

Distribuované systémy a výpočty (02) p. 41/4 AJAX - Asynchronous JavaScript And XML <?xml version="1.0" encoding="utf-8"?> <root> <data> This is some example data stored in an XML file and retrieved by JavaScript. </data> </root>

Distribuované systémy a výpočty (02) p. 42/4 AJAX - Asynchronous JavaScript And XML <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html lang="en" dir="ltr"> <head> <meta http-equiv="content-type" content="text/html;...> <title>developing with Ajax</title> </head> <body> <p>this page... </p> <p id="xmlobj"> This is a default text for this web page. <a href="data.xml" title="view the XML data." onclick="ajaxread( data.xml ); this.style.display= none ; return false"> View XML data.</a> </p> </body> </html>

Distribuované systémy a výpočty (02) p. 43/4 AJAX - Asynchronous JavaScript And XML <script type="text/javascript"> <!- - function ajaxread(file) { var xmlobj = null; if(window.xmlhttprequest) { xmlobj = new XMLHttpRequest(); } else if(window.activexobject) { xmlobj = new ActiveXObject("Microsoft.XMLHTTP"); } else { return; }

Distribuované systémy a výpočty (02) p. 44/4 AJAX - Asynchronous JavaScript And XML xmlobj.onreadystatechange = function() { if(xmlobj.readystate == 4) { updateobj( xmlobj, xmlobj.responsexml.getelementsbytagname( data )[0]. firstchild.data); } } xmlobj.open ( GET, file, true); xmlobj.send ( ); } function updateobj(obj, data) { document.getelementbyid(obj).firstchild.data = data; } } - -> </script>