Capitolo 7. Soluzione: <P align= center > Form di invio nome e cognome </P> <FORM action= nomecognome.exe method= post >

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

Accesso Web a Data Base

Capitolo 5. Soluzione: Soluzione in C:

Laboratorio di sistemi Prima Web Application JSP [Java]

Data Base e Web. Internet

Laboratorio di reti II: Java Server Pages

Laboratorio di Basi di Dati e Multimedia

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

Le tecnologie software Internet

Le tecnologie software Internet

Introduzione alla programmazione Http lato server in Java

D B M G Il linguaggio HTML

@2011 Politecnico di Torino 1

Web & basi di dati. Basi di dati & Web. Problema. Pregi e difetti di basi di dati e Web. Architettura generale a livelli. Una gerarchia di soluzioni

Introduzione. Capitolo 9

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

Tener traccia del client

AA Esame di Tecnologie Informatiche per il Web - Prof. Piero Fraternali Prova straordinaria del 19 marzo 2004 Esercizio 1 (6 punti)

PROVA SCRITTA DI TECNOLOGIA DATABASE 10/12/2008 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

Architetture Web: un ripasso

Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano

Basi di Dati Esercitazione JDBC. Giugno 2007

Progetto di Gestione Documenti in Ambiente Web

Note pratiche sullo sviluppo di servlet (I)

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

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

SERVLET & JSP DISPENSE

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

2011 Politecnico di Torino 1

Laboratorio di Basi di Dati e Web

Architetture Web I Server Web e gli Standard della Comunicazione

Laboratorio di Basi di dati

Laboratorio di sistemi MVC versione 2 Jsp (NetBeans)

Lezione di Basi di Dati 1 18/11/ TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Gestire le sessioni con le Servlet

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

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

Java Server Pages & Programmazione Server-Side

PROVA SCRITTA DI TECNOLOGIA DATABASE

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati e Web

Architettura MVC-2: i JavaBeans

JDBC. Dispense per il corso di Ingegneria del Web

DBMS ed Applicazioni Motivazioni

Programmazione server-side: Java Servlet

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati ( )

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

Basi di Dati Corso di Laura in Informatica Umanistica

HTML & CGI. Contenuti. Siti ed applicazioni web Output del CGI Metodi. Esempio di applicazione CGI Libreria CGIC

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

Architetture Web I Server Web e gli Standard della Comunicazione

Il Protocollo HTTP e la programmazione di estensioni Web

Corso di Applicazioni Telematiche

Interazione con l utente : i moduli.

Applet e servlet finanziarie

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement

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


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

Università degli studi dell Aquila. Sistemi di elaborazione delle informazioni

LE PRIME ACTIVE SERVICE PAGE: oggetto REQUEST

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Tecnologie di Sviluppo per il Web

Applicazione client-server in PHP con database MySQL

Master SIT Settembre Corso WebGIS - Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR c.renso@isti.cnr.

Servlet & JDBC ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Servlet: interazione con un DBMS. In Java è possibile interagire con un DBMS attraverso

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

Servlet. Nicola Gessa

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Concetto di sessione di navigazione. I cookie. Gestione della sessione di navigazione. Introduzione alle Servlet 2

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

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

Fondamenti di Informatica II 29. Elementi di programmazione web e linguaggi di script (2)

19. LA PROGRAMMAZIONE LATO SERVER

Programmazione server-side: applicazioni CGI

Svantaggi delle servlet

Laboratorio di Programmazione di Rete Docente: Novella Bartolini Lezione dell 16 Maggio 2005

Laboratorio di Informatica. Lezione 12: Altre nozioni html

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Applicazione distribuita basata su Web accessibile via Web per mezzo di una Intranet o attraverso Internet

Tecnologie di Sviluppo per il Web

TOP DOWN. Preparati per il compito in classe Modulo 5

JDBC di base. Le classi/interfacce principali di JDBC

