Java Web

¿Qué es una web dinamica?

Las páginas web dinámicas son aquellas en las que la información presentada se genera a partir de una petición del usuario de página.

Una página dinámica tiene asociada una Base de Datos desde la que se permite visualizar la información contenida en ella.

La ventaja de este tipo de página es que permite almacenar y hacer actualizaciones de la información contenida en la misma, así como también modificaciones dinámicas de la estructura y del diseño por parte de su propietario.

¿Qué es el modelo cliente-servidor?

Es un modelo de diseño de software en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta.

¿Qué es Java Servlet?

Es una clase en el lengiaje de programación Java, utilizada para ampliar las capacidades de un servidor. Los servlets pueden responder a cualquier tipo de solicitudes, estos son utilizados comúnmente para extender las aplicaciones alojadas por servidores web, de tal manera que pueden ser vistos como applets de java que se ejecutan en servidores en vez de navegadores web.

El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.

Ventajas y Desventajas de los Servlet

Ventajas

Es un lenguaje de propósito general que excede el mundo web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de un amanera prolija.

JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios.

Deventajas

JSP no posee una interfaz, ya que la interfaz web es limitada, la codificación de interfaces elaboradas lleva muchas líneas de código, y la mayoría debe hacerse usando scripts.

La mayor parte de la lógica de la aplicación se ejecuta en el servidor, por lo que se correo riesgo de sobrecargar al mismo.

Características de Java Servlet

Las páginas JavaServer a menudo sirven para el mismo propósito que lo programas implementados usando la interfaz Common Gateway Interface (CGI). Pero JSP ofrece varias ventajas en comparación con el CGI.

El rendimiento es significativamente mejor porque JSP permite incrustar elementos dinámicos en páginas HTML en lugar de tener archivos CGI separados.

Los JSP siempre se compilan antes de que el servidor los procese, a diferencia de CGI/Perl, que requiere que el servidor cargue intérprete y el script de destino cada vez se solicita la página.

Ciclo de vida de Java Servlet

1. Inicializar el servet

Cuando un servidor carga un servlet, ejecuta el método init del servlet. El proceso de inicialización debe completarse antes de poder manejar peticiones de los clientes, y antes de que el servlet sea destruido. Aunque muchos servlets se ejecutan en servidores muti-thread, los servlets no tienen problemas de concurrencia durante su inicialización.

2. Interactuar con los clientes

Después de la inicialización, el servlet puede dar servicio a las peticiones de los clientes. Estas peticiones serán atendidas por la misma instancia del servlet, por lo que hay que tener cuidado al acceder a variables compartidas, y aque podrían darse problemas de sincronización entre requerimientos simultáneos.

3. Destruir el servlet

Los servlets se ejecutan hasta que el servidor los destruye, por cierre del servidor o bien a petición del administrador del sistema. Cuando un servidor destruye un servlet, ejecuta el método destroy del propio servlet.

Estructura Básica


¿Qué es clase GenericServlet?

GenericServlet implementa las interfaces Servlet y puede extenderse directamente por un servlet, aunque es más común extender una subclase específica de protocolo como ServletConfigGenericServletHttpServlet.

GenericServlet facilita la escritura de servlets. Proporciona versiones simples de los métodos de ciclo de vida initdestroyy de los métodos en la ServletConfiginterfaz. GenericServlet También implementa el logmétodo, declarado en la ServletContextinterfaz.

Métodos Princípales de Java Servlet
  • service (Obligatorio): Este método es la parte medular de todo Servlet ya que dentro de él se incluyen las tareas principales de ejecución.
  • init (Opcional) : Es un método ejecutado antes del método service, su labor principal es adquirir/inicializar algún recurso que será empleado por service, estos recursos típicamente son conexiones hacia Bases de Datos.
  • destroy (Opcional) : Ejecutado una vez que ha terminado el método service, su labor es liberar los recursos utilizados/adquiridos en el proceso de ejecución los cuales generalmente son aquellos reservados por init.
El Método service()

En la declaración se puede notar que el denominado método service toma dos parámetros (Objetos): uno llamado request del tipo HttpServletRequest y otro por nombre response del tipo HttpServletResponse, ambos representan el objeto de entrada y salida del Servlet respectivamente.

Lo anterior significa que dentro de estos Objetos reside la información con que será atendida la solicitud así como la información que será enviada de respuesta, por decirlo de otra manera, son estos dos objetos con los que juega todo Servlet, y por ende un JSP también.

A continuación se ilustra el Servlet llamado Saludos.java con la respectiva lógica en el método service:

import javax.servlet.*;
import javax.servlet.http.*;

public class Saludos extends HttpServlet
  { 
      public void service(HttpServletRequest request, 
                  HttpServletResponse response)
    throws IOException 
    { 
    response.setContentType("text/html");
    
    PrintWriter out = response.getWriter();
    out.println("<HTML>");
    out.println("<BODY>");
    out.println("Pagina Basica");
    out.println("</BODY>");
    out.println("</HTML>");
   }

}

La primer linea del método service invoca el método setContentType sobre el objeto response, en otras palabras, se esta indicando que la respuesta de este Servlet será en formato HTML. Posteriormente se indica que el objeto llamado out se formará del método getWriter del objeto response, en otros términos, todo valor asignado a out será enviado a la impresión del Servlet (llevada acabo por getWriter).

Al ejecutarse el Servlet anterior se produciría el mismo resultado del JSP presentado al inicio .

No hay comentarios:

Publicar un comentario

¿Que es un SCRUM?

Scrum es un marco de trabajo de procesos que ha sido usado para gestionar el desarrollo de productos complejos desde principios de los años...