Post con tag jsp

JSP: gestire le eccezioni con la direttiva page

La direttiva page delle pagine JSP possiede un attributo, errorPage, che permette di specificare una pagina di errore da mostrare in caso avvenga un’eccezione non gestita.
La pagina di errore può settare a true l’attributo isErrorPage, in modo da ottenere l’oggetto implicito exception e ricavare la fonte dell’eccezione.

Continua >

Java EE 5: download di una pagina

Il progetto seguente ha lo scopo di mostrare come gestire il download di un file richiesto da un client.
Per adattarlo alle proprie esigenze, bisogna cambiare i link del file index.jsp e il path e nome dei file nel servlet.

Il flusso del programma è il seguente:





Al client, quando invieremo il file, indicheremo, mediante la risposta HTTP, il contenuto della risposta e la lunghezza del file che gli invieremo.
Da notare che il file non deve essere disponibile a chiunque ma solo agli utenti registrati. Per questo motivo i file non saranno presenti nella directory dell’applicazione ma risiederanno in una directory non accessibile dall’esterno.

Qui è possibile accedere al progetto Netbeans:
JeeDownload.tar.gz

Java EE 5: ottenere i valori multipli di un parametro

Quando sviluppiamo applicazioni web in Java utilizzando i servlet o le JSP, può essere necessario ottenere i valori multipli di un determinato parametro passato tramite la richiesta HTTP dal client.
Utilizzando un oggetto javax.servlet.http.HttpServletRequest, abbiamo due semplici metodi per ottenerli:

Map getParameterMap()
String[] getParameterValues(String name)

Il secondo metodo ritorna un array di valori (eventualmente di lunghezza 1) corrispondenti al nome del parametro dato.
Il primo metodo, invece, ritorna una mappa dove le chiavi sono di tipo String (il nome del parametro), mentre i valori sono array di String (i valori del relativo parametro).

Continua >

JSP: ottenere informazioni sugli header della richiesta HTTP

L’oggetto implicito request di tipo javax.servlet.http.HttpServletRequest, grazie ai metodi:

Enumeration getHeaderNames()
String getHeader(String name)

ci consente di ottenere le informazioni i valori degli header passati tramite la richiesta HTTP.
In particolare, il primo metodo ci fornisce una enumerazione contenete i nomi degli header. Il secondo metodo ci permette di ottenere il valore di un header a partire dal suo nome.

L’esempio che segue ci mostra come possiamo, molto semplicemente, stampare gli header:

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Request test</title>
    </head>

    <body>
        <%
            java.util.Enumeration headers = request.getHeaderNames();

            while(headers.hasMoreElements())
            {
                java.lang.String headerName = (String)headers.nextElement();
                out.print(headerName);
                out.print(" = ");
                out.print(request.getHeader(headerName));
                out.print("<br/>");
            }
        %>
    </body>

</html>

Utilizzare i cookie con le JSP

La classe javax.servlet.http.Cookie di Java EE 5 rappresenta, come dice il nome, un cookie e possiamo utilizzarla all’interno di pagine JSP o di Servlet.
In particolare, quando il client invia una richiesta al server, invia anche i cookie settati dal server nel tempo. Questi cookie sono accessibili utilizzando l’oggetto implicito request e il relativo metodo:

Cookie[] getCookies()

Quando il server ha intenzione di settare un cookie, lo crea e utilizza l’oggetto implicito response e il suo metodo:

void addCookie(Cookie cookie)

Continua >

Redirect con le JSP

In una pagina JSP è possibile utilizzare l’oggetto implicito response, dell’interfaccia javax.servlet.http.HttpServletResponse per spedire una risposta di redirect temporaneo al client.
Il metodo che ci consente questo è:

void sendRedirect(String location)
    throws IOException

Vediamo un semplice esempio:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Redirect Test</title>
    </head>
    <body>
        <form method="GET" action="">
            <input type="submit" value="Redirect"/>
            <input type="text" value="" name="txtSite"/>
        </form>

        <%
        java.lang.String site = null;

        if( (site = request.getParameter("txtSite")) != null)
        {
            response.sendRedirect(site);
        }
        %>
    </body>
</html>

In questo esempio, mostriamo un form all’utente per fargli selezionare il sito su cui essere ridirezionato.

Questa è la relativa sessione telnet:

anto@anto-net:~/desktop$ telnet localhost 8080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET /Redirect/?txtSite=http://www.google.it HTTP/1.1
Host: localhost

HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=9695CF87C22F5F98FEAFF352DE9AC865; Path=/Redirect
Location: http://www.google.it
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Mon, 10 May 2010 23:00:44 GMT

Connection closed by foreign host.

Si noti il codice HTTP 302 e il campo Location nella risposta del server.

Calcolatrice web con le JSP

Il seguente articolo mostra l’implementazione di una calcolatrice web utilizzando le JSP.
Gli elementi che lo compongono sono una pagina index.jsp che rappresenta la maschera web, un servlet servlet.CalculatorServlet e una classe middletier.Operation:

Continua >

JSP: generare una piccola pagina di informazioni di rete

L’esempio che verrà presentato ha come scopo il presentare al visitatore una pagina che mostra il suo IP, il suo hostname e la porta che sta utilizzando per comunicare.
Continua >