Servlets y JSP Fernando Berzal,

Relevanta dokument
F8 Webbteknologier 1. Dynamiska webbsidor

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets

F9 Webbteknologier 1. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Basic Internet Programming. Servlets, Cookies and Sessions. Björn Eiderbäck Cristian Bogdan

Exempel. Föreläsning 6. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2390 Internetprogrammering 6 hp

Vad ska ni göra? ProgramvaruUtveckling för Stora System. Kravförvirring. 9 frågor till prefekten. Christin Lindholm

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

PROV. 13 JSP Standard Tag Library

Uniform Resource Locator (URL) JavaServer Pages - JSP. Webbklienter. Webbserver. Hypertext Transfer Protocol (HTTP) HTTP Request

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Föreläsning 4. Innehåll. Java EE 7 subapi. Java EE. Java EE. DD2390 Internetprogrammering 6 hp

Björn Persson. Komponenter med J2EE. Del 1

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Att skriva till och läsa från terminalfönstret

Föreläsning 14. Filhantering

Exempel. Lektion 4. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2483 Enterprise Java 6 hp

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

Tentamensskrivning Nätverksprogrammering (EDA095) , kl 8-13

Tentamen Nätverksprogrammering Lösningsförslag

Internationalisering/lokalisering på webben

Dynamiska webbsidor. F10 Webbteknologier EDA095 Nätverksprogrammering. Serversidan eller klientsidan? Common Gateway Interface

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.

Lösningar för tenta 2 DAT043,

Fördjupad Java. Undantagshantering. Fel

Input. Programmering. Andra källor

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

DB, DATA, LOGIC, EXPOSURE (WEB)

Webbprogrammering. Sahand Sadjadee

Tentamen Nätverksprogrammering Lösningsförslag

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

FactoryCast HMI. Premium & Quantum PLC. Applets

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

De ska vara möjligt att separera kod med olika utvecklingsbehov. Det ska vara enkelt att gå från en web-centrerad design till en komponentbaserad

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

ASP.NET Thomas Mejtoft

Tentamen Nätverksprogrammering Lösningsförslag

Föreläsning 3. Stack

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Föreläsning 5 Meddelandesändning med TCP

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

Föreläsning 3. Stack

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

JavaScript in SharePoint and not just for Apps. Wictor Wilén

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Voice over IP / SIP. Switching Costs SIP. Motivation for VoIP. Internet Telephony as PBX replacement. Internet Telephony Modes.

Tentamen Nätverksprogrammering Lösningsförslag

Språkkonventioner och redigering av tal.

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert AWT. Paket för hantering av grafik

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Android fortsättning. TDDD80 Mobila och sociala applikationer

Datasäkerhet och integritet

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Karlstads Universitet, Datavetenskap 1

10 Kommunikation i Java

Tentamen Nätverksprogrammering Lösningsförslag

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Föreläsnings 9 - Exceptions, I/O

Viva la evolución. Peter Backlund

F5 Meddelandesändning med TCP

Design och implementation av en webbaserad databas

Lösningsförslag till tentamen

Testramverk och Model based testing med java i praktiken

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5

Objektorienterad Programmering (TDDC77)

Signalering. Vad är signalering

Outline. Objektorienterad Programmering (TDDC77) Lösningen heter Collection. Collection gränsnittet. Collection. Iterable. Ahmed Rezine.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Tentamen Nätverksprogrammering Lösningsförslag

Introduktion till programmering

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

TENTAMEN. Objektorienterade applikationer CHALMERS. 2018/2019, lp 3 DAT055. Uno Holmer

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

List.java. List.java. Printed by Tom Smedsaas

DEL 1 För att få godkänt på tentan (betyg 3) måste du lösa minst fem av sju uppgifter i denna del.

Transkript:

Servlets y JSP Fernando Berzal, berzal@acm.org Funcionamiento de una aplicación web 1

