Michal Krátký, Miroslav Beneš

Podobné dokumenty
Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Tvorba informačních systémů

Technologie Java Server Pages

Tvorba informačních systémů

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

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

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

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

HTTP protokol. Zpracoval : Petr Novotný

Instalace a konfigurace web serveru. WA1 Martin Klíma

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

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

Úvod do tvorby internetových aplikací

HTTP protokol. HTTP protokol - úvod. Zpracoval : Petr Novotný novotny0@students.zcu.cz

Server-side technologie pro webové aplikace

Úvod do aplikací internetu a přehled možností při tvorbě webu

Architektury informačních systémů

Architektury informačních systémů

Semináˇr Java X J2EE Semináˇr Java X p.1/23

X33EJA Enterprise Java

Tvorba informačních systémů

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

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

Michal Krátký, Miroslav Beneš

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

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

Java technologie pro webové aplikace

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

WWW technologie. HTTP protokol

Tvorba informačních systémů

KIV/PIA 2013 Jan Tichava

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

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

Principy fungování WWW serverů a browserů. Internetové publikování

RMI - Distribuované objekty v Javě

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Technologie Java. Jaroslav Žáček

Softwarové komponenty a Internet

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Přizpůsobení JSTL pro Google App Engine Datastore

Tvorba informačních systémů

1. Webový server, instalace PHP a MySQL 13

Tvorba informačních systémů

1 Webový server, instalace PHP a MySQL 13

(Enterprise) JavaBeans. Lekce 7

Internet Information Services (IIS) 6.0

Tvorba webu. Úvod a základní principy. Martin Urza

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í

Služba World Wide Web

Web Services na SOAP

HTML Hypertext Markup Language

Michal Krátký, Miroslav Beneš

Internet WEB stránky HTML, Hypertext MarkUp Language - nadtextový jazyk - Místo příkazů obsahuje tagy - značky

Koláčky, sezení. Martin Klíma

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

České vysoké učení technické v Praze. Fakulta elektrotechnická. Katedra řídící techniky. Internetové rozhraní do Matlabu.

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

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Počítačové sítě II. 18. World Wide Web, HTTP Miroslav Spousta,

INFORMAČNÍ SYSTÉMY NA WEBU

UJO Framework. revoluční architektura beans. verze

Uživatel počítačové sítě

CZ.1.07/1.5.00/

Základy programování v jazyce JAVA

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

<Insert Picture Here> Vývoj portálových řešení v Javě

JAVA. Webové aplikace Servlety, JSP

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

Úvod do Web Services

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Schéma e-pošty. UA (User Agent) rozhraní pro uživatele MTA (Message Transfer Agent) zajišťuje dopravu dopisů. disk. odesilatel. fronta dopisů SMTP

WCF. IW5 - Programování v.net a C# WCF

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Java a XML. 10/26/09 1/7 Java a XML

RESTful API TAMZ 1. Cvičení 11

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

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Tvorba webových stránek. Ing. Radek Burget, Ph.D.

JavaServer Faces Zdeněk Troníček

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

Databázové a informační systémy

PA165: Úvod do Java EE. Petr Adámek

Platformy / technologie. Jaroslav Žáček

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

API pro volání služby kurzovního lístku KB

Systémová administrace portálu Liferay

Komponenty v.net. Obsah přednášky

Příručka pro potvrzování zůstatku vydavatelům karetních platebních prostředků

Počítačové sítě II 17. WWW, HTTP. Miroslav Spousta, 2005

Elektronická podpora výuky předmětu Komprese dat

Transkript:

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

Tvorba informačních systémů 2/43 HTTP Protokol Hypertext Transfer Protokol (HTTP) Protokol pro přenos dat mezi webovým serverem a klientem (často prohlížeč). Klient server: klient zašle na server požadavek (request), server odpoví zasláním odpovědi (response). Klient request response Server Protokol aplikační vrstvy nad protokolem TCP, implicitní port 80. Metody: GET, PUT, POST,... Aktuální verze 1.1, můžeme využít tzv. persistentní spojení (HTTP keep-alive) jedno TCP spojení je využito pro zaslání více souborů.

