Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Presentazione servlet - Java, Slide di Elementi di Informatica

Presentazione servlet - Java

Tipologia: Slide

2014/2015

Caricato il 14/06/2015

GiudittaMaria
GiudittaMaria 🇮🇹

1 documento

1 / 14

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Laboratorio di Servizi Web - servlet - Ardissono 1
Architetture N-tier: secondo livello
Sviluppo di applicazioni accessibili da web
browser ed eseguite in server remoto
Server può usare database etc. per accedere a dati
(mediante JDBC, vd. lucidi su architetture a 3 e N
livelli)
•Vedremo:
–Servlet
Java Server Pages
Ma prima: cenni ad HTTP e WWW (vedere altri
corsi per dettagli !!)
Laboratorio di Servizi Web - servlet - Ardissono 2
World Wide Web
Basata su modello client-server
Lato Client
WWW appare come enorme collezione di pagine
(statiche o dinamiche, multimediali e non, ...),
accessibili usando browser (Netscape, Microsoft
Explorer, Mosaic, …)
pagine web legate mediante link, formano ipertesto
NB: i link permettono di raggiungere da un a pagina
web delle pagine situate su server diversi
Lato Server
Ogni sito Web ha processo server che ascolta su porta
TCP per ricevere richieste di connessione e gestirle
Laboratorio di Servizi Web - servlet - Ardissono 3
Web Server
Programma che gira su macchina server
resta in ascolto di richieste
ad ogni richiesta lancia azione per gestirla (recupera
pagina web, esegue programma sul server, …)
restituisce al chiamante risultato (pagina richiesta,
risultato di esecuzione del programma, …)
Web server più comuni:
Apache (disponibile per sistemi operativi diversi)
Internet Information Server (IIS di Microsoft, per
Windows)
Laboratorio di Servizi Web - servlet - Ardissono 4
URL
URL: Uniform Resource Locator
identificatore univoco della pagina su internet
protocol://IP-address:port/resourceName
http://130.192.241.1:10000/sweb40/prova.html
IP-address in generale può essere sostituito da DNS
name (es: 130.192.239.1 è www.di.unito.it)
ftp://www.di.unito.it/liliana/pippo.txt
URL usati per richiedere a web server di leggere
pagine
accesso a pagine web
usati nei link tra pagine
Laboratorio di Servizi Web - servlet - Ardissono 5
HyperText Transfer Protocol (HTTP) - I
Protocollo a livello applicativo (sopra TCP)
Basato su due tipi di azioni
richiesta da client a web server
risposta da web server a client
HTTP stateless: gestisce solo interazioni del tipo
<richiesta - risposta>
client chiede connessione
stabilita la connessione, client effettua richiesta
server gestisce richiesta e invia risposta
connessione viene chiusa
NB: connessioni sempre iniziate da client e chiuse da
server
Laboratorio di Servizi Web - servlet - Ardissono 6
HyperText Transfer Protocol (HTTP) - II
HTTP request: richiesta da client a server
GET: richiesta di leggere pagina web
HEAD: richiesta di leggere header di pagina web
POST: invio dati a ser ver
–…
HTTP response: risposta da server a client
NB: Richieste effettuate normalmente da browser,
ma essendo HTTP protocollo testuale, ci si può
connettere a server anche via telnet
NB: HTTP stateless
usando HTTP da solo non si
gestiscono agevolmente applicazioni web che
richiedono più scambi di informazioni tra browser
e server
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Anteprima parziale del testo

Scarica Presentazione servlet - Java e più Slide in PDF di Elementi di Informatica solo su Docsity!

Laboratorio di Servizi Web - servlet - Ardissono 1

Architetture N-tier: secondo livello

  • Sviluppo di applicazioni accessibili da web

browser ed eseguite in server remoto

  • Server può usare database etc. per accedere a dati

(mediante JDBC, vd. lucidi su architetture a 3 e N

livelli)

  • Vedremo:
    • Servlet
    • Java Server Pages
  • Ma prima: cenni ad HTTP e WWW (vedere altri

corsi per dettagli!!)

