Come abbiamo visto nel paragrafo precedente, possiamo creare le nostre pagine Web e renderle disponibile all'interno dell'Application server. Ma questo è solo l'inizio, cercheremo adesso di sfruttare le potenzialità di una Web application.
Il primo passo sarà quello di inserire nel nostro sito Web delle pagine dinamiche. Supponiamo, ad esempio, di voler chiedere al visitatore il proprio nome nella home page e di utilizzarlo per rivolgersi a lui in modo più amichevole nelle pagine interne del sito. Con il semplice utilizzo di pagine HTML statiche non sarebbe possibile, introduciamo quindi le pagine dinamiche JSP.
Inseriamo un semplice modulo nella home page (index.html):
<html>
<head>
<title>Form</title>
</head>
<body>
<div style="text-align:center">
<form name="Login" action="index.jsp">
Nome: <input name="name" type="text" /><br />
<input id="submit" type="submit" value="Enter" />
</form>
</div>
</body>
</html>
Tramite il form il visitatore inserisce il proprio nome dalla home page. Quando l'utente clicca sul bottone Enter, avviene il submit del form e poiché nella action si trova la stringa "index.jsp", l'Application server richiama la pagina index.jsp per essere visualizzata. La pagina index.jsp è così composta:
<html>
<head>
<title>Jsp</title>
</head>
<body>
<div style="text-align:center">
Welcome <%=request.getParameter("name")%>
</div>
</body>
</html>
Il punto più importante è la presenza del codice <%=request.getParameter("name")%>
. I tag <% %>
indicano che si sta inserendo del codice Java all'interno della pagina Jsp.
Quando il server incontra questi tag, prima di visualizzare la pagina interpreta questo codice e ne visualizza il risultato. In questo caso il server recupera dalla request il valore del parametro "name". Questo, poiché stiamo arrivando dal submit del form "Login" della pagina precedente, corrisponde alla input box del form dove l'utente ha inserito il proprio nome. Quindi all'atto della visualizzazione della pagina, supponendo che l'utente abbia scritto "Pippo" nel modulo, la stringa
Welcome <%=request.getParameter("name")%>
viene sostituita dalla stringa
Welcome Pippo
e così visualizzata. In pratica il server prende la pagina JSP, interpreta il codice in essa contenuto, ottiene una semplice pagina HTML e la invia al browser per essere visualizzata.
In questo modo possiamo ottenere delle pagine dinamiche il cui contenuto vari a seconda di particolari condizioni. Ad esempio potrei decidere di visualizzare informazioni differenti a seconda di chi si connette al sito. Supponiamo di avere 3 sezioni di news da visualizzare e di voler far scegliere all'utente quale vuole categoria vuole aprire: politica, finanza e sport.
La pagina iniziale (index.html) sarà simile a quella di poco fa:
<html>
<head>
<title>Titolo</title>
</head>
<body>
<div style="text-align:center">
<form name="Login" action="news.jsp">
Categoria: <input name="categoria" type="text" /><br />
<input id="Submit" type="submit" value="Show" />
</form>
</div>
</body>
</html>
Mentre andiamo a vedere come realizzare la selezione delle informazioni da visualizzare nella pagina news.jsp (che come vedete è nel campo action del form):
<html>
<head>
<title>Titolo</title>
</head>
<body>
<%
if (request.getParameter("categoria").equals("politica")) {
%>
<table style="width:200px">
<tr><td style="text-align:center">Prima Sezione - POLITICA</td></tr>
</table>
<%
}
else if (request.getParameter("categoria").equals("finanza")) {
%>
<table style="width:200px">
<tr><td style="text-align:center">Seconda Sezione - FINANZA</td></tr>
</table>
<%
}
else if (request.getParameter("categoria").equals("sport")) {
%>
<table style="width:200px">
<tr><td style="text-align:center">Terza Sezione - SPORT</td></tr>
</table>
<%
}
%>
</body>
</html>
Anche in questo caso abbiamo inserito, ed evidenziato in rosso, del codice Java all'interno dell'HTML della pagina Jsp, codice che ci permette di controllare il parametro "categoria" inserito dall'utente nel form della pagina precedente. Se l'utente ha digitato "politica" verrà mostrata solamente la sezione relativa alla politica, stessa cosa poi per "finanza" e "sport". Come potete vedere il codice utilizzato è normalissimo codice Java inserito tra i tag <% %>
.