Tvorba informačních systémů 3/43 HTTP Protokol HTTP požadavek metoda URL_dokumentu verze_http hlavicky prazdna_radka telo_pozadavku Příklad: GET /clanky/obsah.html HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT) Host: www.server.cz Klient request GET /clanky/obsah.html... HTTP Server

Tvorba informačních systémů 4/43 HTTP Protokol HTTP odpověd protokol stavovy_kod stavové_hlaseni hlavicky prazdna_radka obsah_odpovedi Příklad: HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Content-type: text/html... <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN >... Klient HTTP/1.1 200 OK...... <!DOCTYPE HTML PUBLIC... response HTTP Server

Tvorba informačních systémů 5/43 HTTP Protokol HTTP a (ne)bezpečnost Protokol je čistě textový Zvláště výhodné je zasílání hesla metodou GET: GET /do.login?login=kra28&password=heslo... Metodou POST jsou data zasílána v těle požadavku, není tedy opět problém odchytit osobní údaje. Při práci s citlivými údaji musíme použit šifrovaný přenos, např. HTTPS.

Tvorba informačních systémů 6/43 HTTP Protokol Omezení HTTP bezstavovost 1/2 Řešení: Protokol je bezstavový: server nemá stále spojení s klienty a nemůže je proto jednoznačně identifikovat komplikace pro webové aplikace. Jak bezpečně identifikovat klienta, který již prošel autentizací? Přenášení údajů v URL a skrytých polích formuláře. Uložení kompletní identifikace je nebezpečné. cookies ukládání dat zaslaných serverem v prohlížeči. Při následujících přístupech k témuž serveru/adresáři je cookie zaslána zpět. Uložení kompletní identifikace je nebezpečné.

Tvorba informačních systémů 7/43 HTTP Protokol Omezení HTTP bezstavovost 2/2 Popsané nevýhody vyústily v zavedení tzv. session (sezení): Každému novému uživateli se přiřadí jedinečný identifikátor (tzv. session token/session id). Předává se s každým požadavkem pomocí cookies nebo parametrů v URL, resp. skrytých polích formuláře. Výhoda: přenáší se pouze tento token, kompletní identifikace je uložena na serveru. Důležitá je podpora session při vývoji webových aplikací.

Tvorba informačních systémů 8/43 HTTP Protokol Reference World Wide Web Consortium: http://www.w3.org/. Libor Dostálek: Velký průvodce protokoly TCP/IP a systémem DNS. Computer Press, 2002. Jiří Kosek: Protokol HTTP. http://badame.vse.cz/izi228/prednasky/ http/frames.html, 2000.

Tvorba informačních systémů 9/43 Java Servlets Architektura J2EE c Sun Microsystems

Tvorba informačních systémů 10/43 Java Servlets Java Servlets Metoda rozšiřování webového serveru kódem v jazyce Java umožňující dynamické generování obsahu. Rozhraní pro aplikace s tenkým klientem (webový prohlížeč). Web browser HTTP Java Servlet Container Servlet1... Servletn

Tvorba informačních systémů 11/43 Java Servlets Výhody servletů Perzistence mezi voláními rychlejší odezva na požadavky, sdílení dat. Pro servlet je vytvořeno vlákno z běžícího JVM. CGI opakované zavádění Můžeme využít perzistentní spojení HTTP zaslání více souborů nad jedním TCP spojením Přístup k celému Java API JDBC databáze JAXP práce s XML JNDI adresářové služby...

Tvorba informačních systémů 12/43 Java Servlets Servletový kontejner Servletový kontejner zajišt uje běh servletu běh JVM, správa session, udržovaní kontextu, konfigurační informace. Web browser HTTP Java Servlet Container Servlet Configuration Sessions Context... Nutnost konfigurace servletu (např. v souboru web.xml). Aktuální verze specifikace: Java Servlet API 2.5, různí dodavatelé implementace.