Laboratorio di Servizi Web - servlet - Ardissono 2

World Wide Web

  • Basata su modello client-server
  • Lato Client
    • WWW appare come enorme collezione di pagine (statiche o dinamiche, multimediali e non, ...), accessibili usando browser (Netscape, Microsoft Explorer, Mosaic, …)
    • pagine web legate mediante link, formano ipertesto
    • NB: i link permettono di raggiungere da una pagina web delle pagine situate su server diversi
  • Lato Server
    • Ogni sito Web ha processo server che ascolta su porta TCP per ricevere richieste di connessione e gestirle

Laboratorio di Servizi Web - servlet - Ardissono 3

Web Server

  • Programma che gira su macchina server
    • resta in ascolto di richieste
    • ad ogni richiesta lancia azione per gestirla (recupera pagina web, esegue programma sul server, …)
    • restituisce al chiamante risultato (pagina richiesta, risultato di esecuzione del programma, …)
  • Web server più comuni:
    • Apache (disponibile per sistemi operativi diversi)
    • Internet Information Server (IIS di Microsoft, per Windows)

Laboratorio di Servizi Web - servlet - Ardissono 4

URL

  • URL: Uniform Resource Locator
    • identificatore univoco della pagina su internet
    • protocol://IP-address:port/resourceName
    • http://130.192.241.1:10000/sweb40/prova.html
    • IP-address in generale può essere sostituito da DNS name (es: 130.192.239.1 è www.di.unito.it)
    • ftp://www.di.unito.it/∼liliana/pippo.txt
  • URL usati per richiedere a web server di leggere

pagine

  • accesso a pagine web
  • usati nei link tra pagine

Laboratorio di Servizi Web - servlet - Ardissono 5

HyperText Transfer Protocol (HTTP) - I

  • Protocollo a livello applicativo (sopra TCP)
  • Basato su due tipi di azioni
    • richiesta da client a web server
    • risposta da web server a client
  • HTTP stateless : gestisce solo interazioni del tipo

  • client chiede connessione
  • stabilita la connessione, client effettua richiesta
  • server gestisce richiesta e invia risposta
  • connessione viene chiusa

NB: connessioni sempre iniziate da client e chiuse da

server

Laboratorio di Servizi Web - servlet - Ardissono 6

HyperText Transfer Protocol (HTTP) - II

  • HTTP request: richiesta da client a server
    • GET : richiesta di leggere pagina web
    • HEAD : richiesta di leggere header di pagina web
    • POST : invio dati a server
  • HTTP response: risposta da server a client

NB: Richieste effettuate normalmente da browser,

ma essendo HTTP protocollo testuale, ci si può

connettere a server anche via telnet

NB: HTTP stateless ⇒ usando HTTP da solo non si

gestiscono agevolmente applicazioni web che

richiedono più scambi di informazioni tra browser

e server

Laboratorio di Servizi Web - servlet - Ardissono 7

HTTP Request: metodo GET

  • GET IP-address resourceName?param1=val1&…¶mN=valN
  • Usato per richiedere dati (pagine HTML, …)
    • Es: GET http://www.esempio.com ⇒ accedo a pagina index.html del server www.esempio.com
  • Specifica parametri : parameterName=value
    • Es: GET http://www.esempio.com?nome=liliana
    • Web server destinatario può usare valore parametro per inviare contenuti specifici
  • Come sempre, IP-address può essere sostituito da

nome DNS, se disponibile

Laboratorio di Servizi Web - servlet - Ardissono 8

HTTP Request: metodo POST

  • POST IP-address resourceName?param1=val1&…¶mN=valN
  • Usato per accedere a risorse dinamiche
    • permette di incapsulare messaggi costituiti da parti multiple in body di richiesta
    • Es: dati utente raccolti mediante FORM HTML, oggetti Java serializzati, ...

Differenze tra GET e POST

GET trasmette parametri a server appendendoli a URL (si può fare bookmark) POST trasmette parametri inclusi in body della richiesta (no bookmark)

Laboratorio di Servizi Web - servlet - Ardissono 9

