jsp parte a - unibg · 2007. 5. 20. · b6 jsp paolo salvaneschi 1 b6_1 v1.7 jsp parte a...

59
B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall’ autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale

Upload: others

Post on 08-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 1

B6_1 V1.7

JSP parte A

Applicazioni Internet B

Paolo Salvaneschi

Università di BergamoFacoltà di Ingegneria

Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie.Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall’ autore.

Sono graditi commenti o suggerimenti per il miglioramento del materiale

Page 2: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 2B6 JSP Paolo Salvaneschi 2

• Java Server Pages• Installazione di Tomcat• Struttura directory Tomcat• Creazione e installazione di una applicazione

JSP• JSP Overview• Sintassi degli elementi JSP

INDICE

Page 3: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 3B6 JSP Paolo Salvaneschi 3

Java Server Pages

ClientServer

HTTPD

Server

Data base

Sistema Informativo

HTTP

Microsoft Internet ExplorerNetscape Navigator

JSP

Tomcat

Application Server

HTMLCSS

JavaScript

Page 4: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 4B6 JSP Paolo Salvaneschi 4

Java Server Pages

• Java Server Pages (JSP)– Pagina di testo HTML che include codice java– Pagina dinamica che è eseguita lato server e

restituisce HTML al client

Page 5: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 5B6 JSP Paolo Salvaneschi 5

Installazione di Tomcat

• INSTALLAZIONE TOMCAT• Versioni:

Java j2sdk1.4.1_01 (con compilatore, non versione re solo runtime)

Tomcat 4.1.30JSTL 1.0 (jakarta-taglibs-standard-1.0.5.zip)

Page 6: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 6B6 JSP Paolo Salvaneschi 6

Installazione di Tomcat

• INSTALLAZIONE TOMCAT• Installazione di java sdk nella cartella

C:\j2sdk1.4.1_01 • Download dal sito http://www.apache.inetcosmos.org

di jakarta-tomcat-4.1.30.exe• Definizione delle variabili di ambiente • JAVA_HOME• CATALINA_HOME

Page 7: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 7B6 JSP Paolo Salvaneschi 7

Installazione di Tomcat

(es: Windows 2000-XP) : Pannello di controllo-Sistema -Avanzate -Variabili ambiente

CATALINA_HOME C:\Apache Group\Tomcat 4.1

JAVA_HOME C:\Programmi\j2sdk1.4.1_01\bin

Page 8: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 8B6 JSP Paolo Salvaneschi 8

Installazione di Tomcat

• Installazione di Tomcatnella cartella C:\Apache Group\Tomcat 4.1– HTTP/1.1 Connector Port: 8080 – User:admin– Passw: nessuna

Page 9: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 9B6 JSP Paolo Salvaneschi 9

Installazione di Tomcat

• AVVIO TOMCAT• Start TOMCAT

• Al termine delle attività: stop TOMCAT

Page 10: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 10B6 JSP Paolo Salvaneschi 10

Installazione di Tomcat

• UTILIZZO TOMCAT• http://localhost:8080/• http://127.0.0.1:8080/• Esegue il file: index.jsp con il path completo

(percorso di contesto): %CATALINA_HOME%/webapps/ROOT/index.jsp

Cartella di defaultper le applicazioniWeb servite da Tomcat Applicazione di default

Page 11: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 11B6 JSP Paolo Salvaneschi 11

Installazione di Tomcat

Page 12: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 12B6 JSP Paolo Salvaneschi 12

Installazione di Tomcat

• Amministrazione di TOMCAT: http://localhost:8080/admin• Definizione e gestione utenti • ……….

Page 13: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 13B6 JSP Paolo Salvaneschi 13

Installazione di Tomcat

• Amministrazione di TOMCAT: http://localhost:8080/manager

• Es: lista applicazioni installate e gestione relativa• Installazione di nuove applicazioni

Page 14: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 14B6 JSP Paolo Salvaneschi 14

Installazione di Tomcat

Page 15: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 15B6 JSP Paolo Salvaneschi 15

Struttura directory Tomcat

Applicazioneservita da Tomcat

Page 16: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 16B6 JSP Paolo Salvaneschi 16

Struttura directory Tomcat

• Script per avvio e interruzione del server Tomcat...\Tomcat-4.1\bin

• Files di configurazione del server...\Tomcat-4.1\conf

