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


Studio delle servlet (tpsi), Dispense di Sistemi di reti

inizializziamo la servlet, Passaggio dei parametri, Passaggio dei parametri con form, Servlet modulo, Collegamento al db

Tipologia: Dispense

2022/2023

In vendita dal 13/09/2023

carla-boscolo
carla-boscolo 🇮🇹

4.5

(13)

520 documenti

1 / 30

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
STUDIO DELLE SERVLET
CREAZIONE DEL PROGETTO 4
inizializziamo la servlet 7
Passaggio dei parametri 10
Passaggio dei parametri con form 12
Cosa sono 13
Descrizione 14
Teoria prof 15
Servlet modulo 16
Primi esercizi 17
Collegamento al db 17
1) Inserire una persona 17
2) Mostrare una persona dato l'id 21
3) Mostrare tutte le persone con lo stesso cognome 23
4) Dato un ID mostrare tutte le persone che hanno un ID uguale o inferiore. 25
PROVA DI VERIFICA 25
1. All’interno di una classe chiamata “GestioneDB” che si occupa di gestire il database
scrivere un metodo che connettendosi al database cancelli una canzone passando l’ID.
25
2. All’interno di una classe chiamata “GestioneDB” che si occupa di gestire il database
scrivere un metodo che connettendosi al database estrae tutte le canzoni di un dato
autore. 26
3. Scrivere una pagina form.html che prende in input l’id e lo invia alla servlet
“cancellaCanzone” per eliminare la canzone. 26
4. Data una Servlet chiamata cancellaCanzone all’interno del progetto scrivere il metodo
doPost che si occupa prelevare il dato inviato dal form e richiamare il metodo di
GestioneDB per cancellare la canzone. Salvare l’id della canzone cancellata come
variabile di sessione e fare un forward ad una pagina JSP tramite il request dispatcher .
27
La servlet è un componente software scritto in Java, gestito da un “cointainer” (Tomcat),
che produce contenuto web dinamico.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Anteprima parziale del testo

Scarica Studio delle servlet (tpsi) e più Dispense in PDF di Sistemi di reti solo su Docsity!

STUDIO DELLE SERVLET

CREAZIONE DEL PROGETTO 4

inizializziamo la servlet 7 Passaggio dei parametri 10 Passaggio dei parametri con form 12 Cosa sono 13 Descrizione 14 Teoria prof 15 Servlet modulo 16 Primi esercizi 17 Collegamento al db 17

  1. Inserire una persona 17
  2. Mostrare una persona dato l'id 21
  3. Mostrare tutte le persone con lo stesso cognome 23
  4. Dato un ID mostrare tutte le persone che hanno un ID uguale o inferiore. 25 PROVA DI VERIFICA 25
  1. All’interno di una classe chiamata “GestioneDB” che si occupa di gestire il database scrivere un metodo che connettendosi al database cancelli una canzone passando l’ID. 25
  2. All’interno di una classe chiamata “GestioneDB” che si occupa di gestire il database scrivere un metodo che connettendosi al database estrae tutte le canzoni di un dato autore. 26
  3. Scrivere una pagina form.html che prende in input l’id e lo invia alla servlet “cancellaCanzone” per eliminare la canzone. 26
  4. Data una Servlet chiamata cancellaCanzone all’interno del progetto scrivere il metodo doPost che si occupa prelevare il dato inviato dal form e richiamare il metodo di GestioneDB per cancellare la canzone. Salvare l’id della canzone cancellata come variabile di sessione e fare un forward ad una pagina JSP tramite il request dispatcher. 27 La servlet è un componente software scritto in Java, gestito da un “cointainer” (Tomcat), che produce contenuto web dinamico.

In caso di richieste da più client il web cointainer utilizza più thread, uno per ogni richiesta. Client richiede al server una pagina statica -> client rimanda subito, se invece è dinamica ● Manda richiesta applicazione d’aiuto web container (Tomcat). Contiene le servlet cioè classi java particolari che prendono la richiesta e la elaborano una risposta in formato html.Deployment descriptor (web xml) viene specificato quale servlet chiamare per ogni richiesta in html(mappa ogni richiesta ad uno specifico file html dinamico con la servlet che lo possiede). Il file web xml contiene classe abbinata alla servlet e una che indica url corrispondente. Una servlet è una estensione della classe base http servlet (che fornisce struttura base per ricevere richiesta http e fornire una risposta html, json, xml o stringa) Creare una classe che derivi da Https server -> servlet poi dobbiamo creare il deployment descriptor (web.xml) poi avviamo il web cointainer tomcat infine facciamo richiesta al file abc.html otteniamo una pagina html Classe servlet extend httpsServlet implemento metodo doGet() che ha 2 parametri httpServerRequest request e httpServerResponse response che è l’oggetto che utilizzeremo per realizzare file html.