HTTP Request: metodo HEAD

  • Usato per richiedere header di risposta: es.

Content-Type, Content-Length

  • I metodi GET e HEAD dovrebbero solo essere

usati per richiedere informazioni al server

  • Per modificare dati nel server ⇒ usare POST

Laboratorio di Servizi Web - servlet - Ardissono 10

HTTP Response

Quando web server riceve HTTP request invia

  • response header: specifica stato della risposta e meta- informazioni che la descrivono - Campi del content header: Date, Content-Type, Expires (se Expires=Date, browser non fa cache)
  • contenuto della risorsa specificata in HTTP request (es. pagina web richiesta) (a meno che request non sia HEAD)
  • HTTP protocollo testuale ⇒ per scambiare anche

contenuti multimediali è stato definito il formato

MIME

Laboratorio di Servizi Web - servlet - Ardissono 11

Formato MIME

Multi-Purpose Internet Mail Extensions

  • nato come estensione di protocollo di posta

elettronica, per trasmettere contenuti multimediali

  • tra i tipi MIME: text/html, image/gif
  • usato in HTTP per indicare tipo di contenuto

incluso in body di HTTP request e response

  • Web server setta header MIME all’inizio di ogni

trasmissione

  • Web browser usa header quando riceve risposta

per decidere come visualizzare dati del body

Laboratorio di Servizi Web - servlet - Ardissono 12

Pagine web statiche e dinamiche

Inizialmente, su web, solo pagine statiche (HTML)

⇒ client richiede a web server pagina (specificando

URL) e server recupera pagina e invia a browser

Pagine dinamiche

  • contenuto generato dinamicamente in base a dati forniti da utente o altri parametri, o perchè dati cambiano nel tempo (es. meteo)
  • interazione con web server bidirezionale (non solo lettura, anche inserimento dati) ⇒ serve tecnologia server-side per generare pagine di risposta a richieste utente

Laboratorio di Servizi Web - servlet - Ardissono 19

Active Server Pages (ASP) - I

  • Tecnologia basata su template : combina HTML ,

scripting e componenti server-side in file che

rappresentano pagine dinamiche (.asp)

  • Pagina ASP contiene
    • parti (statiche) di visualizzazione dati (HTML)
    • invocazioni di programmi server-side, effettuate usando linguaggi di scripting quali JScript e VBScript
    • invocazioni servono per recuperare risultati, poi inseriti in pagina da visualizzare su browser utente

Laboratorio di Servizi Web - servlet - Ardissono 20

Active Server Pages (ASP) - II

  • Quando browser richiede pagina ASP, web

server compila pagina (template) e la esegue

  • Risultato: pagina completa da visualizzare su

browser

  • NB: componenti server-side possono essere scritte

in qualunque linguaggio

  • Vantaggi : pagine browser-independent perchè

tutta la computazione è fatta su server

  • Svantaggi : girano solo su web server Microsoft,

compilazione run-time è pesante

Laboratorio di Servizi Web - servlet - Ardissono 21

Java servlets

Tecnologia server-side offerta in ambiente Java

  • programma java che gestisce HTTP requests e

restituisce HTTP responses

  • estende funzionalità di Web server permettendo

di gestire logica di applicazione come programma.

Es: permette di gestire sessioni utente che

includono più HTTP requests e responses

  • gestisce ogni HTTP request in thread separato

⇒ parallelismo, ma in un’applicazione si può

mantenere copia unica di programma, i dati

generali di applicazione, ...

Laboratorio di Servizi Web - servlet - Ardissono 22

Java Server Pages (JSP)

Tecnologia basata su template , simile a Microsoft

Active Server Pages, ma basata su compilazione

di pagine (vs. interpretazione)

  • Java Server Page (file .jsp) include codice HTML ,

codice Java e componenti JavaBean

  • permette invocazione di componenti server-side
  • risultati di invocazione inseriti in pagina per

visualizzazione su browser

  • compilazione di pagina JSP genera una servlet ⇒

Java Servlets è la tecnologia sottostante, ma JSP

facilitano creazione di interfacce utente

Laboratorio di Servizi Web - servlet - Ardissono 23

