Technologie Java Server Pages

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ů

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

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

Tvorba informačních systémů

JAVA. Webové aplikace Servlety, JSP

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

Tvorba informačních systémů

Tvorba informačních systémů

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ů

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

Java technologie pro webové aplikace

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

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

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

JSP. Petr Aubrecht (CA) unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep

Softwarové komponenty a Internet

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

Tvorba informačních systémů

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

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

X33EJA Enterprise Java

KIV/PIA 2013 Jan Tichava

Základy programování v jazyce JAVA

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

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

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

Technologie JavaBeans

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

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

Server-side technologie pro webové aplikace

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

Aplikační rámce. Jakarta Struts Framework. Obsah přednášky. Aplikační rámce a knihovny. Co je to aplikační rámec? Enterprise Java Beans

Tvorba informačních systémů

JEE. Webové aplikace Servlety, JSP, JSF

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

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

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

Tvorba informačních systémů

Technologie Java. Jaroslav Žáček

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

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

}w!"#$%&'()+,-./012345<ya

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

Spring framework 2.0. Roman Pichlík CZJUG

}w!"#$%&'()+,-./012345<ya

JavaServer Faces Zdeněk Troníček

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

Michal Krátký, Miroslav Beneš

Aplikační rámce Jakarta Struts Framework

Instalace a konfigurace web serveru. WA1 Martin Klíma

Michal Krátký, Miroslav Beneš

Technologie Java. Jaroslav Žáček

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

Systémová administrace portálu Liferay

1. Webový server, instalace PHP a MySQL 13

(Enterprise) JavaBeans. Lekce 7

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

Abstraktní datové typy: zásobník

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

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

Skriptovací jazyky. Obsah

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

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

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

Oddělení webového a aplikačního serveru. Běží zde několik aplikací.

Komponentní technologie

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

UJO Framework. revoluční architektura beans. verze

Java a Caché IV: Manipulace s objekty

Obsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací

Java Platform, Enterprise Edition (Java EE)

KIV/PIA Semestrální práce

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno

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

Web Services na SOAP

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Aplikace s grafickým uživatelským rozhraním

1 Webový server, instalace PHP a MySQL 13

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

Obrázek 6.14: Prohlížec nápovedy

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

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

Distribuované systémy a výpočty

Platformy / technologie. Jaroslav Žáček

Principy objektově orientovaného programování

Java a J2EE. Cleverlance. Lukáš Marek lukas.marek@cleverlance.com

RMI Remote Method Invocation

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

MBI - technologická realizace modelu

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

Transkript:

Technologie Java Server Pages doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Java Servlets Struktura webové aplikace Java Server Pages Komponenty Java Beans Uživatelské značky Knihovny značek (JSTL / Jakarta Struts) Technologie JSP 2 Java Servlets Standardní metoda rozšiřování webových serverů o dynamické generování obsahu Základní rozhraní pro aplikace s tenkým klientem (webový prohlížeč) Web Browser Java Servlet Container Servlet Servlet Výhody servletů Perzistence mezi voláními rychlejší odezva na požadavky, sdílení dat 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 Technologie JSP 3 Technologie JSP 4 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 1

Servletový kontejner Zajišťuje běh servletu JVM Správa sezení Udržování kontextu Konfigurační informace Perzistence Různí dodavatelé standardizace Java Servlet API 2.4 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 Technologie JSP 5 Technologie JSP 6 Java Servlet API ServletConfig servletname getinitparameter(n) * servletcontext 1 ServletContext attribute(n) getinitparameter(n) javax.servlet.* javax.servlet.http.* servletconfig 1 1 servletinfo GenericServlet init() service(request, response) destroy() lastmodified doget() dopost() HttpServlet Technologie JSP 7 Reprezentace požadavku ServletRequest remotehost, parameter(name) reader HttpServletRequest contextpath header(name) cookies[] http://www.lib.com/catalog - context path session * 1 HttpSession attribute(n) removeattribute(n) invalidate() Technologie JSP 8 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 2

Reprezentace odpovědi ServletResponse contenttype writer outputstream HttpServletResponse header(name) addcookie(cookie) addheader(name, value) senderror(sc, msg) Struktura webové aplikace Servlety.class Statický obsah.html,.jpg,.gif, JSP.jsp Knihovny tříd.jar http://www.lib.com/catalog WEB-INF classes images index.jsp lib web.xml http://www.lib.com/catalog/web-inf/... Technologie JSP 9 Technologie JSP 10 Java Server Pages Oddělení prezentace od aplikační logiky Zjednodušení realizace stránek Servlety na všechno Statický obsah HTML + servlety pro akce Dynamický obsah v rámci statického Možnost editace HTML editory Kompilace na Java servlet Při prvním požadavku, kontrolují se změny Prvky JSP Direktivy <%@ page contenttype= text/html %> Vložený úsek programu <% out.println( x : + x); %> Výraz x : <%= x %> Vestavěné značky akcí <jsp:include page= /headers/header.jsp /> Uživatelem definované značky <my:date /> <% @ taglib uri=http://lib.com/tags prefix= my %> Technologie JSP 11 Technologie JSP 12 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 3

