Tvorba informačních systémů

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

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

Tvorba informačních systémů

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

Tvorba informačních systémů

Technologie Java Server Pages

Tvorba informačních systémů

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

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

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

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

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

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

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

Server-side technologie pro webové aplikace

Instalace a konfigurace web serveru. WA1 Martin Klíma

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

Tvorba informačních systémů

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

HTTP protokol. Zpracoval : Petr Novotný

Michal Krátký, Miroslav Beneš

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

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

Architektury informačních systémů

Architektury informačních systémů

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

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

X33EJA Enterprise Java

KIV/PIA 2013 Jan Tichava

WWW technologie. HTTP protokol

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

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

Tvorba informačních systémů

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í

Úvod do tvorby internetových aplikací

HTML Hypertext Markup Language

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í

Softwarové komponenty a Internet

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

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

Technologie Java. Jaroslav Žáček

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

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

RMI - Distribuované objekty v Javě

Tvorba informačních systémů

Úvod do Web Services

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

Tvorba informačních systémů

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

Java technologie pro webové aplikace

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

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

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

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

1. Webový server, instalace PHP a MySQL 13

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

Základy programování v jazyce JAVA

1 Webový server, instalace PHP a MySQL 13

JAVA. Webové aplikace Servlety, JSP

Web Services na SOAP

Služba World Wide Web

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

Michal Krátký, Miroslav Beneš

UJO Framework. revoluční architektura beans. verze

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

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

(Enterprise) JavaBeans. Lekce 7

JavaServer Faces Zdeněk Troníček

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

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

Š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

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

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

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

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

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

Internet Information Services (IIS) 6.0

RESTful API TAMZ 1. Cvičení 11

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

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Distribuované systémy a výpočty

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

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

Vytváření a použití knihoven tříd

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

RMI Remote Method Invocation

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

CZ.1.07/1.5.00/

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

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

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

Tvorba WWW stránek. Mojmír Volf

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

Tvorba informačních systémů

Webové služby. Martin Sochor

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

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

Transkript:

Tvorba informačních systémů Michal Krátký, Miroslav Beneš 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 1/41

Hypertext Transfer Protokol (HTTP) Protokol pro přenos dat mezi webovým serverem a prohlížečem. Klient - server. Protokol aplikační vrstvy, TCP, port 80. Požadavek (request) - odpověd (response). Aktuální verze 1.1. Metody: GET, PUT, POST,... c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 2/41

HTTP požadavek 2. HTTP, Úvod do Java2EE metoda URL_dokumentu verze_http hlavicky prazdna_radka telo_pozadavku Příklad. Ukázka jednoduchého požadavku GET /clanky/obsah.html HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows N Host: www.server.cz c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 3/41

HTTP odpověd 2. HTTP, Úvod do Java2EE protokol stavovy_kod stavové_hlaseni hlavicky prazdna_radka obsah_odpovedi Příklad: Ukázka odpovědi HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Wed, 06 Dec 2000 13:37:40 GMT X-Powered-By: PHP/4.0.3pl1 Content-type: text/html <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transiti <html>... c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 4/41

Omezení HTTP 2. HTTP, Úvod do Java2EE Řešení: Server nemá stále spojení s klienty a nemůže je proto jednoznačně identifikovat - komplikace pro webové aplikace. Přenášení údajů v URL a skrytých polí formuláře - nebezpečné, komplikované, cookies, session proměnné. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 5/41

Session, cookie 2. HTTP, Úvod do Java2EE Cookie Krátká informace, kterou si server uloží v prohlížeči. Při následujících přístupech k témuž serveru je cookie zaslána zpět. Cookie je vázána na server a případně i na adresář. Nebezpečné všechny stavové informace jsou v každém požadavku/odpovědi. Session Každému novému uživateli se přiřadí unikátní identifikátor (tzv. session-id). Předává se s každým požadavkem pomocí cookie nebo parametrů v URL, resp. skrytých polí ve formuláři. Poměrně bezpečné s každým požadavkem se přenáší jen malá část dat a session-id. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 6/41

Odkazy 2. HTTP, Úvod do Java2EE 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. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 7/41

Architektura J2EE 2. HTTP, Úvod do Java2EE c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 8/41

2. HTTP, Úvod do Java2EE Metoda rozšiřování webového serveru o dynamické generování obsahu. Rozhraní pro aplikace s tenkým klientem (webový prohlížeč). c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 9/41