• Files di log del server...\Tomcat-4.1 \logs

• Cartella di default per le applicazioni Web servite da Tomcat...\Tomcat-4.1 \webapps

• Files temporanei (qui sono salvate le servlet generate dalle pagine JSP)...\Tomcat-4.1 \work

Page 17: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 17B6 JSP Paolo Salvaneschi 17

Struttura directory Tomcat

• Applicazioni Web servite da Tomcat• Container

– Metodo standard di installazione e packaging delle risorse che compongono un’applicazione (pagine JSP, pagine statiche, classi java,…). Files disposti in una gerarchia definita all’interno di un archivio WAR (Web archive)– Archivio .jar (.zip)– Cartella di file system

Page 18: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 18B6 JSP Paolo Salvaneschi 18

Struttura directory Tomcat

– Descrittore dell’installazione (file XML)– Contesto servlet

associato ad un context path utilizzato per raggiungere l’applicazione a cui inviare le richieste

Page 19: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 19B6 JSP Paolo Salvaneschi 19

Creazione e installazione di una applicazione JSP

Applicazioneservita da Tomcat

Page 20: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 20B6 JSP Paolo Salvaneschi 20

Creazione e installazione di una applicazione JSP

<HTML><HEAD><TITLE></TITLE>

</HEAD><BODY><H1>Esempio 1</H1>

<P><%= "pippo" + ", pluto" %> </P>

<IMG SRC="citta.gif" WIDTH="100" HEIGHT="100" BORDER="0" ALT=""><HR></BODY></HTML>

index.jsp

<%= Espressione %>Utilizzate per aggiungere alla risposta http il risultato dell’esecuzione di un’espressione di scripting

Page 21: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 21B6 JSP Paolo Salvaneschi 21

Creazione e installazione di una applicazione JSP

<HTML><HEAD><TITLE></TITLE>

</HEAD><BODY><H1>Esempio 1</H1>

<P>pippo, pluto </P>

<IMG SRC="citta.gif" WIDTH="100" HEIGHT="100" BORDER="0" ALT=""><HR></BODY></HTML>

http://localhost:8080/Esempio_1

Testo HTML generato

Page 22: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 22B6 JSP Paolo Salvaneschi 22

Creazione e installazione di una applicazione JSP

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app><display-name>Welcome to Tomcat</display-name><description>

Welcome to Tomcat</description>

</web-app>

Descrittore dell’installazione

Page 23: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 23B6 JSP Paolo Salvaneschi 23

Creazione e installazione di una applicazione JSP

http://localhost:8080/Esempio_1

%CATALINA_HOME%\webapps\Esempio_1\index.jsp

C:\Apache Group\Tomcat 4.1\webapps\Esempio_1\index.jsp

Regole di mappatura

Context path

Page 24: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 24B6 JSP Paolo Salvaneschi 24

Creazione e installazione di una applicazione JSP

• Installazione di una nuova applicazione

– Costruire l’applicazione (archivio)– Copiare in /webapps– Stop Tomcat– Start Tomcat

Page 25: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 25B6 JSP Paolo Salvaneschi 25

JSP Overview

• Servlet– Oggetti Java particolari che sono caricati ed

eseguiti dal web server (application server) che li utilizza come proprie estensioni.

– Il server mette a disposizione delle Servlet un “container” che si occupa della gestione dell’ambiente all’interno delle quali le servletgirano.

– Il “container” passa i dati dal client verso le servlet e viceversa (via protocollo http).

Page 26: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 26B6 JSP Paolo Salvaneschi 26

JSP Overview

• Ciclo di vita di una Servlet– Una servlet è caricata e inizializzata dal web

server al momento della prima richiesta http da parte di un client o al momento dell’avvio del servizio.

– All’inizializzazione la servlet può, se il caso, aprire una connessione con un DataBase(connessione che resta aperta per servire piùrichieste del client).

Page 27: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 27B6 JSP Paolo Salvaneschi 27

JSP Overview

• Ciclo di vita di una Servlet– La servlet esegue le richieste del client.

Per ogni richiesta è creato un thread

– La servlet rilascia le risorse ed è distrutta

Page 28: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 28B6 JSP Paolo Salvaneschi 28

JSP Overview

• Elaborazione della pagina JSPIl server utilizza la pagina JSP come una servlet. Al momento del primo accesso la pagina JSP è trasformata in un file Java e compilata ottenendo una classe Java che rappresenta una servlet che crea una pagina html e la invia al client.

