Tvorba informačních systémů

Podobné dokumenty
Michal Krátký, Miroslav Beneš

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í

Tvorba informačních systémů

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

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

Technologie Java Server Pages

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

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

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

Úvod do tvorby internetových aplikací

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

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

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

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

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

Server-side technologie pro webové aplikace

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

Tvorba informačních systémů

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

X33EJA Enterprise Java

Michal Krátký, Miroslav Beneš

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

Architektury informačních systémů

Architektury informačních systémů

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

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

Java technologie pro webové aplikace

KIV/PIA 2013 Jan Tichava

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

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

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

RMI - Distribuované objekty v Javě

Technologie Java. Jaroslav Žáček

Softwarové komponenty a Internet

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

Tvorba informačních systémů

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

1. Webový server, instalace PHP a MySQL 13

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

1 Webový server, instalace PHP a MySQL 13

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í

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

Služba World Wide Web

Web Services na SOAP

HTML Hypertext Markup Language

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

(Enterprise) JavaBeans. Lekce 7

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

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

Tvorba informačních systémů

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

Tvorba informačních systémů

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

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

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

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

Michal Krátký, Miroslav Beneš

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

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

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í

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

JavaServer Faces Zdeněk Troníček

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

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.

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

Systémová administrace portálu Liferay

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

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

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

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

Transkript:

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

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ů. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 2/43

HTTP požadavek 2. HTTP, Úvod do Java2EE 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 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 3/43

HTTP odpověd 2. HTTP, Úvod do Java2EE 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 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 4/43

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. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 5/43

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é. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 6/43

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í. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 7/43

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

Architektura J2EE 2. HTTP, Úvod do Java2EE c Sun Microsystems c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 9/43

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

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í 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... c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 11/43

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. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 12/43

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/ JBoss, http://www.jboss.org/ Sun ONE Server c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 13/43

Java Servlet API 2. HTTP, Úvod do Java2EE 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... c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 14/43

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

Reprezentace požadavku c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 16/43

Reprezentace odpovědi c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 17/43

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

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 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 19/43

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 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 20/43

2. HTTP, Úvod do Java2EE 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. 4 Oddělení prezentace od aplikační logiky pomocí uživatelských značek. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 21/43

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 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 22/43

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... < / body> c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 23/43

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/tg prefix="my" %> c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 24/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 " > c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 25/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 >... c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 26/43

Předdefinované proměnné HttpServletRequest request <%= request.getremotehost() %> HttpServletResponse response HttpSession session PrintWriter out ServlerContext application ServletConfig config PageContext pagecontext page (= this) c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 27/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 > c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 28/43

Výrazy a úseky programů 2/2 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 29/43

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. Knihovny značek různých dodavatelů. Např. specifikace fy. Sun: JSTL JavaServer Standard Tag Library. http://java.sun.com/products/jsp/jstl/ c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 30/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ě. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 31/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. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 32/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. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 33/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> c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 34/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> c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 35/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 > c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 36/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 > c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 37/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 ; } } c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 38/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; } } c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 39/43

Uživatelské značky, příklad c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 40/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> c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 41/43

Reference 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 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 42/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. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 43/43