Solicitud HTTP GET public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException } 2 Solicitud HTTP POST public void dopost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException } 3

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet private String message; public void init() throws ServletException // Inicialización message = "Hello World"; } public void destroy() // Finalización } 4 public class HelloServlet extends HttpServlet public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException // Set response content type response.setcontenttype("text/html"); } } // Respuesta del servlet PrintWriter out = response.getwriter(); out.println("<h1>" + message + "</h1>"); 5

Fichero de configuración web.xml <servlet> <servlet-name>helloworld</servlet-name> <servlet-class>helloservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloworld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> 6 Configuración mediante anotaciones [Servlet API 3.0] import javax.servlet.annotation.servlet; @WebServlet(name="HelloWorld", value = "/hello") public class HelloServlet extends HttpServlet 7

Parámetros de una solicitud HTTP p.ej. HTTP GET https://isi.appspot.com/hello?clave1=valor1&clave2=valor2 Desde el servlet request.getparameter("clave1"); request.getparameter("clave2"); NOTA: Igual para las solicitudes HTTP POST 8 Ámbito de los datos en una aplicación web Aplicación context = getservletcontext(); context. setattribute( id,valor); Sesión session = request.getsession(); session.setattribute( id,valor); Solicitud request.setattribute( id,valor); 9

Redirecciones En el cliente [HTTP redirect] response.sendredirect(url); equivale a response.setstatus(response.sc_moved_temporarily); response.setheader("location", url); En el servidor [request dispatch] RequestDispatcher rd = req.getrequestdispatcher(url); rd.forward(req, resp); 10 JSP Para no incluir HTML en el código en Java podemos incluir Java en los documentos HTML!!! <html> <head><title>hello World</title></head> <body> Hello World! <br/> <% %> </body> out.println("your IP address is " + request.getremoteaddr()); </html> 11

JSP 12 JSTL: JSP Standard Tag Library <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %> <html> <head> <title><c:foreach> Tag Example</title> </head> <body> <c:foreach var="i" begin="1" end="5"> Item <c:out value="$i}"/><p> </c:foreach> </body> </html> 13

Una forma más razonable de organizar nuestro código: 14 Clases en Java public class Book String isbn; String title; String authors[]; String publisher; String date; String pages; public class BookOffer String url; String site; String price; } String image; String url; ArrayList<BookOffer> offers; } 15

Formulario HTML <html> <head> <title>book price comparator</title> </head> <body> <h1>book price comparator</h1> <form action="/book"> <label>isbn <input type="text" name="isbn"> </label> <input type="submit" value="get book information"> </form> </body> </html> 16 Procesamiento en un servlet public class BookServlet extends HttpServlet public void doget(httpservletrequest req, HttpServletResponse resp) throws IOException try Book book = // Obtener datos del libro, // p.ej. req.getparameter("isbn") req.setattribute("book", book); RequestDispatcher rd = req.getrequestdispatcher("/book.jsp"); rd.forward(req, resp); } catch (Exception error) resp.sendredirect("/error.html"); } } 17

Visualización en una página JSP [book.jsp] <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>book price comparator</title> </head> <body> <img src="$book.image}"/> <h2><a href="$book.url}">$book.title}</a></h2> <h3> <c:foreach var="author" items="$book.authors}"> <c:out value="$author}" /><br/> </c:foreach> </h3> 18 Visualización en una página JSP [book.jsp] Publisher: $book.publisher} <br/> Date: $book.date} <br/> Pages: $book.pages} <br/> ISBN: $book.isbn} <br/> <h3>book price</h3> <c:foreach var="offer" items="$book.offers}"> $offer.site}: <a href="$offer.url}"><b>$offer.price}</b></a> <br/> </c:foreach> </body> </html> 19

20 Frameworks Para el desarrollo de aplicaciones web en Java Struts2 Spring MVC JSF [JavaServerFaces] GWT [Google Web Toolkit] Struts Spring Boot Grails Wicket Stripes Tapestry Play! Framework Vaadin Vert.X 21

Frameworks 22 Referencias Tutoriales https://www.tutorialspoint.com/servlets/ https://www.tutorialspoint.com/jsp/ Libros Bryan Basham, Kathy Sierra & Bert Bates: Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam O Reilly, 2008. ISBN 0596516681 23