Page 29: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 29B6 JSP Paolo Salvaneschi 29

JSP Overview

<HTML><HEAD></HEAD><BODY><H1>Esempio 2</H1><HR>

<% for(int i=0; i<10; i++) {if(i%2==0) {

%><h1>Pari</h1>

<% } else { %><h2>Dispari</h2>

<%}

}%>

<HR></BODY></HTML>

index.jsp

Scriptlet

<% Frammento di codice %>Utilizzati per includere frammenti di codice nella pagina

Page 30: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 30B6 JSP Paolo Salvaneschi 30

JSP Overview

<HTML><HEAD></HEAD><BODY><H1>Esempio 2</H1><HR>

<% for(int i=0; i<10; i++) {if(i%2==0) {

%><h1>Pari</h1>

<% } else { %><h2>Dispari</h2>

<%}

}%>

<HR></BODY></HTML>

http://localhost:8080/Esempio_2

Page 31: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 31B6 JSP Paolo Salvaneschi 31

JSP Overview

<HTML><HEAD></HEAD><BODY><H1>Esempio 2</H1><HR>

<h1>Pari</h1><h2>Dispari</h2><h1>Pari</h1><h2>Dispari</h2><h1>Pari</h1><h2>Dispari</h2><h1>Pari</h1><h2>Dispari</h2><h1>Pari</h1><h2>Dispari</h2>

<HR></BODY></HTML>

Testo HTML generato

Page 32: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 32B6 JSP Paolo Salvaneschi 32

JSP Overview

• Jsp è case-sensitive

• Directories e nomi di files della web application sono case-sensitive

…<IMG SRC=“Citta.gif">…

…<IMG SRC="citta.gif">…

Uno.htm

Due.htm

Eseguiti sul file system di windows da Explorer

utilizzano lo stesso file immagine

Copiati in Webapps ed Eseguiti da Tomcat (con OS Windows)NON utilizzano lo stesso file

immagine

Page 33: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 33B6 JSP Paolo Salvaneschi 33

JSP Overview

• Pagina JSP• Testo template• Elementi JSP

–Direttive–Elementi di scripting–Componenti JavaBean–Elementi di azione standard–Azioni personalizzate e JSTL

Page 34: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 34B6 JSP Paolo Salvaneschi 34

JSP Overview