CREAZIONE DEL PROGETTO

1 Creo EsempioTesto 2 cancello package 3 Aggiungo libreria tomcat servlet-api.jar 4 inserisco gli import 5 aggiungo extend HttpServlet

6 togliere main aggiungere metodo pubblico doGet() con 2 parametri 7 aggiungiamo le eccezioni IOException e ServletException 8 imposta tipo file che andremo a scrivere che è html poi scriviamo un PrintWriter corrispondente al response con getWriter. Ora scrivamo il file html con pritln. 9 Spostiamo il file EsempioTesto.java cancelliamo la cartella relativa al package 10 built la classe 11 creo file xml -> web.xml (deployment descriptor)

16 avviamo tomcat

inizializziamo la servlet

il codice inizializzazione viene inserito nel metodo void init(ServletConfig config) ereditato dalla classe GenericServlet invocato dal caricamento della servlet in memoria. Si può usare anche il file ResourceBundle. Noi usiamo file web.xml dove dobbiamo aggiungere il nome e valore

tag init-param nome e valore param e sotto servlet mapping “Saluto” si riferisce a param-name e stamperà param-value aggiungo nel doGet la stringa saluto quindi file web.xml

Passaggio dei parametri

Reques t -> gestisce dati da inviati al client Response -> gestisce dati da inviare al client

getParameter restituisce valore del parametro ● getParameterNames restituisce nomi dei parametri ● getParameterValues restituisce array con valori dei parametri Preparo per prendere nome e cognome dentro doGet richiamo getParameter()

Ha chiamto abc.html

Cosa sono

In informatica, nell'ambito della programmazione Web, i servlet sono oggetti scritti in linguaggio Java che operano all'interno di un server web (es. Tomcat, Jetty) oppure un server per applicazioni (es. WildFly, GlassFish) permettendo la creazione di applicazione web (elaborazione lato server).

Il nome deriva in contrapposizione alle Java applet, piccoli programmi scritti in linguaggio Java che si eseguono all'interno del browser dell'utente client (elaborazione lato client). L'uso più frequente delle servlet è la generazione di pagine web dinamiche a seconda dei parametri di richiesta inviati dal client browser dell'utente al server. Negli ultimi anni non viene eseguita la programmazione diretta delle servlet, ma si preferisce usare dei framework web che implementano la specifica servlet, oppure delle JavaServer Pages che vengono poi tradotte (compilate) in servlet a runtime.

Descrizione

I programmi che implementano le specifiche dei servlet possono girare all'interno di qualunque servlet container e non sono vincolati ad un particolare server. Lo standard delle servlet rientra all'interno di un vasto insieme di standard detto Java EE. Una servlet può avere molteplici funzionalità e può essere associata ad una o più risorse web. Per esempio per la realizzazione della parte di Controller nel pattern Model-View-Controller (MVC) in una architettura basata su Java si può ricorrere ad una servlet (es. Spring framework, Java Server Faces). Questa servlet, una volta invocata dal server, deciderà quale pagina visualizzare o quale parte dell'applicazione invocare. Un altro esempio potrebbe essere un meccanismo per il riconoscimento dell'utente (login): quando si digita un URL del tipo miosito/login.login viene invocata una servlet che verifica la correttezza delle credenziali di accesso inserite appoggiandosi ad un database e indirizza ad una pagina di conferma o di errore a seconda del risultato. Sotto quest'ottica una servlet è un programma che deve rispettare determinate regole e che processa in un determinato modo una richiesta HTTP. Nulla vieta che all'interno dello stesso server web possano girare più servlet associate a URL diversi, ognuna delle quali eseguirà operazioni diverse ed estenderà le funzionalità del server web.

Jsp

In informatica JavaServer Pages, di solito indicato con la sigla JSP (letto anche talvolta come Java Scripting Preprocessor), è una tecnologia di programmazione web in Java per lo sviluppo della logica di presentazione (tipicamente secondo il pattern MVC) di applicazioni web, fornendo contenuti dinamici in formato HTML o XML. Si basa su un insieme di speciali tag, all'interno di una pagina HTML, con cui possono essere invocate funzioni predefinite sotto forma di codice Java (JSTL) e/o funzioni JavaScript. In aggiunta, permette di creare librerie di nuovi tag che estendono l'insieme dei tag standard (JSP Custom Tag Library). Le

