Lezione programmazione database con java Servlet - quarta parte

Post on 13-Jun-2015

3.363 views 0 download

description

come programmare una servlet per gestire il crud di una tabella relazionale

Transcript of Lezione programmazione database con java Servlet - quarta parte

Apr 13, 2023

Tutorial JSP database-quarta parte

Silvano Natalizi

Obiettivo della lezione

L’obiettivo di questa lezione è quello di fare il CRUD con l’uso di una servlet che fa da controllore

pertanto implementiamo una servlet con le quattro operazioni del CRUD

per ciascuna delle quattro operazioni Create, Read, Update, Delete scriviamo un metodo nella servlet

inoltre associeremo a ciascuna azione l’opportuna pagina jsp.

Piano per realizzare questa centralizzazione del CRUD

Per ogni tabella implementiamo una distinta servlet con tutto il codice java centralizzato in un solo posto

Per ogni pagina web implementiamo una java server page alla quale la precedente servlet passa i dati

ad ogni link o form di una pagina web, che richieda l’intervento della servlet per eseguire una certa azione, forniamo un’opportuna variabile con un valore che rappresenta l’azione da eseguire

Quando la servlet è in esecuzione

Quando Tomcat manda in esecuzione la servlet necessaria a soddisfare le richieste del link o della form ricevuta, questa servlet esegue per prima cosa il metodo doGet() o doPost()

Dopo aver letto con request.getParameter() i parametri con i valori inviati dal browser, decidiamo quale metodo eseguire sulla base del valore dell’operazione ricevuto.

L’attuale procedura funziona così:

Dal menu’ iniziale, quando si clicca sulla parola calda “Gestisci i titoli” al server viene richiesto di eseguire la java server page IndiceTitolo.jsp

IndiceTitolo.jsp legge la tabella e crea la pagina web con l’indice e i link alle operazioni

Sostituiamo alla jsp una classe servlet

Dobbiamo sostituire alla jsp una opportuna servlet Questa servlet deve fare tutto quello che fanno le jsp

nella precedente release della procedura tutte le operazioni CRUD

In particolare all’inizio deve leggere la tabella ed inviare i dati ad una opportuna jsp che si occuperà solo di creare la pagina web con l’elenco delle righe ed i link alle operazioni.

Ristrutturazione del codice -1

Creiamo la cartella libri di webapps All’interno di essa la cartella WEB-INF Nella cartella WEB-INF creiamo la cartella classes e lib Creiamo il file web.xml vuoto Dentro lib copiamo il file mysql-connector-java-5.1.12-

bin.jar

Ristrutturazione del codice -2

Creiamo la classe GestisciTitolo.java vuota e salviamola dentro classes

Compiliamola e verifichiamo che GestisciTitolo.class sia nel package com.database.libri

Comando di compilazione

javac –d . GestisciTitolo.java

Con il precedente comando il file compilato GestisciTitolo.class viene automaticamente copiato dentro il package

Inoltre non c’è bisogno di creare le cartelle del package, perché vengono generate direttamente, la prima volta che viene eseguito tale comando.

Modifichiamo menu.html

Il pathname per eseguire la servlet GestisciTitolo sia /libri/titolo (è necessario il primo slash /)

dovremo mettere come valore dell’attributo href del link: href=“libri/titolo?azione=1”

Navigare nel menu.html

Per lanciare il menù, digitare l’indirizzo web :

localhost:8080/libri/menu.html

Ma non funziona ???!!!

Occorre il file web.xml !

Lo abbiamo già creato nella cartella web-inf, ma non basta!

Occorre aggiungere il minimo possibile di istruzioni:

Adesso facciamo corrispondere al pathname il nome fisico della classe

Lanciamo la prima opzione del menù

Se il programma java non estende HttpServlet non viene riconosciuto come servlet ed abbiamo l’errore 404 o 500

Pertanto dobbiamo sistemare il codice di GestioneTitolo.java

Primo tentativo

Tutto bene !

Ora codifichiamo il primo metodo “index” per leggere la tabella titolo e preparare i dati per la pagina elenco titoli.

Prima però sistemiamo una volta per tutte il collegamento con il database scrivendo una classe il cui scopo è proprio quello di collegarci al database.

Scriviamo la classe CollegamentoDatabase

Quindi cominciamo a scrivere GestioneTitolo.java - 1

GestioneTitolo.java - 2

GestioneTitolo.java - 3

GestioneTitolo.java - 4

Bene gira !!

Visto che gira, implementiamo la prima funzione, ossia quella index(), il cui scopo è quello di leggere tutte le righe della tabella titolo e di inviarle all’opportuna jsp per visualizzare l’interfaccia grafica.

il metodo index()

La java server page Index.jsp

collaudo

Ok! Siamo arrivati al termine del quarto giorno di lavoro

Che cosa abbiamo prodotto ? Abbiamo implementato solo la prima della quattro

operazioni fondamentali del CRUD. Tuttavia c’è una cosa buona:

abbiamo usato poco codice duplicato. Dobbiamo ancora implementare le altre operazioni, ma

la servlet è sempre quella! Non resta che aggiungere gli altri metodi.

The End

Continua…