Příklad 1 <%@ page contenttype= text/html; charset=iso-8859-2 %> <%@ page import= java.util.* %> <html> <head> <title>první pokus</title> </head> <body> <h1>vítejte na mé stránce</h1> <p> Dnešní datum je <%= new Date().toString() %> </p> </body> Technologie JSP 13 Příklad 2 <%@ page contenttype="application/vnd.ms-excel" %> <% out.println("x\tx^2"); for(int i = 1; i <= 10; i++) { out.println(i + "\t + (i * i)); %> Technologie JSP 14 Příklad 3 <% Iterator i = cart.getitems().iterator(); while (i.hasnext()) { ShoppingCartItem item = (ShoppingCartItem)i.next(); BookDetails bd = (BookDetails)item.getItem(); %> <tr> <td align="right bgcolor="#ffffff"> <%=item.getquantity() %> </td><td bgcolor="#ffffaa"> <strong><a href="<%=request.getcontextpath()%> /bookdetails?bookid=<%=bd.getbookid()%>"> <%=bd.gettitle()%></a></strong> </td>... <% // End of while %> Technologie JSP 15 Předdefinované proměnné HttpServletRequest request <%= request.getremotehost() %> HttpServletResponse response HttpSession session PrintWriter out ServlerContext application ServletConfig config PageContext pagecontext page (= this) Technologie JSP 16 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 4

Komponenty Java Beans Konstruktor public StringBean() { Vlastnosti (properties) private String msg = Nic ; public String getmsg() { return msg; public void setmsg(string m) { msg=m; Metody public void clear() { msg = Nic ; Události (events) Technologie JSP 17 Příklad package cviceni2; import java.util.hashtable; import java.util.collection; public class SeznamUzivatelu { private Hashtable tabulka = new Hashtable(); public void uloz(uzivatel u) { tabulka.put(u.getlogin(), u); public Uzivatel hledej(string login) { return (Uzivatel)tabulka.get(login); public Collection getseznam() { return tabulka.values(); Technologie JSP 18 Použití JavaBeans v JSP Zavedení komponenty <jsp:usebean id= sb class= StringBean /> Přístup k vlastnostem <jsp:getproperty name= sb property= msg /> Nastavení vlastnosti <jsp:setproperty name= sb property= msg value= Ahoj /> <jsp:setproperty name= sb property= msg param= message /> <jsp:setproperty name= sb property= * /> Sdílení komponent <jsp:usebean id= class= scope= /> scope= page (implic. hodnota) v objektu PageContext scope= application v objektu ServletContext sdílí se všemi servlety ve stejné aplikaci scope= session v objektu HttpSession scope= request v objektu ServletRequest Technologie JSP 19 Technologie JSP 20 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 5

Uživatelské značky Třída obslužného programu (handler) rozhraní javax.servlet.jsp.tagext.tag metody dostarttag(), doendtag() Deskriptor knihovny značek soubor xxx.tld ve formátu XML Soubor JSP používající značky <%@ taglib uri= xxx.tld prefix= xxx %> <xxx:znacka param= > </xxx:znacka> Technologie JSP 21 Příklad DatumTag.java package tis.tags; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; public class DatumTag extends TagSupport { public int dostarttag() { try { JspWriter out = pagecontext.getout(); out.print(new java.util.date()); catch( java.io.ioexception e ) { return SKIP_BODY; Technologie JSP 22 Příklad tis-taglib.tld <?xml version="1.0" encoding= iso-8859-2?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>tis</shortname> <uri></uri> <info>testy pro TIS</info> <tag> <name>datum</name> <tagclass>tis.tags.datumtag</tagclass> <info>vloží dnešní datum</info> </tag> </taglib> Příklad tags.jsp <%@ taglib uri="/web-inf/tis-taglib.tld" prefix= tis" %> Dnes je <tis:datum/> Technologie JSP 23 Technologie JSP 24 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 6

JSTL JavaServer Standard Tag Library Core výrazy <c:out value= /> tok řízení <c:foreach var= items= "> </c:foreach> práce s URL <c:url var= value= /> XML analýza <x:parse /> transformace <x:transform xslt= xml= /> I18n (Internationalization) formátování textů <fmt:message key= /> formátování čísel a data/času <fmt:formatdate /> Database volba zdroje dat <sql:setdatasource datasource= /> SQL dotazy a transakce <sql:query var= > </sql:query> Jakarta Struts Tag Library bean definice a zpřístupnění JavaBeans z různých zdrojů html HTML formuláře a další prvky uživ. rozhraní logic řízení toku aplikace template práce se šablonami stránek tiles tvorba stránek z komponent Technologie JSP 25 Technologie JSP 26 Příklad <%@ page contenttype="text/html; encoding=iso-8859-2" %> <%@ taglib uri="/web-inf/c.tld" prefix="c" %> <%@ taglib uri="/web-inf/struts-html.tld" prefix="html" %> <jsp:usebean id="uzivatele" class="cviceni2.seznamuzivatelu" scope="session"> <% uzivatele.uloz(new Uzivatel("wal314", "Johnny", "Walker")); %> </jsp:usebean> <html:html> <body> <h2>seznam uživatelů</h2> <table border="1"> <c:foreach var="uziv" varstatus="st" items="${uzivatele.seznam"> <tr> <td><c:out value="${st.count"/></td> <td><c:out value="${uziv.login"/></td> <td><c:out value="${uziv.jmeno"/> <c:out value="${uziv.prijmeni"/></td> </tr> </c:foreach> </table> </body> </html:html> Technologie JSP 27 Literatura Marty Hall: Java servlety a stránky JSP. Neocortex, Praha, 2001, ISBN 80-86330-06-0 http://java.sun.com/products/jsp http://www.jboss.org http://jakarta.apache.org Technologie JSP 28 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 7