Sesión 2 - Construcción de aplicaciones web usando Java

Definiciones


Servlet

Un servlet es un programa que corre en un servidor con el objetivo de extender la funcionalidad del mismo, además, es capaz de manejar peticiones de los clientes. Se considera "la primera puerta que recibe la información a gestionar (peticiones)" Entre las principales ventajas de usarlos se encuentran:


  • Portabilidad entre plataformas y servidores.
  • Potencia.
  • Eficiencia.
  • Seguridad.
  • Elegancia.
  • Integración.
  • Expansibilidad y flexibilidad.
  • Comunidad grande de desarrolladores.
El ciclo de vida de un servlet es relativamente sencillo: se carga, se inicializa, se ejecuta y se destruye. Para esto usa los métodos init(), service() y destroy().


Ciclo de vida de un Servlet. Tomada de http://www.ntu.edu.sg/home/ehchua/programming/java/javaservlets.html

Ejemplo de uso:


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
    public void doGet(HttpServletRequest request, 
                      HttpServletResponse response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

HTTP Session


Una sesión es el mecanismo usado por los servlets para mantener el estado sobre las peticiones realizadas por un usuario. Para el uso adecuado de una sesión se debe, obtener una sesión para el usuario (usando un objeto HTTPSession) y almacenar u obtener datos de dicho objeto.

Para obtener una sesión desde un servlet se usa la línea:

HttpSession session = request.getSession();

Para almacenar y recuperar una sesión se usan las líneas:


HttpSession session.getSession();
ClaseX objeto_a_guardar = new ClaseX();
session.setAtribute("etiqueta", objeto_a_guardar);
objeto_a_guardar = (ClaseX)session.getAttribute("etiqueta");

Resultado de imagen para http session
Funcionamiento de HttpSession. Tomada de https://bca4thsem.blogspot.com/2017/06/what-is-httpsession.html

Java Server Pages (JSP)

Las JSP se basan en tecnología de servlets, estas páginas permiten agregar partes dinámicas a las páginas web usando tecnologías HTML y XML.

Ejemplo de página:

<%@ page errorPage="myerror.jsp" %>
<%@ page import="com.foo.bar" %>
<html>
<head>
<%! int serverInstanceVariable = 1;%><%! int localStackBasedVariable = 1;%>

Scriptlets

Permiten insertar código Java en el servlet, para esto los scriptlets se incrustan en las páginas JSP. Se pueden realizar de tres maneras:

<%= expresión%> Evaluadas e insertadas en la salida.
<% código %> Insertadas dentro del método service del servlet.
<%! código %> Se insertan en el cuerpo del servlet, fuera de los métodos.

Ejemplos de uso:

Expresiones:

Fecha Actual: <%= new java.util.Date() %>
En XML: <jsp:expression>Expresión Java</jsp:expression>

Código:

<% String queryData = request.getQueryString();
out.println(“Adjuntando GET data: " + queryData);
%>
En XML: <jsp:scriptlet>Código</jsp:scriptlet>

Declaraciones:

<%! private int accesos = 0; %>
En XML: <jsp:declaration>Código</jsp:declaration>

Directivas


Las directivas permiten la declaración de variables globales en JSPs. A continuación, se describirá de forma breve las directivas:

Page:

Permite definir los siguientes atributos (su uso es <%@ page atributo declaración %>):


  • import: importación de paquetes.
  • session: (session=true|false) define si se usarán o no sesiones.
  • info: define un script para ser recuperado en posteriormente.
  • errorPage: página JSP a procesar en caso de error.
  • isErrorPage: (isErrorPage=true|false) define su una página actúa o no como página de error.

Include:

Permite incluir ficheros (<%@ include file="url relativa" %>), ejemplo de uso:.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Tutorial EFIBS: JavaServer Pages (JSP)</TITLE>
<META NAME="author" CONTENT="webmaster@efibs.com">
<META NAME="keywords" CONTENT="...">
<META NAME="description" CONTENT="...">
<LINK REL=STYLESHEET HREF="Site-Styles.css“ TYPE="text/css">
</HEAD>
<BODY>
<%@ include file="/navbar.html" %>
</BODY>
</HTML>

Taglib

Importa bibliotecas de etiquetas (Tag Libraries). Su uso es: 

<%@ taglib uri="/tags/struts-html" prefix="html" %>

Referencias

    

     Solano, E. (2018). Servlets y JSPs. Curso Introducción al desarrollo de aplicaciones WEB - IC8016.

     Arias, J. (2008). Servlets. Retrieved from https://www.it.uc3m.es/labttlat/2007-08/material/servlets/

     JavaServer Pages. (2018, 12 de junio). Wikipedia, La enciclopedia libre. Fecha de consulta: 04:23, diciembre 10, 2018 desde https://es.wikipedia.org/w/index.php?title=JavaServer_Pages&oldid=108651823.



Comentarios

Entradas más populares de este blog

Sesión 6 - Javascript

Sesión 3 - Ejemplo de uso de servlets y JSP

Laboratorio 1 : Desarrollo práctico de una página WEB acerca de su vida personal