Usuario:ManuelRomero/jsp/introduccion/concepto

De WikiEducator
< Usuario:ManuelRomero‎ | jsp‎ | introduccion
Revisión a fecha de 18:33 23 feb 2015; ManuelRomero (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar


Qué es un servlet

  • Un Servlet podría verse como una herramienta que nos permite generar HTML desde código Java. Una de las partes más tediosas de la programación de Servlets es precisamente la generación del código HTML.
  • Es decir dentro del programa hacemos que se genere la página web
public class HolaMundoServlet extends HttpServlet {
     /**
     * Servlet de ejemplo que procesa una petición GET
     * @param request
     * @param response
     * @throws ServletException
    */
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">");
        out.println("<html>");
        out.println("<head><title>Ejemplo Hola Mundo</title></head>");
        out.println("<body>");
        out.println("<h1>¡Hola Mundo!</h1>");
        out.println("</body></html>");
    }
}
  • En una web real, especialmente si queremos que tenga una apariencia razonablemente buena, tendremos que generar cantidades de HTML mucho mayores. Si hacemos esto desde un Servlet, será increíblemente tedioso.
  • La arquitectura Java en su plataforma Entreprice Edition Java EE tenemos una herramienta mucho más adecuada para generar este HTML, que es usar JSP.
  • En este caso como vamos a ver a continuación, vamos a tener una página HTML donde incrustramos códgio jsp', exactamente igual de como hacíamos con php.
  • El código jsp que vamos a introducir es usando lenguaje de programaicón java que ya conocemos.
  • El fichero que escribimos en jsp se va a convertir en un servlet con extensión .java que se seudocompila a un fichero .class
  • Al hacer el primer ejemplo lo comprobaremos

JspToClass.png

  • Aunque no hemos hablado de los servlet's, un jsp en realidad es una manera cómoda y fácil de escribir un servlet.
  • Cuando queremos escribir una página jsp, debemos generar un fichero con extensión jsp

Sintaxis de jsp

  • Vamos a ver cómo podemos incluir código java dentro de una página jsp
  • Podríamos afirmar que dentro de una página jsp podemos encontrar hasta 5 elementos de script
  1. comentarios
  2. directivas
  3. declaraciones
  4. expresiones
  5. scriptlets
Comentarios
  • Además de los típicos comentarios de java podemos introducir un comentario de tipo jsp
<%-- Comentario de página JSP --%>
expresiones
  • Una expresión denota un conjunto de operandos con operadores que son evaluados y de su evaluación se obtiene un valor
  • Para visualizar un valor usando expresines usaremos la siguiente sintaxis
<%= expresion %>
  • Por ejemplo, sabiendo que new java.util.Date() genera un valor que es la fecha actual, podemos hacer un programa que muestre la fecha actual de la siguiente manera
html> 
 <head> 
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
   <title>Hola mundo JSP</title> 
 </head> 
 <body> 
   <h1>Hola mundo JSP</h1> 
   <p>La fecha actual en el servidor es <%= new java.util.Date() %> </p> 
 </body> 
</html>


Icon activity.jpg

Actividad

Escribe un programa en jsp que muestre los valores devueltos por System.getProperty en las siguientes propiedades java.version, java.home, os.name, user.name, user.home, user.dir






Icon activity.jpg

Actividad

Copia, ejecuta e interpreta el siguiente código

 




scriptlests
  • Para escribir código php usaremos scriptlets.
  • Para ello escribiremos nuestro código entre <% aquí el código %>
  • Como ya hemos comentado el código que se escribe entre los símbolo <% %> se llama scriptlests.
declaraciones

Las variables así definidas son globales para el Servlet resultante de la página JSP.

  • Este aspecto es muy importante yq que el servlet que responde ante la solicitud del cliente conserva los valores entre las distintas llamadas.
  • Vamos a implementar un programa de adivinar un número. El servidor nos dirá si el número es mayor o menor

Escribiendo html

  • Para escribir codigo html usaremos un objeto o variable predefinido out
  • Este objeto es de la clase JspWriter https://docs.oracle.com/javaee/7/api/javax/servlet/jsp/JspWriter.html
  • Para generar código html, usaremos el método print o println como veremos en los ejemplos siguientes.
  • Ver la diferencia con usar System.out.println(...) que genera texto que irá al log del server
<HTML>
<BODY>
<%
    // Este scriptlet declara e inicializa "date"
    System.out.println( "Evaluando la variable fecha" );
    java.util.Date date = new java.util.Date();
%>
Hello!  The time is now
<%
    // Este scriptlet genera html
    out.println( String.valueOf( date ));
%>
</BODY>
</HTML>
<HTML>
<BODY>
<%
    // Este scriptlet declara e inicializa "date"
    System.out.println( "Evaluando la variable fecha" );
    java.util.Date date = new java.util.Date();
%>
Hello!  The time is now <%=date%>
%>
</BODY>
</HTML>
<HTML>
<BODY>
<%
    // Este scriptlet declara e inicializa "date"
    System.out.println( "Evaluando la variable fecha" );
    java.util.Date date = new java.util.Date();
    // Este scriptlet genera html
    out.println("Hello!  The time is now "+ String.valueOf( date ));
%>
</BODY>
</HTML>

Leyendo datos de la petición http