Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire logica applicativa Servlet devono essere invocate attraverso richieste HTTP (get, post, …) Form HTML usate per invocare Servlet mediante POST –Permettono di invocare Servlet passandole dati acquisiti mentre utente compila form (nome, cognome, tipo di operazione che utente vuole eseguire, …) –POST deve essere effettuata mediante invocazione da FORM HTML perchè altrimenti non si riesce ad impacchettare i parametri nel body della richiesta
Laboratorio di Servizi Web - servlet - Ardissono 2 Architettura logica e flusso dati Web server POST HTTP Applicazione Web FORM HTML account operazione attori titoli nessuna op liliana SERVLET ….. if (operazione.equals(“attori”) { cerca nomi attori in DB} else if (operazione.equals(“titoli”) { cerca titoli film in DB} else {genera saluto ad account } ….. stampa pagina di output su PrintWriter chiudi PrintWriter Invio pagina Web generata a browser utente
Laboratorio di Servizi Web - servlet - Ardissono 3 Come si invoca una Servlet Se Servlet offre (solo) metodo doPost –Può essere solo invocata eseguendo POST (GET non ammessa perchè non gestita da Servlet) –Invocazione di POST effettuata mediante FORM HTML con eventuale specifica di valori di parametri –Metodo doPost di Servlet può eseguire porzioni di codice diverso a seconda del valore dei parametri della POST (if … then … else …) – attraverso una sola FORM si possono richiedere “servizi” diversi ad applicazione Web (nomi attori, titoli di film, nulla)
Laboratorio di Servizi Web - servlet - Ardissono 4 Come si invoca una Servlet Invocazione di Servlet attraverso GET HTTP normalmente fatta se non si devono passare parametri più semplice –NB: invocazione di Servlet mediante GET può essere fatta anche digitando URL di Servlet in browser (perchè non si devono impacchettare parametri in body di richiesta) NB: in generale una Servlet può offrire entrambi i metodi, nel qual caso, a seconda della richiesta HTTP, viene eseguito quello opportuno Vedremo più avanti quando serve avere entrambi i tipi di metodi implementati nella stessa Servlet