Applicazioni Web-based

Requisiti

  • Modello di programmazione ed API che

specifica come sviluppare applicazione

  • Server-side runtime support : per gestire

comunicazione in rete ed eseguire programmi su

server

  • Supporto al deployment : strumenti per

configurare componenti di applicazioni, istallare

applicazioni su web server, ...

Laboratorio di Servizi Web - servlet - Ardissono 24

Applicazioni Web-based in ambiente java

In ambiente java (J2EE)

  • Java servlets e JSP : strumenti base per sviluppare

applicazioni ( web components )

  • applicazione web composta di servlets, JSP,

librerie di classi, risorse statiche (HTML, XML,

…), immagini, ...

  • Web Container : java runtime che ospita ed

esegue applicazioni web (crea, inizializza ed

invoca servlet e JSP in seguito a HTTP requests)

  • struttura di package standard^ per applicazioni e

file XML descrittori di property di applicazioni

Laboratorio di Servizi Web - servlet - Ardissono 25

Struttura di applicazione web-based java

Java servletJava servlet Java servletJava servlet

JSPJSP

Java classes, archives

Java classes, archives

Java classes, archives

Deployment descriptor (web.xml)

Applicazione web

Java servletJava servlet Java servletJava servlet

JSPJSP

Java classes, archives

Java classes, archives

Java classes, archives

Deployment descriptor (web.xml)

Applicazione web

Web Container

sweb5 (^) sweb

Laboratorio di Servizi Web - servlet - Ardissono 26

Servlet Java - I

  • Programmi che girano in processo di web server e

agicono come livello intermedio tra

  • richieste provenienti da HTTP clients (web browser, ...)
  • database e altre sorgenti informative gestite da server
  • servlet caricate in processo web server da Web

Container, che interagisce con servlet via Java

Servlet API

  • esecuzione dura nel tempo : non limitata a gestione

di HTTP request e generazione di HTTP response

Laboratorio di Servizi Web - servlet - Ardissono 27

Servlet Java - II

  • per ogni HTTP request inviata a web server

ospitante

  • leggono dati inviati da utente (es. form HTML)
  • estraggono altre info specificate in request (cookies, host name del client, …)
  • generano risultato e lo formattano in documento
  • settano parametri di HTTP response
  • inviano response a web server, che spedisce a client
  • per generare risposta usano
  • parametri passati in HTTP request
  • variabili locali e stato della computazione Laboratorio di Servizi Web - servlet - Ardissono 28

Servlet Java - III

  • Essendo programmi duraturi
    • permettono a web server di gestire interazioni complesse con client (non solo risposte a richieste, ma anche sequenze di scambi con gestione di stato dell’interazione)
    • permettono di integrare logica di applicazione in processo di scambio di HTTP requests e responses
  • Scritte in Java ⇒ indipendenti da piattaforma su

cui devono girare (portabilità)

Laboratorio di Servizi Web - servlet - Ardissono 29

Invocazione di applicazione basata su servlet

Web container

Web server

Web browser

Servlet/JSP instances

Risorse statiche

Applicazione web

HTTP request

HTTP response

Risorse statiche

Laboratorio di Servizi Web - servlet - Ardissono 30

Web Container

  • java runtime che ospita ed esegue applicazioni

web (crea, inizializza ed invoca servlet e JSP)

  • Tipi di web container
    • Web container incluso in web server : web server scritti in Java includono web container. Es: Jakarta Tomcat (di Apache)
    • Web Container in J2EE application server : application server che gestiscono Enterprise Java Beans includono anche web server
    • Web container in runtime separato : web servers come Apache e Microsoft IIS necessitano di runtime separato per gestire servlets, più plug-in che gestisce comunicazione tra web server e web container

Laboratorio di Servizi Web - servlet - Ardissono 37

FORM HTML - III

  • Textarea: permette di specificare aree di testo di dimensioni prefissate - Es:
  • checkbox : permette di cliccare su bottoncini on/off
  • password : nasconde i caratteri in input (asterischi)
  • radio : radio button
  • submit : bottone di submit, che fa inviare contenuto della form a web server (effettua HTTP request) - **Es: **
  • hidden : permette di inserire testo nascosto (nel caso vogliamo passare parametri che utente non vede)