Laboratorio di Basi di Dati

Tecnologie e Programmazione Web

Progetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

Java e PL/SQL. Simona Rotolo

Laboratorio di reti II: Servlet

Gestione di immagini/file in PostgreSQL e servlet

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

Applicazioni web: evoluzioni

1 Applicazione J2EE sul SAP WAS con SAP NWDS

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

Fondamenti di Informatica

Tipi fondamentali di documenti web

Architetture Web parte 2

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

1 (4) 2 (4) 3 (7) 4 (5) 5 (6) 6 (6)

Transcript:

Capitolo 7 Esercizio 7.1 Commentare le caratteristiche di HTTP come protocollo client-server, evidenziando gli aspetti differenti rispetto ai protocolli client-server tradizionali. La caratteristica che differenzia particolarmente HTTP rispetto ad altri protocolli è il suo essere stateless. E' si possibile inviare informazioni tramite le sue primitive, ma non è possibile tenerne traccia. Questa caratteristica lo rende particolarmente inadatto per le operazioni normalmente attuate dai web services. Esercizio 7.2 Scrivere un form html che permetta all'utente di inviare il proprio nome e cognome a un programma CGI che stampa una pagina HTML di saluto, contenente il nome e il cognome dell'utente e l'ora di sistema. <P align= center > Form di invio nome e cognome </P> <FORM action= nomecognome.exe method= post > </FORM> nome: cognome: <INPUT type= text name= nome > <BR> <INPUT type= text name= cognome > <BR> <INPUT type= submit value= invia > //Programma nomecognome.exe #include <stdio.h> void main() { char* QUERY_STRING; int i=0; //legge le variabili inviate al programma strcpy( QUERY_STRING, getenv( QUERY_STRING );); cout( Content-type text/html\n\n ); cout( <HTML>\n<BODY>\n ); cout( BENVENUTO,QUERY_STRING \n ); cout( Ora di sistema:,getorasistema(), \n ); cout( </BODY>\n</HTML>\n ); return 0; }

Esercizio 7.3 Riscrivere il programma dell'esercizio precedente come servlet e come template JSP. SERVLET: import java.io.*; import=java.util.* ; import java.servlet.*; import java.servlet.http.*; public class nomecognome extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { string nome = request.getparameter( nome ); string cognome = request.getparameter( cognome ); Date data = new Date(); response.setcontenttype( text\html ); PrintWriter out = response.getwriter(); out.println( <HTML> ); out.println( <HEAD> ); out.println( <TITLE>Pagina di Benvenuto</TITLE> ); out.println( </HEAD> ); out.println( <BODY> ); out.println( Benvenuto + nome + + cognome); out.println( Ora di sistema + data); out.println( </BODY> ); out.println( </HTML> ); }} TEMPLATE: @page language= java page import= java.util.* Date data= new Date; String nome = request.getparameter( nome ); String cognome = request.getparameter( cognome ); <HTML> <HEAD> <TITLE>Pagina di Benvenuto</TITLE> </HEAD> <BODY> Benvenuto = nome = cognome Ora di sistema = data </BODY> </HTML>

