Jun 10, 2 022 Tutorial JSP database- quarta parte Silvano Natalizi
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…