Fondamenti di JSP: Introduzione

Slides:



Advertisements
Presentazioni simili
Presentazione della tesi di laurea di Flavio Casadei Della Chiesa Newsletter: un framework per una redazione web.
Advertisements

XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Meccanismi di IPC Problemi classici di IPC
Programmazione in Java
Corso di Fondamenti di Informatica
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Java Enterprise Edition (JEE)
Massa Laura Mela Enrica
una interfaccia internet per il sistema Momis
Usare Apache Axis.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Training On Line - Report. 2 Report storico Da menu: Reportistica -> Report storico Si accede alla pagina di selezione del report storico.
Programmazione Procedurale in Linguaggio C++
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Linguaggi per il Web Laboratorio di Applicazioni Informatiche II mod. A.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
1 Il servizio di prestito e fornitura documenti ILL-SBN una visione di insieme caratteristiche della procedura illustrazione delle funzionalità
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Corso di Informatica (Basi di Dati)
Corso di Informatica (Programmazione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
eliana minicozzi linguaggi1a.a lezione2
1 Anatomia di una pagina Un insieme di pagine web hanno generalmente una parte invariante (o poco): header, navigazione, footer una parte variabile: contenuti.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
I Thread.
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
Strutture di controllo in C -- Flow Chart --
Elaborazione di Franco Grivet Chin
Corso di PHP.
Portale Capacità STOGIT
1° passo Aprire Internet Explorer Andare alla homepage di Ateneo Aprire il menu Ateneo Scorrere fino Servizi di Ateneo Cliccare su Servizi Informatici.
Javascript: fondamenti, concetti, modello a oggetti
Come funziona il PHP.
Progettazione multimediale
Centro di Assistenza Multicanale (C.A.M.) di Cagliari
Test Reti Informatiche A cura di Gaetano Vergara Se clicchi sulla risposta GIUSTA passi alla domanda successiva Se clicchi sulla risposta ERRATA passi.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
CORSO AVANZATO INFORMATICA
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche.
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Creare pagine web Xhtlm. Struttura di una pagina.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Applicazione Web Informatica Abacus Informatica Classe VIA 2008/2009 N.Ceccon INF (01) Revisione 4.0 settembre 2008.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Bando Beni in comune. 2ROL - Richieste On Line 3.
Vannucci Roberto (5BM), De Nardin Axel (5AM)
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Introduzione a Javascript
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Eprogram informatica V anno.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Eprogram informatica V anno. Programmare in rete.
Transcript della presentazione:

Fondamenti di JSP: Introduzione Gianluca Moro gmoro@deis.unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna

Sistemi reali in JSP ofoto.com: stampa e gestisce foto digitali e convenzionali Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Sistemi reali in JSP Una delle più grandi banche nel mondo per l’emissione di carte di credito e servizi on-line Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Sistemi reali in JSP Delta Airlines: intero sito incluse informazioni real-time sugli orari Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Sistemi reali in JSP wine.com: leader nella vendita del vino al dettaglio sulla rete internet Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Sistemi reali in JSP American Century Investments: più di 70 fondi comuni, 90USD miliardi in gestione, 2 milioni di investitori Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Concetti di base Una pagina JSP è un’unità di elaborazione server-side ed è strutturata in TAG portabile su piattaforme eterogenee senza nemmeno la ricompilazione L’esecuzione del codice nella pagina è a carico del Web server o di suoi componenti Tomcat: web server freeware (componente di Apache) Il risultato dell’elaborazione può essere: una pagina HTML, XML, WML etc (restituita al browser) e/o operazioni compiute su componenti server-side: oggetti, database ... Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Contenuti Dichiarazioni; Espressioni; Scriptlet; Direttive (alcune); Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Esempio di pagina JSP <%-- questo è un commento: segue una direttiva di pagina --%> <%@ page import=“java.util.*” info=“Login” errorPage=“error.jsp” %> <%-- questa è una direttiva di inclusione di file --%> <%@ include file=“banner.html” %> <%-- dichiarazione che può contenere variabili e metodi --%> <%! int i = 0; String s=“hello world”;%> <%-- segue un’espressione java di cui viene visualizzato il risultato --%> <%= 3+2+i+“ ”+s %> <%-- questo è uno Scriptlet con codice Java e HTML --%> <% for (i=1; i<3; i++) { %> <H<%=i%>><%=s%></H<%=i%>> <% } %> Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Ciclo di vita di una pagina JSP (i) La pagina viene salvata in una cartella pubblica del server web alla prima richiesta ricevuta dal Web server la pagina JSP è automaticamente: tradotta in un sorgente Java chiamato Servlet compilata come programma Java caricata in memoria ed eseguita nelle chiamate successive la pagina JSP (i.e. la servlet corrispondente) viene solo eseguita Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Ciclo di vita di una pagina JSP (ii) ad ogni invocazione Il server web verifica se la pagina JSP è più recente della corrispondente Servlet se lo è, perché ad esempio la pagina JSP è stata modificata, allora la pagina viene di nuovo tradotta, compilata, caricata e eseguita feature molto comoda in fase di sviluppo ma da disattivare al rilascio dell’applicazione perché è costosa Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Servlet … no grazie! sviluppare Servlet richiede maggiore conoscenza di Java rispetto a quanto ne richiede JSP con JSP è possibile ottenere risultati analoghi inoltre JSP consente la separazione tra codice Java e di presentazione (es: HTML) essendo il corso introduttivo non lavoreremo direttamente con le Servlet Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Configurazione per lavorare con JSP Necessario un web server JSP compliant: Tomcat 3.2 http://jakarta.apache.org/ scaricare il file compresso con i file compilati l’installazione consiste nel decomprimere il file compresso in una directory (es: c:\tomcat) necessario installare il Java Development Kit segnalare a Tomcat la directory del JDK e la sua variabile JAVA_HOME nel file ...\bin\tomcat.bat variabile TOMCAT_HOME nel file ...\bin\startup.bat pagine HTML e JSP inserite in directory contenute in …\webapps Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Avvio e test dell’ambiente Tomcat Avviare Tomcat eseguendo …\bin\startup.bat accedendo a http://localhost:8080/ deve comparire Per verificare l’installazione JDK eseguire uno degli esempi disponibili link JSP Examples Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Contesto dell’applicazione JSP (i) Ogni applicazione JSP può avere il proprio contesto cosi strutturato: una propria directory contenente i file JSP e HTML esempio: …\webapps\myApp una directory WEB-INF con tutte le risorse della applicazione …\webapps\myApp\WEB-INF\classes classi Java che costituiscono l’applicazione …\webapps\myApp\WEB-INF\lib classi Java di terze parti usate dall’applicazione, esempio driver JDBC, framework (EJB …) Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Contesto dell’applicazione JSP (ii) Il contesto si definisce nel file …\conf\server.xml aggiungendo quanto segue: Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Schema di funzionamento Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Java come linguaggio per JSP Useremo Java come linguaggio per le pagine JSP in Java è necessario dichiarare ogni variabile utilizzata A differenza di altri linguaggi di scripting lato server, quali VBScript, le variabili devono essere tipizzate La sintassi, le regole di visibilità ed i tempi di vita delle variabili sono conformi a Java Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Dichiarazioni di variabili condivise <%! … %> TAG per dichiarare variabili condivise; posto (di norma) all’inizio della pagina esempio: dichiarazione di una variabile intera i e una stringa s <%! int j=0; String s = “fattoriale di ”; %> le variabili così dichiarate sono visibili all’interno della pagina e sono condivise tra tutti gli utilizzatori della pagina Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Variabili condivise:precisazione Una pagina JSP è una Servlet ossia una classe Java con metodi e attributi le variabili dichiarate con <%! … %> diventano usuali variabili istanza della classe Per eseguire una Servlet si istanzia un oggetto dalla classe Ogni richiesta (browser request) viene soddisfatta avviando un thread sull’oggetto i thread di un oggetto condividono le variabili istanza (ma non quelle locali all’interno dei metodi) variabili istanza = variabili condivise Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Dichiarazioni di funzioni Con gli stessi TAG <%! … %> si possono dichiarare delle funzioni (i.e. metodi) utilizzabili nella pagina Esempio: <%! int fatt(int n) { if (n == 0) return 1; else return n*fatt(n-1); } %> Il metodo così dichiarato diventa un metodo della Servlet Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Espressioni <%= … %> all’interno di questo TAG si inserisce una espressione Java esempio: <%=s+j+“=”+fatt(j++)%> notare la terminazione senza punto e virgola valutazione: l’espressione viene valutata e il risultato viene convertito in stringa la stringa risultante viene posta nella pagina di output inviata all’utente Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Scriptlet I separatori <% … %> permettono di ospitare codice con sintassi e semantica Java esempio: <% j++; for (int i=0; i<j; i++) { %> <H<%=i+1%>> <%=s+i+“=”+fatt(i)%> </H<%=i+1%>> <% } %> espressioni e scriptlet vengono inseriti in un metodo della Servlet chiamato _jspService(...) Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Risultato j aumenta di 1 ad ogni richiesta poiché è una variabile istanza (condivisa) dopo 6 richieste si ottiene questo risultato Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Attenzione alla concorrenza <HTML><HEAD><TITLE>Dichiarazioni</TITLE> </HEAD> <BODY> <H1>Dichiarazioni JSP</H1> <%! int identificatore = 1; %> <H2>il tuo identificatore è <%= identificatore %> <% ++identificatore; %> </H2> </BODY> </HTML> Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Sincronizzazione La modifica di una risorsa condivisa in situazioni di concorrenza può originare anomalie Una soluzione è sequenzializzare le sezioni critiche: <% synchronized(this) { %> <H2>il tuo identificatore è <%= identificatore %> <% ++identificatore; } %> questo caso (banale) si risolve anche senza: <H2>il tuo identificatore è <%= ++identificatore %> Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Tipi di direttive Le direttive forniscono indicazioni per l’ambiente di esecuzione e riguardano: Commenti Inclusione di file Reindirizzamento delle richieste Pagina Altre direttive, quelle deputate all’utilizzo dei bean, verranno introdotte in seguito Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Commenti E’ possibile inserire commenti in una pagina JSP utilizzando la seguente direttiva: <%-- commento --%> Si noti che questo commento non viene inviato al browser Per inserire commenti visibili a livello di codice HTML inviato al cliente, utilizzare i commenti HTML: <!-- commento --> Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Inclusione a compile-time E’ possibile includere a compile-time un file JSP o qualsiasi altro file ad una pagina JSP: <%@ include file=“URL del file” %> corrisponde a quanto ottenibile con un qualsiasi editor facendo il paste di un file in un altro permette di includere porzioni di pagine comuni a più pagine localizzando così le modifiche ad un solo file Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Inclusione a request-time E’ possibile includere un file esterno ogni volta che la pagina JSP viene richiesta: <jsp:include page=“URL della pagina” flush=“true”/> diversamente dalla precedente inclusione, questa permette di includere sempre l’ultima versione del file si possono passare parametri alla pagina inclusa aggiungendo righe del tipo: <jsp:param name=“name” value=“value”/> … </jsp:include> Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Reindirizzamento del client E’ possibile indicare al browser di richiedere/richiamare un’altra pagina: <jsp:forward page=“pagina destinazione”/> La pagina contenente la direttiva non può spedire nulla al browser chiamante prima della direttiva stessa è possibile passare parametri alla pagina richiamata: <jsp:param name=“name” value=“value”/> … </jsp:forward> la pagina richiamata riceve i parametri tramite l’oggetto request.getParameter(“name”) Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02

Attributi di pagina Tramite questa direttiva, è possibile definire una serie di attributi relativi all’intera pagina (di supporto all’interprete della pagina): <%@ page language = “linguaggio di scripting” buffer=“dimensione buffer da usare prima di spedire l’output” autoFlush=“se buffer vale on allora questo vale true” info=“informazioni descrittive sulla pagina” errorPage=“URL pagina di gestione degli errori di questa pagina” contentType=“tipo MIME del contenuto” isErrorPage=“se vale true allora la pagina gestisce errori” %> MIME: Multipurpose Internet Mail Extensions, and refers to an official Internet standard that specifies how messages must be formatted so that they can be sent Fondamenti di JSP: Introduzione G. Moro - DEIS Università di Bologna - a.a. 2001/02