<%@ page import = "num.NumberGuessBean" %><jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/><jsp:setProperty name="numguess" property="*"/><html><head><title>Number Guess</title></head><body bgcolor="white"><font size=4><% if (numguess.getSuccess()) { %>Congratulations! You got it.And after just <%= numguess.getNumGuesses() %> tries.<p><% numguess.reset(); %>Care to <a href="numguess.jsp">try again</a>?

<% } else if (numguess.getNumGuesses() == 0) { %>…………

Azioni

Direttive

Elementi discripting

Testo template

Page 35: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 35B6 JSP Paolo Salvaneschi 35

JSP Overview

• Modi diversi di inserire il codice• Primo modo:

–Elementi di scriptingCodice java inserito nel testo

• La pagina è realizzata da un programmatore java

Page 36: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 36B6 JSP Paolo Salvaneschi 36

JSP Overview

• Modi diversi di inserire il codice• Modi ulteriori

– Componenti JavaBean (Classi java con regole di codifica tali da poterle utilizzare in modo semplice)

– Elementi di azione standard, Azioni personalizzate e JSTL (Tag specializzati)

Page 37: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 37B6 JSP Paolo Salvaneschi 37

JSP Overview

• Motivazioni:• Motivazione gestionale:

• separare il ruolo del programmatore (java, DB) dal costruttore di interfaccia (HTML)

• Motivazioni tecniche: • Strumenti di sviluppo rapido• Vedi pattern Model View Controller

Page 38: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 38B6 JSP Paolo Salvaneschi 38

JSP Overview

Java Beans

<%@ page import = "num.NumberGuessBean" %><jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/><jsp:setProperty name="numguess" property="*"/><html><head><title>Number Guess</title></head><body bgcolor="white"><font size=4>…………

Classi java esterne

Page 39: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 39B6 JSP Paolo Salvaneschi 39

<%@ page contentType="text/html" %><%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><html><head>

<title>JSP is Easy</title></head><body bgcolor="white"><h1>JSP is as easy as ...</h1>

<%-- Calculate the sum of 1 + 2 + 3 dynamically --%>1 + 2 + 3 = <c:out value="${1 + 2 + 3}" />

</body></html>

JSP Overview

Elementi di azione personalizzate e JSTL

Page 40: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 40B6 JSP Paolo Salvaneschi 40

Sintassi degli elementi JSP

• <%-- … --%> Commento• Direttive• Sintassi

<%@nomeDirettiva attr1=“valore” attr2=“valore2 … %>

• Tipi di direttive<%@include … %><%@page … %><%@taglib … %>

Page 41: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 41B6 JSP Paolo Salvaneschi 41

Sintassi degli elementi JSP

• <%@include file=“Percorso” %>• Esegue l’inserimento del contenuto di un file

nella pagina• Il nuovo testo è compilato

Page 42: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 42B6 JSP Paolo Salvaneschi 42

Sintassi degli elementi JSP

• <%@page nome=“valore” … %>• Definisce gli attributi della pagina

contentType=“tipo MIME per la risposta”errorPage=“percorso pagina a cui trasferire il

controllo in caso di eccezione”import=“elenco classi o package java da

importare”language=“linguaggio di scripting usato”session=“true” (default) se la pagina partecipa ad una

sessione utente…

Page 43: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 43B6 JSP Paolo Salvaneschi 43

Sintassi degli elementi JSP

• <%@taglib prefix=“Prefisso”uri=“taglibURI” %>

• Dichiara una tag library utilizzata nella pagina che contiene azioni personalizzate (o JSTL)prefix prefisso da utilizzare nei nomi degli

elementi di azioneuri stringa utilizzata per localizzare

l’implementazione della tag library

Page 44: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 44B6 JSP Paolo Salvaneschi 44

Sintassi degli elementi JSP

• Elementi di scriptingConsentono di aggiungere porzioni di codice alla pagina JSP

• Tipi di elementi– Dichiarazioni– Espressioni– Scriptlet

Page 45: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 45B6 JSP Paolo Salvaneschi 45

Sintassi degli elementi JSP

• Dichiarazioni<%! Dichiarazione %>Dichiara una variabile o un metodo

<%! Int globalCounter = 0; %>

• Espressioni<%= Espressione %>Utilizzate per aggiungere alla risposta http il risultato dell’esecuzione di un’espressione di scripting<%= globalCounter ++ %>

Page 46: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 46B6 JSP Paolo Salvaneschi 46

Sintassi degli elementi JSP

• Scriptlet<% Frammento di codice %>Utilizzati per includere frammenti di codice nella paginaIl linguaggio deve essere definito nella direttiva page(default java)

Page 47: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 47B6 JSP Paolo Salvaneschi 47

<%@page language="java" contentType="text/html" %><%! int globalCounter = 0; %><HTML><HEAD></HEAD><BODY BGCOLOR="ffffcc"><HR><CENTER><H2>Questa pagina è stata visitata (n. volte): <%= ++globalCounter %> </H2>

…………………

Sintassi degli elementi JSP

Elementi di scripting

Dichiarazione

Page 48: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 48B6 JSP Paolo Salvaneschi 48

Sintassi degli elementi JSP

<HTML><HEAD><TITLE></TITLE>

</HEAD><BODY><H1>Esempio 1</H1>

<P> <%= "pippo" + ", pluto" %> </P>

<IMG SRC="citta.gif" WIDTH="100" HEIGHT="100" BORDER="0" ALT=""><HR></BODY></HTML>

Elementi di scripting

Espressione

Page 49: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 49B6 JSP Paolo Salvaneschi 49

Sintassi degli elementi JSP

<HTML><HEAD></HEAD><BODY BGCOLOR="ffffcc"><H1>Esempio 3</H1><HR><CENTER><H2>Date and Time</H2><%

java.util.Date today = new java.util.Date();out.println("Today's date is: "+today);

%></CENTER> <HR></BODY></HTML> Elementi di scripting

Classe Datedel package

java.util

Scriptlet

Page 50: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 50B6 JSP Paolo Salvaneschi 50

Sintassi degli elementi JSP

<%@page import="java.util.*" %><HTML><HEAD></HEAD><BODY BGCOLOR="ffffcc"><H1>Esempio 4</H1><HR><CENTER><H2>Date and Time</H2><%

Date today = new Date();out.println("Today's date is: "+today);

%></CENTER> <HR></BODY></HTML> Elementi di scripting

Import del packagejava.util

Classe Date

Scriptlet

Page 51: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 51B6 JSP Paolo Salvaneschi 51

Sintassi degli elementi JSP

<%@page import="java.util.*" %><HTML><HEAD></HEAD><BODY BGCOLOR="ffffcc"><H1>Esempio 5</H1><HR><CENTER><H2>Saluto</H2>

<% Date clock = new Date(); %><% if ( clock.getHours() < 12 ) { %><H2>Buongiorno!</H2><% } else if ( clock.getHours() < 17 ) { %><H2>Buon pomeriggio!</H2><% } else { %><H2>Buona sera!</H2><% }%>

</CENTER><HR></BODY></HTML> Elementi di scripting

Scriptlet

Page 52: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 52B6 JSP Paolo Salvaneschi 52

Sintassi degli elementi JSP

• Componenti JavaBean• Un componente JavaBean è una classe java

conforme a definite regole di codifica• Un insieme di elementi di azione standard

<jsp: … > ne permette l’utilizzo• Sono utilizzati come contenitori che descrivono

entità dell’applicazione (cliente, ordine,…)

Page 53: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 53B6 JSP Paolo Salvaneschi 53

Sintassi degli elementi JSP

<%@ page import = "num.NumberGuessBean" %><jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/><jsp:setProperty name="numguess" property="*"/><html><head><title>Number Guess</title></head><body bgcolor="white"><font size=4>…………

Classi java esterne

Page 54: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 54B6 JSP Paolo Salvaneschi 54

Sintassi degli elementi JSP

• Elementi di azione standardComponenti invocati quando un client chiede la pagina JSP

• Sintassi XMLEsempio:

<jsp:forward page=“nextPage.jsp”><jsp:param name=“aParam” nvalue=“aValue”/>

</jsp:forward>Tag iniziale con eventuali attributi, tag finale, annidamento

Page 55: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 55B6 JSP Paolo Salvaneschi 55

Sintassi degli elementi JSP

• Notazione completaTag iniziale <jsp:… >

corpoTag finale </jsp:… >

• Notazione abbreviata se non c’è un corpo<jsp:… />

Page 56: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 56B6 JSP Paolo Salvaneschi 56

Sintassi degli elementi JSP

• Elementi di azione standard<jsp:forward page=“nextPage.jsp”/>

Trasferisce il controllo dell’elaborazione della richiesta http ad un’altra pagina

<jsp:forward page=“nextPage.jsp”>

<jsp:param> <jsp:param> ….</jsp:forward >

Trasferisce il controllo dell’elaborazione della richiesta http ad un’altra pagina passando parametri supplementari

Page 57: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 57B6 JSP Paolo Salvaneschi 57

Sintassi degli elementi JSP

• Elementi di azione standard<jsp:getProperty name=“nomeAssegnatoAlBean”property = “NomeProprietà” >

Aggiunge il valore della proprietà di un Bean, convertito in una stringa, alla risposta generata dalla pagina

<jsp:setProperty name=“nomeAssegnatoAlBean”property = “NomeProprietà” >

Imposta il valore della proprietà di un Bean

Page 58: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 58B6 JSP Paolo Salvaneschi 58

Sintassi degli elementi JSP

• Elementi di azione personalizzata– Specifica e ambiente di sviluppo per realizzare nuove

azioni personalizzate (nuove tag library)• JSTL (Java Standard Tag Library)

– Librerie predefinite di azioni<c: Core

<x: Elaborazione XML

<fmt: Formattazione e internazionalizzazione

<sql: Accesso a database

Page 59: JSP parte A - Unibg · 2007. 5. 20. · B6 JSP Paolo Salvaneschi 1 B6_1 V1.7 JSP parte A Applicazioni Internet B Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il

B6 JSP Paolo Salvaneschi 59B6 JSP Paolo Salvaneschi 59

<%@ page contentType="text/html" %><%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><html><head>

<title>JSP is Easy</title></head><body bgcolor="white"><h1>JSP is as easy as ...</h1>

<%-- Calculate the sum of 1 + 2 + 3 dynamically --%>1 + 2 + 3 = <c:out value="${1 + 2 + 3}" />

</body></html>

Sintassi degli elementi JSP