Servlet modulo

Un servlet è una classe java derivata dalla classe HttpServlet V Classe Java che rappresenta la risposta della servlet? httpServletResponse Seleziona l’affermazione errata Il deployment descriptor si chiama web.html Come vengono gestite l’interazione contemporanea con più richieste provenienti dai diversi client? Attivando più thread Scegli l’affermazione errata

La servlet è un’applicazione lato client La richiesta arriva alla servlet tramite un parametro, che è un oggetto HttpServletResponse Falso

Primi esercizi

Scrivere un'applicazione web con servlet e jsp che gestisca un elenco di persone. Ogni persona deve avere un nome , cognome e un ID che si auto incrementa. Il sito web deve permettere di:

Collegamento al db

GestioneDB.java public class GestioneDB { private String stringaConnessione; private String pass; private String user; public GestioneDB(String ip, String port, String nomeDB, String user, String pass){ this.pass=pass; this.user=user; //jdbc:mariadb://localhost:3306/DB?user=root stringaConnessione="jdbc:mariadb://"+ip+":"+port+"/"+nomeDB; } //query } MariaDB Connector / J viene utilizzato per connettere applicazioni sviluppate in Java a database MariaDB e MySQL utilizzando l'API JDBC standard. La libreria client è concessa in licenza LGPL

1) Inserire una persona

Index.html


GestioneDB connessioneDB = new GestioneDB("localhost","3306","dbtest","utente","password"); /* Questa parte cambia in base a quello che dovete fare*/ String nome = request.getParameter("nome"); String cognome = request.getParameter("cognome"); connessioneDB.Inserimento(nome, cognome); response.sendRedirect("index.html"); } } @Override public String getServletInfo() { return "Short description"; } } GestioneDB.java public void Inserimento(String nome, String cognome) { try { Class.forName("org.mariadb.jdbc.Driver"); } catch (ClassNotFoundException ex) { Logger.getLogger(GestioneDB.class.getName()).log(Level.SEVERE, null, ex); }

Il metodo getLogger () di una classe Logger utilizzava find o crea un

logger. Se esiste un logger con il nome passato, il metodo restituirà quel

logger altrimenti il metodo creerà un nuovo logger con quel nome e lo

restituirà.

getLogger (java.lang.String) : questo metodo viene utilizzato per trovare

o creare un logger con il nome passato come parametro. Creerà un

nuovo logger se il logger non esiste con il nome passato. Se un nuovo

logger viene creato con questo metodo, il suo livello di log verrà

configurato in base alla configurazione di LogManager e sarà

configurato per inviare anche l'output di registrazione ai gestori del suo

genitore. Verrà registrato nello spazio dei nomi globale di LogManager.

Connection connessione =null; try { connessione = DriverManager.getConnection(stringaConnessione,user,pass); /* Va modificata la sezione tra la dichiarazione e l'executeUpdate. In particolare dovete modificare la query e quindi i vari set dei? ricordando che il primo numero rappresenta l'indice del? */ String query = "INSERT INTO persona(nome, cognome) values(?, ?)"; PreparedStatement prepared = connessione.prepareStatement(query); Un oggetto che rappresenta un'istruzione SQL precompilata. Un'istruzione SQL viene precompilata e archiviata in un PreparedStatement oggetto. Questo oggetto può quindi essere utilizzato per eseguire in modo efficiente questa istruzione più volte. prepared.setString(1, nome); prepared.setString(2, cognome); prepared.executeUpdate();

executeUpdate() : Esegue l'istruzione SQL specificata, che può essere un'istruzione
INSERT, UPDATE o DELETE, oppure un'istruzione SQL che non restituisce nulla, ad
esempio un'istruzione SQL DDL. A partire dalla versione 3.0 del driver JDBC per
MicrosoftSQL Server, il metodo executeUpdate restituirà il numero corretto di righe
aggiornate in un'operazione MERGE.

} catch (SQLException ex) { Logger.getLogger(GestioneDB.class.getName()).log(Level.SEVERE, null, ex); } finally { if(connessione!=null){ try { connessione.close(); } catch (SQLException ex) { Logger.getLogger(GestioneDB.class.getName()).log(Level.SEVERE, null, ex); } } }