Laboratorio di Servizi Web - servlet - Ardissono 38

FORM HTML - IV

Laboratorio di Servizi Web - servlet - Ardissono 39

FORM HTML - V

quando usate le form, attenzione ai valori di default:

l’utente potrebbe lasciare campi della form vuoti

e voi dovete garantire che il valore inviato

all’applicazione sia uno di quelli previsti

dall’applicazione stessa (altrimenti non lo saprà

gestire)

nei casi di menu, radio button, etc., è consigliabile

inserire sempre valore nullo specificato da voi (così

applicazione può essere programmata per trattarlo)

Laboratorio di Servizi Web - servlet - Ardissono 40

Java Servlet API

  • package javax.servlet : include classi e interfacce

di gestione di servlet indipendenti da protocollo di

comunicazione

  • package javax.servlet.http : include classi e

interfacce specifiche per uso di servlet con

protocollo HTTP

  • alcune classi e interfacce di javax.servlet.http

estendono le rispettive di javax.servlet

Laboratorio di Servizi Web - servlet - Ardissono 41

Porzione di gerarchia delle classi - servlet

interface javax.servlet.Servlet

•init(ServletConfig c) •service(ServletRequest req, ServleResponse res) •destroy(), … altri metodi ...

abstract class javax.servlet.GenericServlet implements Servlet, ServletConfig, Serializable offre implementazione di interfaccia Servlet indipendente da protocollo di comunicazione (HTTP, …)

abstract class javax.servlet.http.HttpServlet extends GenericServlet implements Serializable offre implementazione di interfaccia Servlet specifica per HTTP

interface javax.servlet.ServletConfig

mantiene dati di configurazione di servlet

Laboratorio di Servizi Web - servlet - Ardissono 42

javax.Servlet - Interface ServletConfig

specifica metodi per accedere a parametri di

configurazione di servlet (es. database driver, costanti

globali della servlet, …)

  • public String getInitParameter(String name)
    • restituisce valore di parametro di inizializzazione “name”, se esiste. Null altrimenti
  • public Enumeration getInitParameterNames()
    • restituisce enumerazione di nomi dei parametri di inizializzazione della servlet
  • public String getServletName()
  • ...

Laboratorio di Servizi Web - servlet - Ardissono 43

javax.Servlet - Interface Servlet - I

specifica metodi di gestione della servlet

  • public void init(ServletConfig c) throws ServletException
    • invocato da Web Container dopo aver istanziato servlet
    • inizializza variabili di servlet (prima di accettare HTTP requests). Es: leggere dati di configurazione, registrare database driver, …
  • public void service(ServletRequest req,

ServletResponse res) throws ServletException, IOException

  • invocato da Web Container ad ogni HTTP request (oggetto req contiene dati di richiesta, res contiene risposta)
  • public void destroy()
  • invocato da Web Container prima di rimuovere istanza di servlet (es: prima di shut down di web server, o se serve spazio di memoria, …) Laboratorio di Servizi Web - servlet - Ardissono 44

javax.Servlet - Interface Servlet - II

Offre anche metodi per accedere a informazioni generiche

su servlet e a oggetto ServletConfig

(questi metodi sono usati nel codice delle classi da noi

implementate che estendono le servlet)

  • ServletConfig getServletConfig()
    • restituisce oggetto ServletConfig di una servlet
  • String getServletInfo()
    • restituisce informazioni generali su servlet (autore, data di creazione, ...)

Laboratorio di Servizi Web - servlet - Ardissono 45

javax.Servlet.http - abstract class HttpServlet - I

  • public void service(ServletRequest req,

ServleResponse res)

  • implementa metodo service di GenericServlet. Fa cast di ServletRequest/ServletResponse ad HttpServiceRequest/HttpServiceResponse e invoca metodo service protected.
  • Non ridefinire!!
  • protected void service(HttpServletRequest req,

HttpServleResponse res)

  • invoca req.getMethod per sapere se è GET, POST, HEAD, … e delega gestione a metodo doXXX specifico….
  • Non ridefinire!!!

