Your SlideShare is downloading. ×
0
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Lezione Servlet Natalizi
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Lezione Servlet Natalizi

672

Published on

come organizzare un progetto JavaEE con servlet

come organizzare un progetto JavaEE con servlet

Published in: Education
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
672
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Lezione Servlet Silvano Natalizi Mar 29, 2010
  • 2. Le form Html e le Servlet <ul><li>Le form HTML permettono l’input dei dati tramite le loro caselle di testo, ma non possono elaborare questa informazione per creare una risposta dinamica. </li></ul><ul><li>Per elaborare l’informazione possiamo usare una SERVLET </li></ul><ul><li>Questa è uno speciale programma java che può estrarre l’informazione da una request, ed inviare al cliente la risposta (response) desiderata </li></ul>
  • 3. Client - Server
  • 4. Che cosa fa il web server ?
  • 5. Che cosa fa il client ?
  • 6. Il client browser ottiene l’HTML e lo visualizza all’utente
  • 7. Il protocollo HTTP
  • 8. Html è parte della risposta http
  • 9. Che cosa c’è nella request ? GET
  • 10. Che cosa c’è nella Request: POST
  • 11. Anatomia di una request GET
  • 12. Anatomia di una richiesta POST
  • 13. Anatomia di una response HTTP
  • 14. Tutti i pezzi del puzzle
  • 15. Il server web ama servire pagine statiche
  • 16. Web server application
  • 17. Helper app
  • 18. Che cosa è un contenitore ?
  • 19. La servlet <ul><li>Una servlet non ha un metodo main </li></ul><ul><li>Essa è sotto il controllo di un’altra applicazione java </li></ul><ul><li>Questa applicazione java è un container </li></ul>
  • 20. Come è fatta una servlet
  • 21. Organizzare un progetto <ul><li>La servlet è salvata in src </li></ul><ul><li>La classe compilata è salvata nella cartella classes </li></ul><ul><li>Il descrittore web.xml nella cartella etc </li></ul>
  • 22. Organizzazione delle cartelle nel server
  • 23. Il comando di compilazione
  • 24. Web.xml
  • 25. Approfondimento Servlet <ul><li>Il package javax.servlet.http ha la classe HttpServlet che possiamo usare per scrivere la nostra Servlet. </li></ul><ul><li>Javax è un’estensione di java </li></ul><ul><li>HttpServlet è una classe astratta (abstract) </li></ul><ul><li>Dobbiamo pertanto definire la nostra servlet che eredita (extends) HttpServlet e la personalizza per i campi che abbiamo sulla nostra form </li></ul><ul><li>Ad esempio una form con i campi firstName e lastName </li></ul><ul><li>Questa form deve ora puntare alla nostra servlet </li></ul>
  • 26. Struttura predefinita della servlet <ul><li>Una servlet è una classe java con una struttura predefinita, nonché metodi ed attributi. </li></ul><ul><li>Questi sono mandati in esecuzione con una sequenza preordinata ogni qual volta c’è una request per la servlet </li></ul>
  • 27. Metodi della servlet <ul><li>Due dei più importanti metodi della servlet sono: </li></ul><ul><li>doGet() </li></ul><ul><li>doPost() </li></ul><ul><li>Questi metodi sono richiamati automaticamente dalla classe genitrice HttpServlet quando c’è rispettivamente una richiesta GET/POST </li></ul><ul><li>Per elaborare un contenuto personalizzato, occorre sovrascrivere i metodi doGet() e doPosto(). </li></ul>
  • 28. Sovrascrittura doGet <ul><li>Per sovrascrivere il metodo doGet, dobbiamo comprendere la sua dichiarazione (signature) </li></ul><ul><li>protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException </li></ul><ul><li>Ha un parametro HttpServletRequest chiamato req </li></ul><ul><li>Ha un parametro HttpServletResponse chiamatato resp </li></ul>
  • 29. Il parametro req <ul><li>req rappresenta la richiesta corrente da elaborare </li></ul><ul><li>L’input immesso nella form html è trasportato fino al server dalla richiesta </li></ul><ul><li>quello che ci occorre è un metodo per ricavare dal parametro req questa informazione. </li></ul><ul><li>Questo metodo c’è !! </li></ul><ul><li>Si chiama getParameter() </li></ul>
  • 30. getParameter() <ul><li>Il metodo getParameter() è dichiarato nella interface HttpServletRequest </li></ul><ul><li>Al metodo getParameter() passiamo il nome del campo di input che vogliamo ricavare </li></ul><ul><li>getParameter ci restituisce il valore che l’utente ha digitato per quella variabile </li></ul>
  • 31. Esempio getParameter <ul><li>Se vogliamo ottenere il valore digitato dall’utente nel campo di &lt;input&gt; firstName della form html: </li></ul><ul><li>String nome=req.getParameter(“firstName”); </li></ul><ul><li>il valore restituito dal metodo getParameter() è sempre di tipo String e contiene null se il campo cercato non esiste nella request </li></ul>
  • 32. Il parametro resp <ul><li>Ok abbiamo ottenuto firstName e lastName dalla request ed ora ? </li></ul><ul><li>L’azione successiva da intraprendereè creare una dinamica risponse, magari rinviando al cliente firstName e lastName. </li></ul><ul><li>A questo scopo già abbiamo un puntatore all’oggetto response: resp </li></ul><ul><li>resp è di tipo HttpServletResponse </li></ul>
  • 33. Il metodo getWriter() <ul><li>La classe HttpServletResponse ha un conveniente metodo chiamato getWriter che restituisce un oggetto di tipo java.io.PrintWriter: </li></ul><ul><li>PrintWriter out=resp.getWriter; </li></ul>
  • 34. Un oggetto di tipo PrintWriter <ul><li>Usiamo un oggetto di tipo PrintWriter per scrivere qualsiasi elemento HTML che vogliamo mostrare nel browser del client. </li></ul><ul><li>PrintWriter è simile a System.out. </li></ul><ul><li>In entrambi i casi si usa println() per scrivere una stringa di caratteri. Ma nel primo caso questa stringa è visualizzata sullo schermo del computer; nel caso invece del println di PrintWriter il contenuto scritto è trasmesso al cliente e visualizzato come HTML </li></ul>
  • 35. The End

×