Laboratorio di sistemi Prima Web Application JSP [Java]



Documenti analoghi
Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL)

Gestire le sessioni con le Servlet

Introduzione alla programmazione Http lato server in Java

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Laboratorio di sistemi MVC versione 2 Jsp (NetBeans)

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

SERVLET & JSP DISPENSE

Laboratorio di reti II: Java Server Pages

Tener traccia del client

Note pratiche sullo sviluppo di servlet (I)

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Architetture Web: un ripasso

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

1 JSPDynPage, componenti portale e Java Server Pages

Programmazione server-side: Java Servlet

Tecnologie di Sviluppo per il Web

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di dati

Tito Flagella - Introduzione alla programmazione di Servlet

Svantaggi delle servlet

Laboratorio di sistemi SELECT e checkbox Jsp [Java]

Laboratorio di sistemi MVC Jsp [NetBeans]

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Osservazioni. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2005/06-1

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

1 Applicazione J2EE sul SAP WAS con SAP NWDS

Servlet API. Programmazione in Ambienti Distribuiti A.A

Introduzione. Applicazione web con Java. servlet

Le JavaServer Pages - Lezione 7 I JavaBean

<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp Page</title> </head> <body>

Laboratorio di Sistemi Fondamenti di JSTL (parte 1) Java (JSTL)

Tutorial web Application

Servlet e JDBC. Programmazione in Rete e Laboratorio

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet:

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

Progetto di Gestione Documenti in Ambiente Web

I FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati.

Laboratorio di Sistemi Prototipo autenticazione utente Jsp [Java]

Servlet A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Soluzione 1: controller per la pagina di dettaglio delle categorie

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

SERVLET & JSP DISPENSE

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java]

Java: Compilatore e Interprete

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A

Accesso Web a Data Base

Laboratorio di sistemi Information hiding Jsp [Java]

Let's start! File > New Project > Ruby > Ruby on Rails Application (events)

Il Web-Service SDMX dell ISTAT

Laboratorio di sistemi JSTL e database Jsp [NetBeans]

Laboratorio di Sistemi Prototipo applicazione Biblioteca Jsp [Java]

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

Tale attività non è descritta in questa dispensa

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Un contatore di accessi

1 EJB e Portal Component Object

Modulo 4: Ereditarietà, interfacce e clonazione

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati e Web

Applicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone

Introduzione al linguaggio Java: Servlet e JSP

Laboratorio di Basi di Dati e Web

Basi di dati - Laboratorio

Eclipse. Avviare un progetto e compilare un semplice programma

Ciclo di vita di una Servlet

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Laboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A

Tecnologie di Sviluppo per il Web

Laboratorio di Sistemi Fondamenti di JSTL (parte 2) Java (JSTL)

Test di unità con JUnit4

Introduzione a JSP (Java Server Pages) MC 2005

Java Server Pages. Corso di Applicazioni Telematiche. A.A Lezione n.18 Prof. Roberto Canonico

Capitolo 7. Sviluppi futuri. 7.1 Generazione automatica di pagine WML

Stateless Session Bean