Laboratorio di Servizi Web - servlet - Ardissono 46

javax.Servlet.http - abstract class HttpServlet - II

  • protected void doGet(HttpServletRequest req,

HttpServleResponse res)

  • gestisce HTTP request di tipo GET. Ridefinibile
  • protected void doPost(HttpServletRequest req,

HttpServleResponse res)

  • gestisce HTTP request di tipo POST. Ridefinibile
  • protected void doHead(HttpServletRequest req,

HttpServleResponse res)

  • gestisce HTTP request di tipo HEAD. Ridefinibile
  • ...

Laboratorio di Servizi Web - servlet - Ardissono 47

Invocazione di servlet

Web container

Web server

Web browser

POST HTTP HttpServlet

Invoca metodo pubblico service di Servlet service(req, res)

service (protected) fa cast di parametri e invoca doXXX(req, res)

doXXX gestisce richiesta

Ridefinendo metodi doXXX integriamo logica di applicazione in funzionalità offerte da web server

NB: metodo service eseguito in thread di processo principalegestione parallela di richieste, ma leggera

Laboratorio di Servizi Web - servlet - Ardissono 48

Porzione di gerarchia delle classi - Request

Interface javax.servlet.ServletRequest offre

  • metodi per accedere a connessione client
  • input stream associata a connessione supporta lettura di dati da input stream

interface javax.servlet.http.HttpServletRequest

offre implementazione di ServletRequest specifica per HTTP

InputStream ServiceInputStream

Laboratorio di Servizi Web - servlet - Ardissono 55

Altro esempio

Estendiamo applicazione swebi, che

inizialmente faceva solo il saluto,

aggiungendo un altro tipo di servizio:

richiesta informazioni personali

⇒⇒⇒⇒^ Implementiamo una nuova servlet

(Informazioni.java), in aggiunta ad

Hello.java, che invocheremo da una

pagina HTML

Laboratorio di Servizi Web - servlet - Ardissono 56

Nota bene

  • NB: anche se le due servlet sono parte della

stessa applicazione, non comunicano tra loro

  • In generale, le servlet di un’applicazione

dovrebbero cooperare e bisognerebbe definire

applicazioni diverse, se si offrono servizi

indipendenti

  • Tuttavia, ciascun gruppo di laboratorio

corrisponde, per questioni di configurazione

del web server, ad una diversa applicazione

⇒⇒⇒⇒ usiamo applicazione per sviluppare tutte le

servlet che vogliamo (indipendentemente dal

fatto che c’entrino l’una con l’altra …)

Laboratorio di Servizi Web - servlet - Ardissono 57

Gestione informazioni personali

  • /usr/home/studenti/labgroup/labsweb/swebi/
    • file HTML : richiesta.html

– WEB-INF

  • classes
    • application » servlets: application.servlets.Informazioni.java » other: nessuna classe di utilità
  • web.xml
  • src (albero dei sorgenti da compilare)

Laboratorio di Servizi Web - servlet - Ardissono 58

swebi - web.xml - preambolo

**Web Application sweb40 descrizione dell'applicazione... **

….

DTD di web.xml Descrizione applicazione web

Laboratorio di Servizi Web - servlet - Ardissono 59

swebi - web.xml - context parameters

**

contextPar Questo parametro e’ generale di applicazione ... **

Parametri di inizializzazione usati in tutta l’applicazione web sono memorizzati nel contesto di applicazione

Laboratorio di Servizi Web - servlet - Ardissono 60

swebi - web.xml - descrizione servlet

info

** Servlet che fornisce informazioni personali **

application.servlets.Informazioni

** saluto CIAO!! **

Parametri di inizializzazione di servlet info

Descrizione di servlet gestita da web container

Alias per invocazione servlet

Nome della classe servlet

Laboratorio di Servizi Web - servlet - Ardissono 61

swebi - web-xml - ultima parte

** DB-URL

jdbc:idb:/usr/home/studenti/labgroup/labsweb/sweb40/localDB/properties.prp

