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

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

Tvorba informačních systémů

Java technologie pro webové aplikace

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

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

Tvorba informačních systémů

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

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

Základy programování v jazyce JAVA

JAVA. Webové aplikace Servlety, JSP

Tvorba informačních systémů

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

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

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

Tvorba informačních systémů

Úvod do programovacích jazyků (Java)

User manual SŘHV Online WEB interface for CUSTOMERS June 2017 version 14 VÍTKOVICE STEEL, a.s. vitkovicesteel.com

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

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

Tvorba informačních systémů

H.p protokol, request response

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

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

Textové soubory. alg9 1

Algoritmizace a programování

Distribuované systémy a výpočty

Tvorba informačních systémů

Technologie Java Server Pages

Úvod do programovacích jazyků (Java)

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

KTE / ZPE Informační technologie

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

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

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

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

Typický prvek kolekce pro české řazení

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

Skriptovací jazyky. Obsah

Microsoft Lync WEB meeting

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

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

My Year Manager is Vedoucí našeho ročníku je. P.E. is on Tělocvik mám v

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

Generické programování

Zápis programu v jazyce C#

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

17. Projekt Trojúhelníky

Soubor jako posloupnost bytů

LOGBOOK. Blahopřejeme, našli jste to! Nezapomeňte. Prosím vyvarujte se downtrade

UJO Framework. revoluční architektura beans. verze

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Výukový materiál zpracovaný v rámci operačního programu Vzdělávání pro konkurenceschopnost

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

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Jazyk C# (seminář 6)

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

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

První kapitola úvod do problematiky

Výčtový typ strana 67

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

PŘETĚŽOVÁNÍ OPERÁTORŮ

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

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í

Java Výjimky Java, zimní semestr

Programování v Javě I. Leden 2008

Vzdělávací materiál projektu Zlepšení podmínek výuky v ZŠ Sloup. Questions

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

USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

20. Projekt Domácí mediotéka

WORKSHEET 1: LINEAR EQUATION 1

Distribuované systémy a výpočty

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

KIV/PIA 2013 Jan Tichava

Čipové karty Lekařská informatika

POSLECH. Anglický jazyk 9. třída Mgr. Martin Zicháček. Jazyk Úroveň Autor Kód materiálu. Z á k l a d o v ý t e x t :

Abstraktní datové typy: zásobník

Doxygen. Jakub Břečka

Invitation to ON-ARRIVAL TRAINING COURSE for EVS volunteers

Konstruktory překladačů

VY_32_INOVACE_06_Předpřítomný čas_03. Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace

Návrh a tvorba WWW stránek 1/14. PHP a databáze

RMI Remote Method Invocation

EU peníze středním školám digitální učební materiál

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Testování webových aplikací Seznam.cz

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

Objektově orientované programování

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

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

1 Webový server, instalace PHP a MySQL 13

Java - řazení objektů

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

7. Dynamické datové struktury

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

Úvod do programování - Java. Cvičení č.4

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Transkript:

Nainstalujte zvolený server s podporou servletů a JSP, např. Jakarta/Tomcat nebo JBOSS. Vytvořete jednoduchý servlet pro výpis staticky zadaného textu na obrazovku. Vytvořte jednoduchý servlet pro výpis proměnného počtu položek na obrazovku Vytvořte servlet pro zpracování vstupu (parametrů) metodou GET Vytvořte servlet pro zpracování vstupu metodou POST. Vytvořte servlet pro zpracování a nastavení cookies. Vytvořte jednoduchý program pro zobrazení seznamu studentů (obsah souboru, obsah databáze) na obrazovce. Standardní servlet dědí od třídy HttpServlet a jeho nejčastější akcí je předefinování metody doget nebo dopost. doget i dopost mají dva parametry, jimiž jsou instance rozhraní HttpServletRequest a HttpServletResponse. Čtení parametrů záhlaví value = request.getheader( name ); getcookies getauthtype getremoteuser getcontentlength getcontenttype getdateheader getintheader getheadernames getheaders getmethod getrequesturi getprotocol getremoteaddr getremotehost Stavové kódy response.senderror sendredirect Zápis paramerů záhlaví response.setheader

