Variables predefinidas y formularios

Existen ocho variables predefinidas en JSP, que son objetos ya establecidos los cuales no hay que instanciar:

  • request: permite mirar los parámetros de la petición (mediante getParameter), el tipo de petición (GET, POST), de un formulario previo, entre otras cosas. La diferencia entre el método GET o POST, es que en GET las variables del formulario aparecen en la barra de direcciones.
Ejemplo:
<!-- Formulario.html con método POST
-->

<html>
<body>
<form action="resultado.jsp" method="POST">
Nombre: <input type="text" name="nombre">
<br/>
Apellido: <input type="text" name="apellido" />
<input type="submit" value="Inscribirse" />
</form>
</body>
</html>


<%-- resultado.jsp
    Document   : index
    Created on : 12-ene-2015, 11:39:08
    Author     : Administrador
--%>

<html>
<body>
<h1>Datos</h1>
<ul>
<li><p><b>Nombre:</b>
   <%= request.getParameter("nombre")%>
</p></li>
<li><p><b>Apellido:</b>
   <%= request.getParameter("apellido")%>
</p></li>
</ul>
Tu ordenador se llama: <%= request.getRemoteHost() %>.
</body>
</html>

  • response: cuando se le pide una respuesta al Servidor y éste responde al cliente.
Ejemplo con un reloj actualizado en JSP:
<%-- 
    Document   : index
    Created on : 12-ene-2015, 11:39:08
    Author     : Administrador
--%>

<%@ page import="java.io.*,java.util.*" %>
<html>
<body>
<center>
<h2>Actualización automática de la página cada 5 segundos</h2>
<%
   response.setIntHeader("Refresh", 5);
   
   Calendar calendario = new GregorianCalendar();
   String am_pm;
   int hora = calendario.get(Calendar.HOUR);
   int minuto = calendario.get(Calendar.MINUTE);
   int segundo = calendario.get(Calendar.SECOND);
   if(calendario.get(Calendar.AM_PM) == 0)
      am_pm = "AM";
   else
      am_pm = "PM";
   String hora_actual: = hour+":"+ minute +":"+ second +" "+ am_pm;
   out.println("La hora actual es: " + hora_actual + "\n");
%>
</center>
</body>
</html>

  • out: indica una salida html en el navegador (out.println)

  • session: se utiliza para asignar un conjunto de datos a cada visitante.
Ejemplo:
<!-- Formulario.html con método POST
-->

<html>
<body>
<form action="resultado.jsp" method="POST">
Nombre: <input type="text" name="nombre">
<br/>
Apellido: <input type="text" name="apellido" />
<input type="submit" value="Inscribirse" />
</form>
</body>
</html>

<%-- resultado.jsp
    Document   : index
    Created on : 12-ene-2015, 11:39:08
    Author     : Administrador
--%>

<%
   String nombreusuario = request.getParameter( "nombre" );
   session.setAttribute( "elNombre", nombreusuario );
%>
<html>
<body>
<a href="siguientepagina.jsp">Continuar</A>
</body>
</html>

<%-- siguientepagina.jsp
    Document   : index
    Created on : 12-ene-2015, 11:39:08
    Author     : Administrador
--%>

<html>
<body>
Tu nombre es: <%= session.getAttribute( "elNombre" ) %>
</body>
</html>