ESEMPI DI FORM (da

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2006/07-1

Laboratorio di Sistemi Distribuiti Leonardo Mariani

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

MANUALE PORTALE UTENTE IMPRENDITORE

Servlet: approfondimenti

PHP: Professional Hypertext Preprocessor

Tomcat struttura delle directory

Laboratorio di sistemi Autenticazione utente mediante scriplet Jsp [NetBeans]

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB.

Java EE 4. Laboratorio di Ingegneria del software. Andrea Bei

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Esercitazione n 4. Obiettivi

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso l architettura MVC-2 Java Server Pages (JSP)

Stateless Session Bean

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Transcript:

Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File > New Project... > Web > Web Application. Diamo un nome (PrimaWebApp). Confermiamo tutte le impostazioni predefinite. Facciamo solo attenzione all'impostazione del Server: scegliamo Tomcat 5.5. Modalità 1) Usiamo un form e una servlet (creiamo quindi due file: tasto destro del mouse sul nome del progetto > New > HTML... (form.htm); poi New > Servlet... (Saluto.java). Per eseguire l'applicazione, tasto destro del mouse sul nome del file html > Run File. In tal modo, viene attivato Tomcat. File form.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title></title> <h3>form di prova</h3> <!-- aggiungere al codice HTML il seguente codice: --> <form action="saluto" name="provafrm" method="post" > <input type="text" name="nometxt" value="" /> <input type="submit" value="invia" name="inviabtn" /> Servlet Saluto.java package provapkg; import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; /** * @author maurizio */ public class Saluto extends HttpServlet { // qui possono esser presenti delle variabili attributo; ad ogni modo, per motivi // che sarebbe troppo lungo spiegare in questa sede, le variabili attributo non si // dovrebbero utilizzare nelle servlet int i; public void init(servletconfig config) { // per esempio inizializziamo la variabile i i = 10; primawebapp.pdf Pag. 1/9 Cozzetto

protected void service(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // nel form usiamo il metodo POST dopost(request,response); // metodo richiamato da doget e da dopost protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { //TODO output your page here out.println(""); out.println(""); out.println("<title>servlet Saluto</title>"); out.println(""); out.println(""); out.println("<h3>servlet Saluto all'indirizzo (relativo) " + request.getcontextpath () + "</h3>"); String nome = request.getparameter("nometxt"); if (nome.equals("")) nome="maurizio"; out.println("ciao "+nome+". Benvenuto alla tua prima web application.<br/>"); out.println("questo codice è generato da una Servlet."); out.println("<br/>il valore della variabile i="+i); out.println(""); out.println(""); finally { out.close(); // metodo richiamato quando si richiede un "get" protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, response); // metodo richiamato quando si richiede un "post" protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, response); primawebapp.pdf Pag. 2/9 Cozzetto

// breve descrizione della servlet public String getservletinfo() { return "Prima Web Application di prova"; public void destroy() { // per esempio cambiamo il valore di i i = 4; // fine servlet Saluto Modalità 2) Usiamo una sola pagina jsp (la pagina conterrà sia il codice HTML che il codice jsp). Modifichiamo il codice della pagina index.jsp (che esiste già) nella maniera seguente. Per eseguire l'applicazione, tasto destro del mouse sul file index.jsp > Run File (verrà eseguita anche la compilazione, qualora non sia già stata effettuata). Pagina index.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> primawebapp.pdf Pag. 3/9 Cozzetto

<title>jsp Page</title> <h3>la tua prima web application</h3> <% // Se è stato premuto il tasto submit if (request.getparameter("inviabtn")!=null) { String nome = request.getparameter("nometxt"); // se l'utente ha scritto il suo nome if (!nome.equals("")) { out.println("ciao "+nome+". Benvenuto alla tua prima web application."); out.println("questo codice è generato da una pagina jsp.<br/><br/>"); %> <form action="${request.requesturi" name="provafrm"> Scrivi il tuo nome <input type="text" name="nometxt" value="" /> <input type="submit" name="inviabtn" value="invia"/> requesturi è un metodo dell'oggetto predefinito (o implicito) request (che denota la richiesta effettuata al server) che restituisce il nome della pagina web corrente. getparameter( nometxt ) è il metodo dell'oggetto request che restituisce il contenuto della casella testuale nometxt. primawebapp.pdf Pag. 4/9 Cozzetto

Il metodo prescelto questa volta è il get (se nel form non scriviamo il metodo in maniera esplicita, il sistema assume get ). Modalità 3) Un'unica pagina jsp che fa uso delle librerie JSTL (Jsp Standard Tag Library). Ricordiamoci di includere nel nostro progetto tali librerie (Tasto destro del mouse sul progetto > Proprietà > Libraries > Add Library > JSTL 1.1). Creiamo adesso una nuova pagina jsp: tasto destro del mouse sul nome del progetto > New > JSP...(index2.jsp). Pagina index2.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <title>jsp Page</title> <h3>prima web application!</h3> <form action="${request.requesturi" name="provafrm"> Scrivi il tuo nome <input type="text" name="nometxt" value="" /> <input type="submit" name="inviabtn" value="invia"/> <c:if test="${!empty param.inviabtn"> <c:set var="nome" value="${param.nometxt"/> <c:if test="${!empty nome"> <br/>benvenuto <c:out value="${param.nometxt"/>. Questo codice è generato da una pagina jsp. </c:if> </c:if> param è un oggetto predefinito e contiene tutti i parametri del form. primawebapp.pdf Pag. 5/9 Cozzetto

Modalità 4) Usiamo una pagina web (index3.jsp) e una classe java (javabean). Maggiori approfondimenti sul concetto di javabean saranno affrontati in seguito. Ricordiamoci di includere le librerie JSTL, come illustrato nella modalità 3. Tasto destro del mouse sul nome del progetto > New > Java Class...(MessaggioBean.java) File MessaggioBean.java /** * * MessaggioBean.java */ package provapkg; /** * * @author maurizio */ public class MessaggioBean implements java.io.serializable { private String saluto; private String nome; public MessaggioBean() { saluto="ciao"; nome="maurizio"; primawebapp.pdf Pag. 6/9 Cozzetto

public MessaggioBean(String saluto, String nome) { this.saluto=saluto; this.nome=nome; public String getsaluto() { return saluto; public void setsaluto(string saluto) { this.saluto=saluto; public String getnome() { return nome; public void setnome(string nome) { this.nome=nome; // fine JavaBean File index3.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <title>jsp Page</title> <h3>uso di una classe (javabean)</h3> <jsp:usebean id="messaggio" class="provapkg.messaggiobean"/> <form action="${request.requesturi" name="provafrm"> Scrivi il tuo nome <input type="text" name="nome" value="" /> <input type="submit" name="inviabtn" value="invia"/> <c:if test="${!empty param.inviabtn"> <jsp:setproperty name="messaggio" property="*"/> <jsp:setproperty name="messaggio" property="saluto" value="benvenuto"/> <br/><jsp:getproperty name="messaggio" property="saluto"/> primawebapp.pdf Pag. 7/9 Cozzetto

<jsp:getproperty name="messaggio" property="nome"/>. Questo codice fa uso di un javabean. </c:if> L'asterisco che appare precedentemente ci consente di associare tutti i campi del form agli attribuiti della classe (noi tuttavia utilizziamo un solo attribuito) per cui il nome del parametro del form deve essere nome e non nometxt. Se non viene inserito nessun valore, il sistema assume come nome Maurizio. Se viene fornito un nome, appare il messaggio di benvenuto per quel nome. Il messaggio di saluto è settato a Benvenuto. Se non si setta il messaggio di saluto, appare Ciao. Modalità 5) Sempre nell'ipotesi di voler utilizzare la classe (javabean) MessaggioBean, creiamo il file index4.jsp con la procedura indicata precedentemente File index4.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> primawebapp.pdf Pag. 8/9 Cozzetto

<title>jsp Page</title> <h3>uso di una classe (javabean)</h3> <form action="${request.requesturi" name="provafrm"> Scrivi il tuo nome <input type="text" name="nometxt" value="" /> <input type="submit" name="inviabtn" value="invia"/> <% // istanziamo l'oggetto messaggio provapkg.messaggiobean messaggio = new provapkg.messaggiobean(); // Se è stato premuto il tasto submit if (request.getparameter("inviabtn")!=null) { messaggio.setsaluto("benvenuto"); String nome = request.getparameter("nometxt"); if (nome.equals("") nome==null) { nome = messaggio.getnome(); String saluto = messaggio.getsaluto(); out.println("<br/>"+saluto+" "+nome+". Benvenuto alla tua prima web application."); out.println("questo codice è generato da una pagina jsp.<br/><br/>"); %> L'output è comunque simile a quello della modalità 4. primawebapp.pdf Pag. 9/9 Cozzetto