Tvorba informačních systémů 13/43 Java Servlets Typy servletových kontejnerů Rozšíření WWW serveru Apache/JServ, http://httpd.apache.org/ S vestavěným WWW serverem Jetty (Mortbay.com) WebSphere (IBM) Samostatné aplikační servery Apache Tomcat, http://tomcat.apache.org/ GlassFish, https://glassfish.dev.java.net/ Sun GlassFish Enterprise Server, http://www.sun.com/software/products/appsrvr/ JBoss, http://www.jboss.org/

Tvorba informačních systémů 14/43 Java Servlets Java Servlet API Správa session: třída HttpSession. Kontext servletu: třída ServletContext rozhraní pro komunikaci s kontejnerem. Konfigurační informace: ServletConfig parametry předávané při inicializaci servletu. HTTP požadavek: třída HttpRequest. HTTP odpověd : třída HttpReponse. Třída PageContext přístup k různým atributům stránky. Web browser HTTP Java Servlet Container Servlet Configuration Sessions Context...

Tvorba informačních systémů 15/43 Java Servlets Java Servlet API

Tvorba informačních systémů 16/43 Java Servlets Reprezentace požadavku

Tvorba informačních systémů 17/43 Java Servlets Reprezentace odpovědi

Tvorba informačních systémů 18/43 Java Servlets Příklad - HelloWorld 1/2 import java. i o. ; import javax. s e r v l e t. ; import javax. s e r v l e t. h t t p. ; public class HelloWorld extends H t t p S e r v l e t { public void doget ( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException { response. setcontenttype ( " t e x t / html " ) ; P r i n t W r i t e r out = response. g e t W r i t e r ( ) ;

Tvorba informačních systémů 19/43 Java Servlets Příklad - HelloWorld 2/2 } } out. p r i n t l n ( " <html > " ) ; out. p r i n t l n ( " <head> " ) ; out. p r i n t l n ( " < t i t l e > Hello World! < / t i t l e > " ) ; out. p r i n t l n ( " </head> " ) ; out. p r i n t l n ( " <body> " ) ; out. p r i n t l n ( " <h1> Hello World! < / h1> " ) ; out. p r i n t l n ( " </body> " ) ; out. p r i n t l n ( " </ html > " ) ;

Tvorba informačních systémů 20/43 Java Servlets Příklad - HelloWorld <html> <head> < t i t l e > Hello World! < / t i t l e > < / head> <body> <h1> Hello World! < / h1> < / body> < / html> Web browser GET /HelloWorld... Java Servlet Container Servlet: HelloWorld

Tvorba informačních systémů 21/43 1 Rozdílná filosofie oproti servletu, kód v jazyce Java píšeme do HTML kódu. 2 Kompilace na servlet Při prvním požadavku, kontrolují se změny. 3 Zjednodušení realizace stránek, možnosti: Servlety generující všechny stránky, Statický obsah HTML + servlety pro akce, Dynamicky obsah v rámci statického JSP. 4 Oddělení prezentace od aplikační logiky pomocí uživatelských značek.

Tvorba informačních systémů 22/43 Příklad - JSP <%@ page contenttype= " t e x t / html ; charset=windows 1250" %> <%@ page import= " java. u t i l. " %> <html > <head> < t i t l e > Prvni pokus </ t i t l e > </ head> <body> <h1> V i t e j t e! < / h1> <p>dnesni datum j e <%= new Date ( ). t o S t r i n g () % > </p> </ body>

Tvorba informačních systémů 23/43 Příklad JSP <html> <head> < t i t l e > Prvni pokus< / t i t l e > < / head> <body> <h1> V i t e j t e < / h1> <p>dnesni datum j e Sun Feb 2 6... < / body>

Tvorba informačních systémů 24/43 Prvky JSP Direktivy <%@ page contenttype= text/html %>, Vložený úsek programu <% out.println("x : " + x); %>, Výraz x : <%= x %>, Vestavěné znaky akcí <jsp:include page="/headers/header.jsp"/>, Uživatelem definované značky <my:date/> <%@ taglib uri=http://lib.com/tg prefix="my" %>

Tvorba informačních systémů 25/43 JSP, Expression language: příklad 1/2 <html > <head> < t i t l e >JSP 2. 0 Expression Language Basic A r i t h m e t i c </ t i t l e > </ head> <body> <h1>jsp 2. 0 Expression Language Basic A r i t h m e t i c </ h1> <hr >... <br > < blockquote > <code> < t a b l e border= " 1 " >

Tvorba informačních systémů 26/43 JSP, Expression language: příklad 2/2 <thead > <td ><b>el Expression </ b> </ td > <td ><b>result </ b> </ td > </ thead > < t r > <td >\ $ { 1 } < / td > <td >$ { 1 } < / td > </ t r > < t r > <td >\ $ { 1 + 2 } < / td > <td >$ { 1 + 2 } < / td > </ t r >...

Tvorba informačních systémů 27/43 Předdefinované proměnné HttpServletRequest request <%= request.getremotehost() %> HttpServletResponse response HttpSession session PrintWriter out ServlerContext application ServletConfig config PageContext pagecontext page (= this)

Tvorba informačních systémů 28/43 Výrazy a úseky programů 1/2 <!DOCTYPE HTML PUBLIC " //W3C/ / DTD HTML 4.0 T r a n s i t i o n a l / / EN" > <html > <head>< t i t l e >Ukazka JSP vyrazu a... < / t i t l e > </head> <body> Curent date / time : <%= new java. u t i l. Date()%><br > Remote host : <%= request. getremoteaddr()%>< br > Session ID : <%= session. g e t I d ()%><br > Request URI: <%= request. getrequesturi()%>< br > <% S t r i n g method = request. getmethod ( ) ; out. p r i n t l n ( " Method : " + method ) ; %> </ body> </ html >

Tvorba informačních systémů 29/43 Výrazy a úseky programů 2/2

Tvorba informačních systémů 30/43 Uživatelské značky Oddělení logiky aplikace od prezentace: Java Beans, uživatelské značky. Uživatelské akce jsou volány pomocí uživatelských značek. Knihovny značek různých dodavatelů. Např. specifikace fy. Sun: JSTL JavaServer Standard Tag Library. http://java.sun.com/products/jsp/jstl/

Tvorba informačních systémů 31/43 Co potřebujeme pro implementaci uživatelské značky? JSP stránku využívající uživatelské značky deklarace umístění souboru popisující knihovnu značek. Tag Library Descriptor (TLD) XML soubor popisující vlastnosti a umístění obslužného programu. Tag Handler obslužný program, třída v Javě.

Tvorba informačních systémů 32/43 Uživatelské značky: JSP stránka Deklarace knihovny značek: <%@ taglib uri = "uri" prefix = "prefix" %> Typy uživatelských značek: Jednoduchá značka: <prefix:name></tagprefix:name> Značka s atributy: <prefix:name attribute = "<%= val %>"/> Značka s tělem. Značka definující proměnnou.

Tvorba informačních systémů 33/43 Uživatelské značky: Tag Handler, implementace Obslužný program akce vyvolaná při pársování značky v JSP souboru. Implementace rozhraní javax.servlet.jsp.tagext.tag nebo javax.servlet.jsp.tagext.bodytag. Dědění ze tříd javax.servlet.jsp.tagext.tagsupport nebo javax.servlet.jsp.tagext.bodytagsupport.

Tvorba informačních systémů 34/43 Uživatelské značky, příklad - index.html <html> <head> <META HTTP EQUIV= " Content Type " CONTENT= " t e x t / html ; charset=windows 1250"> < t i t l e >Vstup na stranky< / t i t l e > < / head> <body> Vlozte jmeno : <br> <form action= " enter. j s p " method= " post " > <input type= " t e x t " name= " n " > <input type= " submit " name= " submit " value= "OK" > < / form> < / body> < / html>

Tvorba informačních systémů 35/43 Uživatelské značky, příklad - enter.jsp <%@ page contenttype= " t e x t / html ; charset=windows 1250"%> <%@ t a g l i b p r e f i x = "exm" u r i = "WEB INF / enter. t l d " %> <%@ t a g l i b p r e f i x = " fmt " u r i = "WEB INF / fmt. t l d " %> <html> <head>< t i t l e > Hello Name Tag< / t i t l e >< / head> <body> <fmt : requestencoding value= " windows 1250" / > <strong> V i t a j t e! < / strong> <p>< i > <exm : ent name= <%= request. getparameter ( " n " ) %> / > < / i ><p> <strong> P r i j d t e zas. < / strong> < / body> < / html>

Tvorba informačních systémů 36/43 Uživatelské značky, příklad - enter.tld 1/2 <?xml version=" 1.0 " encoding= " ISO 8859 1"? > <!DOCTYPE t a g l i b PUBLIC " //Sun Microsystems, Inc. / / DTD JSP Tag L i b r a r y 1. 1 / /EN" " h t t p : / / java. sun. com / j2ee / dtds / web j s p t a g l i b r a r y _ 1 _ 1. dtd " > < t a g l i b > < t l i b v e r s i o n >1.0< / t l i b v e r s i o n > < j s p v e r s i o n >1.1< / j s p v e r s i o n > <shortname> i n t e r v a l < / shortname> < i n f o >Simple welcome l i b r a r y. < / i n f o >

Tvorba informačních systémů 37/43 Uživatelské značky, příklad - enter.tld 2/2 <tag> <name>ent< /name> < t a g class>exm. tags. Enter< / t a g c l a s s > < bodycontent >JSP< / bodycontent > < a t t r i b u t e > <name>name< / name> < r e quired>true< / r e q uired> < r t e x p r v a l u e > t r u e < / r t e x p r v a l u e > < / a t t r i b u t e > < / tag> < / t a g l i b >

Tvorba informačních systémů 38/43 Uživatelské značky, příklad - exm.tags.enter 1/2 package exm. tags ; import java. i o. ; import java. u t i l. Date ; import java. t e x t. DateFormat ; import javax. s e r v l e t. j s p. ; import javax. s e r v l e t. j s p. t a g e x t. ; public class E n t e r extends TagSupport { private S t r i n g name = " nobody " ; public void setname ( S t r i n g name) { i f (! name. equals ( " " ) ) { this. name = name ; } }

Tvorba informačních systémů 39/43 Uživatelské značky, příklad - exm.tags.enter 2/2 public i n t dostarttag ( ) throws JspTagException { return EVAL_BODY_INCLUDE; } public i n t doendtag ( ) throws JspTagException { DateFormat d f = DateFormat. getdateinstance ( ) ; S t r i n g date = df. format (new Date ( ) ) ; t r y { JspWriter out = pagecontext. getout ( ) ; out. p r i n t ( " Hi, " +name+ " <br > " ) ; out. p r i n t ( "My name i s " + getclass ( ). getname ( ) + " today i s " + date + " <p/ > " ) ; } catch ( IOException ex ) { throw new JspTagException ( " Output E r r o r " ) ; } return EVAL_PAGE; } }

Tvorba informačních systémů 40/43 Uživatelské značky, příklad

Tvorba informačních systémů 41/43 JSTL JavaServer Standard Tag Library Core XML analýza <x:parse.../> transformace <x:transform xslt="..." xml="..."/> I18n (Internationalization) formátovaní textů <fmt:message key="..."/> formátovaní čísel a data/času <fmt:formatdate.../> Databáze volba zdroje dat <sql:setdatasource datasource="..."/> SQL dotazy a transakce <sql:query var="...>...</sql:query>

Tvorba informačních systémů 42/43 Reference http://java.sun.com/products/jsp/ pro všechny - http://interval.cz/serial.asp?serial=46 http://java.sun.com/products/servlet/

Tvorba informačních systémů 43/43 Struktura webové aplikace Struktura webové aplikace J2EE: Servlety -.class Statický obsah -.html,.jpg,.gif,... JSP -.jsp Knihovny tříd -.jar Můžeme vygenerovat soubor war. Vývoj: 1 Tomcat běh webové aplikace, 2 NetBeans ladění webové aplikace.