5

…… definizione di altra servlet ….

…... **

Specifico che servlet deve essere caricata appena web server viene lanciato

Laboratorio di Servizi Web - servlet - Ardissono 62

Pagina web: richiesta.html - I

** RICHIESTA INFORMAZIONI

**

** Richiesta di informazioni

…..**

NB: posso invocare la servlet con nome di classe o con alias (alias più robusto e flessibile)

Laboratorio di Servizi Web - servlet - Ardissono 63

Pagina web: richiesta.html - II

**

Login:

Password:

...**

Laboratorio di Servizi Web - servlet - Ardissono 64

Pagina web: richiesta.html - III

** Tipo di informazioni:

**

Laboratorio di Servizi Web - servlet - Ardissono 65

Servlet Informazioni.java - I

package application.servlets; import javax.servlet.; import javax.servlet.http.; import java.io.; import java.util.; import java.sql.; public class Informazioni extends HttpServlet { String cheers; String url; Connection con; public Informazioni() { cheers = ""; url = “”; con = null; }*

Costruttore classe (usato da Web Container per istanziare la servlet)

Laboratorio di Servizi Web - servlet - Ardissono 66

Servlet Informazioni.java - II

public void init(ServletConfig config) throws ServletException {

super.init(config);

cheers = config.getInitParameter("saluto"); url = config.getInitParameter("DB-URL"); try { Class.forName("org.enhydra.instantdb.jdbc.idbDriver"); } catch (ClassNotFoundException e) { System.err.println(e); throw new ServletException(e);} }

Prima di istruzioni di inizializzazione specifiche eseguo metodo init di base!!

Chiedo a ServletConfig object i valori dei parametri di inizializzazione di servlet

Carico Driver JDBC e catturo eccezioni forzando ServletException...

Laboratorio di Servizi Web - servlet - Ardissono 73

Deployment di applicazione - build

  • ANT usa file di build passato come parametro, che

specifica operazioni di deployment (task eseguibili)

  • vd alias definito in catEnv.sh (e file ant.bat)
    • alias ant '$JWSDP_HOME/jakarta-ant-1.5.1/bin/ant - buildfile build_unix.xml’
  • ant install: task di istallazione di applicazione

(rinnova directory, compila, istalla)

  • ant remove: rimuove istallazione di applicazione da

web container

Laboratorio di Servizi Web - servlet - Ardissono 74

build_unix.xml - I

  • File di build da usare per deployment delle vostre

applicazioni in ambiente unix (build_win.xml opera

in ambiente windows)

  • Sulla pagina del corso è accessibile la nuova versione

del file, che include uso di JAXB per generare classi

java

  • Vediamo alcune parti del file di build: definizione di

properties (variabili), di task, esecuzione task, ...

Laboratorio di Servizi Web - servlet - Ardissono 75

build_unix.xml - II

**

…...**

Definizione properties usate come variabili nel resto del file

Laboratorio di Servizi Web - servlet - Ardissono 76

build_unix.xml - II

**

**

**

**

**

**

Login e password per istallare applicazioni in web container tomcat

URL per connettersi a tomcat durante istallazione applicaz

Carico librerie JWSDP da classpath

Laboratorio di Servizi Web - servlet - Ardissono 77

build_unix.xml - III

**

**

** **

**

**

Definizione task di ant di base

Task di invocazione di codice esterno (jaxb)

Rimozione directory applicaz in area di deployment Laboratorio di Servizi Web - servlet - Ardissono 78

build_unix.xml - IV

**

**

**

**

**

**

Creazione directory di build: richiama init task...

Ant install ...

init prepare

build install

Laboratorio di Servizi Web - servlet - Ardissono 79

build_unix.xml - V

**….

**

Ant remove ...

Laboratorio di Servizi Web - servlet - Ardissono 80

build_unix.xml - VI

**

**

Clean

build

Prepare

bindXMLSchema

Laboratorio di Servizi Web - servlet - Ardissono 81

build_unix.xml - VII

**

**

Invoca xjc per generare classi da XML schema