setdateheader setintheader setcontenttype setcontentlength addcookie sendredirect Vytvoření a čtení Cookies getdomain, setdomain getmaxage, setmaxage getname, setname getpath, setpath getvalue, setvalue Posílají se metodou response.addcookie, čteme getcookies (vrací třídu Cookie), dále cookie.getname, cookie.getvalue. Metoda GET import java.util.*; /** Simple Hello World Servlet */ public class HelloServlet extends HttpServlet{ public void doget(httpservletrequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getwriter( ); response.setcontenttype("text/html"); out.println("<h1>hello from a Servlet</H1>"); out.println("<p>this servlet ran at "); out.println(new Date().toString( )); out.println("<p>courtesy of HelloServlet.java 1.2 ");

Zpracování parametrů formuláře, metoda POST import java.util.random; public class IntsServlet extends HttpServlet { protected final int DEFAULT_NUMBER = 5; /** Called when the form is filled in by the user. */ public void dopost(httpservletrequest req, HttpServletResponse resp) throws IOException { resp.setcontenttype("text/html"); PrintWriter out = resp.getwriter( ); // The usual HTML setup stuff. out.println("<html>"); out.println("<head>"); out.println("<body BGCOLOR=\"white\">"); // HTML for this page out.println("<title>your Personal Random Numbers</TITLE>"); out.println("<h1>your Personal Random Numbers</h2>"); out.println("<p>here are your personal random numbers,"); out.println("carefully selected by a"); out.println("<a HREF=\"http://java.sun.com\">Java</A> program."); out.println("<ol>"); // Figure out how many numbers to print. int n = DEFAULT_NUMBER; String num=req.getparameter("howmany"); if (num!= null && num.length( )!= 0) { try { n = Integer.parseInt(num); catch (NumberFormatException e) { out.println("<p>i didn't think much of "); out.println(num); out.println(" as a number.</p>"); // Now actually generate some random numbers. Random r = new Random( ); for (int i=0; i<n; i++) {

out.print("<li>"); out.println(r.nextint(49)); // for Lotto 6/49 out.println("</ol>"); // Print a break and a back link. out.println("<a HREF=\"index.html\">Back to main Page</A>"); out.println("</html>"); HTML stránka <HTML> <HEAD><TITLE>Random Numbers Page</TITLE></HEAD> <BODY BGCOLOR="white"> <H1>Random Numbers Page</h2> <P>This site will let you pick some random numbers for Lottery, lucky number or other purposes, all electronically.</p> <FORM METHOD=POST ACTION="/servlets/IntsServlet"> <H4>How Many Numbers Do You Want Today?</H4> <INPUT NAME=howmany SIZE=2> (default is 5) <BR> <INPUT TYPE="SUBMIT" VALUE="Get YOURS!"> </FORM> </BODY></HTML>

Složitější stránka s tabulkou, metoda GET import java.util.random; /** A Servlet to list the dictionary terms. */ public class TermsServlet extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse resp) throws IOException { PrintWriter out = resp.getwriter( ); out.println("<html>"); out.println("<title>ian Darwin's Computer Terms and Acronyms</TITLE>"); out.println("<body>"); out.println("<h1>ian Darwin's Computer Terms and Acronyms</h2>"); out.println("<table BORDER=2>"); out.println("<tr><th>term<th>meaning</tr>"); TermsAccessor tax = new TermsAccessor("terms.txt"); Iterator e = tax.iterator( ); while (e.hasnext( )) { Term t = (Term)e.next( ); out.print("<tr><td>"); out.print(t.term); out.print("<td>"); out.print(t.definition); out.println("</tr>"); out.println("</table>"); out.print("<a HREF=\"servlet/TermsServletPDF\">Printer-friendly (Acrobat PDF)"); out.println("version</a>"); out.print("<a HREF=\"mailto:compquest@darwinsys.com/subject=Question\""); out.println(">ask about another term</a>"); out.print("<a HREF=\"index.html\">Back to HS</A> <A HREF=\"../\""); out.println(">back to DarwinSys</A>"); out.print("<h6>produced by $Id: TermsServlet.java,v 1.1 2000/04/06"); out.println("ian Exp $"); out.print(" using "); out.print(tax.ident); out.println("</h6>");

Zpracování cookies, zobrazení finální stránky servlet CookieServlet import java.util.*; /** Simple Cookie-based Page Color Display servlet demo. */ public class CookieServlet extends HttpServlet { /** The preferences cookie name */ protected final static String PREFS_BGCOLOR = "prefs.bgcolor"; /** Where to go if we have not yet been customized. */ protected final static String CUSTOMIZER = "/ColorCustomize.html"; /** The user's chosen color, if any */ protected String favecolor = null; public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // Go through all the cookies we have, looking for a favecolor. Cookie[] mysitecookies = request.getcookies( ); for (int i=0; i<mysitecookies.length; i++) { Cookie c = mysitecookies[i]; if (c.getname( ).equals(prefs_bgcolor)) { favecolor = c.getvalue( ); break; // if we did not find a favecolor in a cookie, punt to customization servlet to bake one up for us. if (favecolor == null) { ServletContext sc = getservletcontext( ); response.sendredirect(customizer); // OK, we have a color, so we can do the page. PrintWriter out = response.getwriter( ); response.setcontenttype("text/html"); out.println("<html><title>a Custom-Colored Page</title>"); out.print("<body bgcolor=\""); out.print(favecolor); out.println("\">"); out.println("<p>welcome! We hope you like your colored page!</p>"); out.println("</body></html>"); out.flush( );

ColorCustomize.html <BODY BGCOLOR="pink"> <H1>Please choose a color</h2> <FORM ACTION="/servlet/ColorCustServlet" METHOD=GET> <SELECT NAME="color_name"> <OPTION VALUE="green">Green</> <OPTION VALUE="white" SELECTED>White</> <OPTION VALUE="gray">Grey</> </SELECT> <INPUT TYPE="submit" VALUE="OK"> </FORM> Servlet ColorCustServlet zpracování cookies /** Color customization servlet */ public class ColorCustServlet extends HttpServlet { protected final static String DEFAULT_COLOR = "white"; protected String favecolor = DEFAULT_COLOR; public void doget(httpservletrequest request, HttpServletResponse response) throws IOException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter( ); String cand=request.getparameter("color_name"); if (cand!= null) { favecolor = cand; Cookie c = new Cookie(CookieServlet.PREFS_BGCOLOR, favecolor); c.setmaxage(60*60*24*365); response.addcookie(c); response.sendredirect("/servlet/cookieservlet");

JSP Java Server Pages Vložení příkazů Java do HTML kódu (viz PHP) výrazy - <%= výraz %> vyhodnotí se a vloží do výstupu skriptlety - <% kód %> programové sekvence volané metodou service servletu deklarace - <%! kód %> vkládá se do těla servletu mimo metody komentář - <%-- JSP komentář --%> Implicitní objekty request - instance rozhraní HttpServletRequest response - instance rozhraní HttpServletResponse out - instance třídy spojená s PrintWriter session - instance rozhraní HttpSession application instance rozhraní ServletContext perzistentní data společná pro všechny servlety config instance rozhraní ServletConfig pagecontext instance třídy PageContext ukládání atributů stránky Př.: <HTML> <HEAD><TITLE>Time</TITLE></HEAD> <BODY BGCOLOR="white"> <%! private int cnt = 0; %> Aktuální čas: <%= new java.util.date() %> Jméno počítače: <%= request.getremotehost() %> Počet přístupů: <%= ++cnt %> </BODY> </HTML> Adresáře home *.jsp, *.html, *.jpg home\web-inf\classes - servlety home\web-inf\lib knihovny *.jar home\web-inf\web.xml konfigurační soubor se servlety

<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>name</servlet-name> <servlet-class>class</servlet-class> </servlet> <servlet> <servlet-name>name2vysledky</servlet-name> <servlet-class>class2</servlet-class> <init-param> <param-name>param_namecesta</param-name> <param-value>param_value</param-value> </init-param> </servlet> </web-app>