Esercizio 7.4 Dato lo schema concettuale della base di dati contenente autori e libri utilizzato nei paragrafi 4.2.1, 4.2.2 e 4.2.3, scrivere un template JSP contenente una form di ricerca che permette di inserire il cognome di un autore. Scrivere un secondo template che, ricevuto il cognome di un autore, stampa la lista dei libri da lui scritti. FORM 1: <P align= center > Form di inserimento cognome autore </P> <FORM action= form2 method= post > cognome: <INPUT type= text name= cognome > <BR> <INPUT type= submit value= invia > </FORM> FORM 2: @page language= java page import= java.io.* page import= java.util.* page import= java.sql.* string cognome = request.getparameter( cognome ); Class.forName( sun.jdbc.odbc.jdbcobdcdriver ); Connection conn = DriverManager.getConnection ( jdbc:odbc:db, Utente, psw ); PreparedStatement sqlcode = conn.preparestatement( Selec ISBN, Titolo, Editore, Prezzo from (AUTORE join SCRIVE on autore.codice=scrive.codice) join LIBRO where Cognome =? sqlcode.setstring(1, cognome); ResultSet result = sqlcode.executequery(); <HTML> <HEAD> <TITLE>Elenco dei Libri dell'autore selezionato</title> </HEAD> <BODY> while (result.next()) { <P> ISBN: = result.getstring( ISBN ) Titolo: = result.getstring( Titolo ) Editore: = result.getstring( Editore ) Prezzo: = result.getstring( Prezzo ) </P> } </BODY> </HTML> result.close(); sqlcode.close(); conn.close();

Esercizio 7.5 Si vuole costruire un sito Web per la società di formazione discussa negli esempi dei capitoli 7 e 8 del primo volume di questo libro. Allo scopo: 1. specificare i requisiti per il sito, individuando le informazioni di interesse per il pubblico esterno dell'azienda; 2. progettare lo schema concettuale dell'ipertesto. 1.Le informazioni di interesse sono i corsi, gli orari delle lezioni, i docenti e, nel caso siano contemplate, le abilitazioni connesse al corso. 2. Esercizio 7.6 Si vuole costruire un sito Web per la gestione di una bacheca di messaggi. Allo scopo: 1. specificare i requisiti per il sito, individuando le informazioni di interesse per gli utenti; 2. progettare lo schema concettuale della base di dati e dell'ipertesto; 3. realizzare la base di dati e le pagine dell'ipertesto. In particolare, si utilizzino JSP per le pagine dinamiche di pubblicazione dei contenuti e Java servlet per l'operazione di creazione di un messaggio nella bacheca.

1. Le informazioni di interesse sono: l'autore del messaggio e alcune informazioni sulla sua identità (e-mail, nome o nickname), la data del messaggio e, naturalmente, il corpo del messaggio. 2. 3. BASE DI DATI: Create table Utente ( nome char(20) primary key, email chat(20) ) Create table Messaggio ( codice int primary key, data date, corpo clob, utente char(20) references Utente(nome) )

PAGINE DELL'IPERTESTO: @page language= java page import= java.io.* page import= java.sql.* Class.forName( sun.jdbc.odbc.jdbcobdcdriver ); Connection conn = DriverManager.getConnection ( jdbc:odbc:db, Utente, psw ); PreparedStatement sqlcode = conn.preparestatement( Select utente, email, codice, data, corpo from (UTENTE join MESSAGGIO on utente.nome=messaggio.utente) order by data ResultSet result = sqlcode.executequery(); <HTML> <HEAD> <TITLE>Elenco messaggi</title> </HEAD> <BODY> while (result.next()) { <P> Utente: = result.getstring( utente ) E-mail utente: = result.getstring( email ) Data Invio: = result.getstring( data ) Corpo del messaggio: = result.getstring( corpo ) </P> } </BODY> </HTML> result.close(); sqlcode.close(); conn.close();

SERVLET PER CREAZIONE MESSAGGI: import java.io.*; import=java.sql.*; import=java.util.*; import java.servlet.*; import java.servlet.http.*; public class nomecognome extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { string nome = request.getparameter( nome ); string email = request.getparameter( email ); string corpo = request.getparameter( corpo ); Date data = new Date(); Codice codice = new Codice(); Connection conn = DriverManager.getConnection ( jdbc:odbc:db, Utente, psw ); PreparedStatement sqlcode = conn.preparestatement( insert into UTENTE(nome,email) values(' + nome + ',' + email + ') insert into MESSAGGIO(codice,data,corpo,utente) values(' + codice + ',' + data + ',' + corpo + ',' + nome + ') sqlcode.executequery(); sqlcode.close(); conn.close(); }}