Diferencia entre revisiones de «Usuario:ManuelRomero/jsp/introduccion/concepto»

De WikiEducator
Saltar a: navegación, buscar
(Sintaxis de jsp)
(Leyendo datos de la petición http)
Línea 154: Línea 154:
 
*Otra variable predefinida importante es '''''request''''' de la clase HttpServletRequest https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html
 
*Otra variable predefinida importante es '''''request''''' de la clase HttpServletRequest https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html
 
*Con este objeto ya predefinido, podemos recuperar cualquier información que la solicitud web contenga.
 
*Con este objeto ya predefinido, podemos recuperar cualquier información que la solicitud web contenga.
*Mirar el ejemplo siguiente
+
*Vamos a hacer un ejemplo que lea un número y nos diga si es positivo o negativo
<>
+
<source lang=java>
 +
 
 +
</source>

Revisión de 12:12 23 feb 2015


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.

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