cerca
Tecnologie Web - Laboratorio 5
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Tecnologie Web - Laboratorio 5

Torna alla pagina di Tecnologie Web


 :: Laboratorio 5 ::

Esercizio 0

In questo esempio vediamo come sia possibile scrivere un semplice programma sia sotto forma di Servlet che sotto forma di Jsp. Questo serve per vedere che il risultato ottenuto è del tutto equivalente e che le Jsp sono più semplici sia per quanto riguarda la scrittura che per quanto riguarda il Deployment.

SERVLET:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MostraCheck extends HttpServlet {

  public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Checkbox multipli</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h3>L'elenco dei linguaggi di programmazione che conosci è:</h3>");
    String[] elencoLinguaggi = request.getParameterValues("linguaggioConosciuto");
    for(int i=0; i<elencoLinguaggi.length; i++) {
    	if(elencoLinguaggi[i].equals("HTML")) 
    		out.print("[HTML? non è un linguaggio di programmazione ma di markup!]");
    	else
    		out.print(elencoLinguaggi[i]);
    	out.println("<br />");
    }
    out.println("</body>");
    out.println("</html>");
  }
}

JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Checkbox multipli</title>
</head>

<body>
<h3>L'elenco dei linguaggi di programmazione che conosci è:</h3>

<%
String[] elencoLinguaggi = request.getParameterValues("linguaggioConosciuto");
for(int i=0; i<elencoLinguaggi.length; i++) {
    if(elencoLinguaggi[i].equals("HTML")) {
%>

HTML? non è un linguaggio di programmazione ma di markup!

<%  
    } 
    else {
%>      

<%=elencoLinguaggi[i] %>

<br />

<%
    }
}
%>

</body>
</html>

Nel caso della JSP è sufficiente caricare i file sul server nella stessa cartella, mentre se utilizziamo la Servlet dobbiamo aggiornare il file web.xml in quanto dobbiamo inserire i dati relativi alla Servlet e bisogna riavviare Tomcat.
Ovviamente nel file HTML varia il campo action in base alla scelta effettuata: avremo infatti un'estenzione .do nel caso della Servlet ed estensione .jsp nel caso della Jsp.

Esercizio 1

Scrivere il codice di una pagina JSP che legga da una form due numeri interi e produca come risultato la somma dei due numeri.

SOLUZIONE

File HTML:

<html>
<head>
 <title>Somma di Interi</title>
</head>
 <body>
  <h3>Inserisci due Numeri interi:</h3>
   <form action="somma.jsp" method="POST">
    Inserisci il primo numero
     <input type="textbox" name="n1"/><br />
    Inserisci il secondo numero
     <input type="textbox" name="n2"/><br />

<br />
    <input type="submit" value="somma!!">
   </form>
 </body>
</html>

File JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>la somma dei numeri</title></head>
  <body>
    La somma dei numeri che hai inserito è
    <%
    int numero1 = Integer.parseInt(request.getParameter("n1"));
    int numero2 = Integer.parseInt(request.getParameter("n2"));
    int ris= numero1 + numero2;
    %>
    <%= ris%>

  </body>
</html>

Esercizio 2

Scrivere una pagina JSP che contenga una form in cui si chiede all'utente che colore desideri per lo sfondo della pagina. Come action della form selezionare la pagina stessa. Per cambiare colore utilizzare in HTML: <body bgcolor="nomeColore">. Ricordare che i valori dei parametri passati dall'utente sono uno dei campi della variabile implicita request e che potete accedervi con il metodo String request.getParameter(String "nomeParametro").

SOLUZIONE

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Coloro Sfondo</title></head>

  <%
  String Colore = request.getParameter("coloreScelto");

  if(Colore == null) {
    Colore = "white";
  }
  %>

  <body bgcolor="<%= Colore%>">

  <b>Scegli il colore dello sfondo ! !</b>

  <form action="colore.jsp" method="POST">
    <input type="radio" name="coloreScelto" value="white">Bianco<br />
    <input type="radio" name="coloreScelto" value="red">Rosso<br />
    <input type="radio" name="coloreScelto" value="green">Verde<br />
    <input type="radio" name="coloreScelto" value="yellow">Giallo<br />
    <input type="radio" name="coloreScelto" value="pink" checked="checked">Rosa<br />

    <br />
    <input type="submit" value="Colora!!">
  </form>

  </body>
</html>

In questo esercizio il controllo IF iniziale serve perché la prima volta che la pagina viene caricata l'utente non ha ancora fatto nessuna scelta e quindi la stringa Colore vale NULL mostrando in output lo sfondo tutto nero, per evitare ciò poniamo lo sfondo bianco.

Esercizio 3

Scrivere il codice per una semplice form HTML che chieda all'utente di autenticarsi con username e password. Verificare se lo username e la password coincidono con quelli "giusti" (confrontateli con due stringhe a vostro piacimento). Se coincidono, visualizzare un messaggio di benvenuto, seguito da nome e cognome letto (es. Benvenuto Paolo Rossi); altrimenti viene visualizzato il messaggio “Username o password errati”.

SOLUZIONE

File HTML:

<html>
<head>
 <title>Autenticazione</title>
</head>
 <body>
  <h3>Inserimento dei dati</h3>
   <form action="aut.jsp" method="POST">
    Inserisci lo <i>user</i>
    <input type="textbox" name="user"/><br />

    Inserisci la <i>password</i>
    <input type="password" name="pw"/><br />

<br />
    <input type="submit" value="accedi">
   </form>
 </body>
</html>

File JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Autenticazione</title></head>
  <body>

  <%
   String user = request.getParameter("user");
   String pw = request.getParameter("pw");
    if (user.equals("denis") && pw.equals("te"))
     { 
     %>
     <h1>Benvenuto <b><%= user%></b></h1>
     <%
     }
      else {
      %>Username o Password sbagliati!
      <%}%>
  </body>
</html>

Torna alla pagina di Tecnologie Web