Výhody servletů 2. HTTP, Úvod do Java2EE 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í Přístup k celému Java API JDBC databáze JAXP práce s XML JNDI adresářové služby c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 10/41

Servletový kontejner Zajišt uje běh servletu JVM, Správa sezení (session), Udržovaní kontextu, Konfigurační informace, Perzistence. Různí dodavatele standardizace Java Servlet API 2.5 (aktuální verze). c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 11/41

Typy servletových kontejnerů Rozšíření WWW serveru Apache/JServ S vestavěným WWW serverem Jetty (Mortbay.com) WebSphere (IBM) Samostatné aplikační servery Apache Tomcat Sun ONE Server JBoss c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 12/41

Java Servlet API 2. HTTP, Úvod do Java2EE c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 13/41

Reprezentace požadavku c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 14/41

Reprezentace odpovědi c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 15/41

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 ( ) ; c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 16/41

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 > " ) ; c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 17/41

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> c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 18/41

2. HTTP, Úvod do Java2EE 1 Rozdílná filosofie oproti servletu možnost editace HTML editory. 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. 4 Oddělení prezentace od aplikační logiky pomocí uživatelských značek. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 19/41

Příklad - JSP 2. HTTP, Úvod do Java2EE <%@ 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> c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 20/41

Příklad - JSP 2. HTTP, Úvod do Java2EE <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 1 3 : 5 8 : 3 1 GMT+01:00 200 < / body> c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 21/41

Prvky JSP 2. HTTP, Úvod do Java2EE 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/tags prefix="my" % c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 22/41

JSP - Expression language example 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 " > c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 23/41

JSP - Expression language example 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 >... c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 24/41

Předdefinované proměnné HttpServletRequest request <%= request.getremotehost() %> HttpServletResponse response HttpSession session PrintWriter out ServlerContext application ServletConfig config PageContext pagecontext page (= this) c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 25/41

Výrazy a úseky programů <!DOCTYPE HTML PUBLIC " //W3C/ / DTD HTML 4.0 T r a n s i t <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 > c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 26/41

Výrazy a úseky programů c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 27/41

Uživatelské značky 2. HTTP, Úvod do Java2EE Oddělení logiky aplikace od prezentace: Java Beans, uživatelské značky. Uživatelské akce jsou volány pomocí uživatelských značek. JSTL JavaServer Standard Tag Library. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 28/41

Co potřebujeme? 2. HTTP, Úvod do Java2EE JSP stránku využívající uživatelské značky - deklarace umístění souboru popisující knihovnu značek (Tag Library Descriptor - TLD). Tag Library Descriptor XML soubor popisující vlastnosti a umístění obslužného programu. Tag Handler - obslužný program, třída v Javě. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 29/41

JSP stránka 2. HTTP, Úvod do Java2EE Značky: Deklarace knihovny značek: <%@ taglib uri = "uri" prefix = "prefix" %> 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. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 30/41

Tag Handler - implementace Implementace rozhraní javax.servlet.jsp.tagext.tag nebo javax.servlet.jsp.tagext.bodytag. Dědění za tříd javax.servlet.jsp.tagext.tagsupport nebo javax.servlet.jsp.tagext.bodytagsupport. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 31/41

Příklad - index.html 2. HTTP, Úvod do Java2EE <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> c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 32/41

Příklad - enter.jsp 2. HTTP, Úvod do Java2EE <%@ 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> c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 33/41

Příklad - enter.tld 1/2 " h t t p : / / java. sun. com / j2ee / dtds / web j s p t a g l i b r a r y _ 1 <?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 < 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 > c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 34/41

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 > c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 35/41

Příklad - exm.tags.enter 1/3 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 ; } } c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 36/41

Příklad - exm.tags.enter 2/3 public i n t dostarttag ( ) throws JspTagException { return EVAL_BODY_INCLUDE; } public i n t doendtag ( ) throws JspTagException { DateFormat df = 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 " ) ; } c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 37/41

Příklad - exm.tags.enter 3/3 return EVAL_PAGE; } } c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 38/41

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> c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 39/41

Odkazy 2. HTTP, Úvod do Java2EE http://java.sun.com/products/jsp/ pro všechny - http://interval.cz/serial.asp?serial=46 http://java.sun.com/products/servlet/ c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 40/41

Struktura webové aplikace Servlety -.class Statický obsah -.html,.jpg,.gif,... JSP -.jsp Knihovny tříd -.jar Soubor war. Vývoj: 1 Tomcat - běh webové aplikace, 2 NetBeans - ladění webové aplikace. c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 41/41