JTagua

Inicio » JSP/SERVLETS » Declaraciones » Tutorial de JSP (6) – Declaraciones.

Tutorial de JSP (6) – Declaraciones.

Licencia

Creative Commons License

Visitas:

  • 889.325 hits

Las declaraciones de variables o métodos se hacen en JSP en la forma

<%! declaración de variable o método; %>

Note el signo (!) de admiración que acompaña justo detrás del signo porcentaje (%), allí donde comienza del código JSP.

Estas variables o métodos así definidos serán globales y por tanto accesibles desde cualquier lugar de la página JSP. Hay que tener en cuenta que el servidor a través del motor JSP transforma la página JSP en un servlet, y éste es usado por múltiples peticiones, lo que provoca que este tipo de variables conserven su valor entre sucesivas llamadas o ejecuciones. Las declaraciones se ejecutan una única vez, en la primera llamada al servlet equivalente.

En el caso de una declación múltiple,

<%! variable1; [variable2;] … %>

También puede inicializarse las variables en el momento de la declaración, como por ejemplo:

<%! int contador = 0; %>

Los ocho tipos de datos primitivos incluidos en el lenguaje de programación Java que pueden declararse para una variable son: byte, short, int, long, float, double, boolean y char.

(Ver http://www.codexion.com/tutorialesjava/java/nutsandbolts/datatypes.html ).

También puede usarse esta otra sintaxis

Ejemplo1:

Queremos declarar y asignar valores a tres variables numéricas a través de declaraciones JSP para calcular finalmente el valor medio.

Iniciamos una nueva sesión con Netbeans IDE, abrimos un proyecto nuevo del tipo «Java Web» – «Web Application», le damos por nombre declaraciones1 y sustituimos el archivo index.jsp por el siguiente código:

<%-- 
    Document   : index
    Created on : 09-dic-2007, 20:16:33
    Author     : jtagua
--%>

<%@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>Ejemplo Declaraciones1</title>
    </head>
    <body>
        <%! double num1=2.2, num2=4.4, num3=6.0;%>
        <h2>
        <center>
        Los números a promediar son: <%=num1%>, <%=num2%> y <%=num3%><br><hr>
        <%! public double media(double n1,double n2,double n3){ return (n1+n2+n3)/3; } %>    
        Media = <%=media(num1,num2,num3)%>
        </center>
        </h2>
    </body>
</html>

En el ejemplo anterior, puede verse la declaración de las variables en la línea 17, la declaración del método media en la línea 21, la utilización de las variables en la línea 20 y finalmente la utilización de la media en la línea 22. En los dos últimos casos y para mostrar los valores tanto de las variables como de la media se han utilizado expresiones JSP. Ver Tutorial JSP(3) – Expresiones.

Si ahora ejecuta el programa (Ejecutar en el menú principal o F6) aparecerá en el navegador:

Consideraciones:

Sería muy instructivo para el que empieza, el ejercicio que supone alterar el orden de las declaraciones en relación a las instrucciones donde se utilizan (las expresiones) las variables. Por ejemplo, podría colocar todas las expresiones donde se utilizan las variables al principio de index.jsp y finalmente las declaraciones. Comprobará que contra todo pronóstico el programa funcionará igualmente. La razón de esto es que las declaraciones dentro de un fuente jsp, se evalúan primero y después el resto de las instrucciones.  El responsable de esto, es la forma en la que se construye el servlet asociado a la página jsp.

Sería igualmente interesante colocar varios puntos de interrupción del programa y «debugear» para ver el contenido de las variables mientras se ejecuta la página.

Se recomienda al lector que pruebe a separar (colocar un espacio en blanco) entre el carácter porcentaje y el signo de admiración para ver lo que ocurre. Y estando aquí, no sería mala idea que pruebe a eliminar el punto y coma con el que obligatoriamente tiene que terminar la declaración.

Ejemplo2:

Es este ejemplo trataremos de ver la importancia que tienen la declaraciones cuando definen variables. Ya ha quedado dicho que las variables así definidas son globales para el Servlet resultante de la página JSP. Esto quiere decir, entre otras cosas, que el servlet que atiende a la petición del cliente conserva los valores entre las distintas llamadas.

Iniciamos una nueva sesión con Netbeans IDE, abrimos un proyecto nuevo del tipo «Java Web» – «Web Application», le damos por nombre declaraciones2 y sustituimos el archivo index.jsp por el siguiente código:

<%-- 
    Document   : index
    Created on : 09-dic-2007, 20:16:33
    Author     : jtagua
--%>

<%@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>Ejemplo Declaraciones2</title>
    </head>
    <body>
        <h2><center>
        <%! private int Contador = 0; %>
        Número de accesos a la página desde que se cargó la primera vez: <%= ++Contador %>
        </center></h2>
    </body>
</html>

si ejecutamos ahora,

Aparecerá la «1» la primera vez que se carga la página. Si después de esto recarga la página una y otra vez comprobará que el número de accesos a la página se incrementará de uno en uno cada vez.

Justo en la línea 18 se usa una declaración. La admiración (!) se usa para indicar declaraciones de variables globales, es decir, variables persistentes de una llamada a otra del JSP; y es compartida por todas las llamadas a una página. La declaración se ejecutará la primera vez que se llame a la página, y se volverá a ejecutar cada vez que se recompile la página (o se rearranque el servidor); el efecto que tendrá esta declaración será un contador de visitas totales, que se incrementará cada vez que se visite por cualquier cliente. Por lo demás, la declaración es una declaración normal en Java; se pueden incluir tantas declaraciones como se quieran, no necesariamente al principio de la página.

Cuestiones a repasar/recordar/aprender:

Sintaxis de la Declaración de una variable o método.

Concepto de variable global dentro de un jsp.

Calificadores de acceso: public, private, protected. ( http://javabasico.osmosislatina.com/curso/java.htm )


Deja un comentario