Java Web
* Que es una web dinámicas?
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 la página.
Contrariamente a lo que ocurre con las páginas estáticas, en las que su contenido se encuentra predeterminado, en las páginas dinámicas la información aparece inmediatamente después de una solicitud echa por el usuario.
Esto se hace posible porque una página dinámica tiene asociada una Base de Datos desde la que se permite visualizar la información contenida en ella.
Otra de las ventajas de éste tipo de páginas es que permiten almacenar y hacer actualizaciones de la información contenida en la misma, así cómo también modificaciones dinámicas de la estructura y del diseño por parte de su propietario.
Para la creación de este tipo de páginas, además de la existencia de una Base de Datos asociada a las mismas deberán utilizarse etiquetas HTML y algún lenguaje de programación que se ejecute “del lado del servidor”, es decir, que esté alojado en el mismo servidor en el que está alojada la página web.
Los lenguajes utilizados para la generación de este tipo de páginas son principalmente: Perl CGI, PHP , JSP y ASP .
Los manejadores de bases de datos que pueden trabajar con páginas dinámicas son principalmente: PostgresSQL, MySQL , Oracle y Microsoft SQL Server.
* Que es el modelo cliente-servidor?
TCP es un protocolo orientado a conexión. No hay relaciones maestro/esclavo. Las aplicaciones, sin embargo, utilizan un modelo cliente/servidor en las comunicaciones.
Un servidor es una aplicación que ofrece un servicio a usuarios de Internet; un cliente es el que pide ese servicio. Una aplicación consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas.
Los usuarios invocan la parte cliente de la aplicación, que construye una solicitud para ese servicio y se la envía al servidor de la aplicación que usa TCP/IP como transporte.
El servidor es un programa que recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una respuesta. Generalmente un servidor puede tratar múltiples peticiones(múltiples clientes) al mismo tiempo.
Figura: El modelo de aplicación cliente/servidor
Algunos servidores esperan las solicitudes en puertos bien conocidos de modo que sus clientes saben a que zócalo IP deben dirigir sus peticiones. El cliente emplea un puerto arbitrario para comunicarse. Los clientes que se quieren comunicar con un servidor que no usa un puerto bien conocido tienen otro mecanismo para saber a qué puerto dirigirse. Este mecanismo podría usar un servicio de registro como Portmap, que utiliza un puerto bien conocido.
* Que es Java Servlets?
Los Servlets son módulos escritos en Java que se utilizan en un servidor, que puede ser o no ser servidor web, para extender sus capacidades de respuesta a los clientes al utilizar las potencialidades de Java. Los Servlets son para los servidores lo que los applets para los navegadores, aunque los servlets no tienen una interfaz gráfica.
Los servelts pueden ser incluidos en servidores que soporten la API de Servlet (ver servidores). La API no realiza suposiciones sobre el entorno que se utiliza, como tipo de servidor o plataforma, ni del protocolo a utilizar, aunque existe una API especial para HTTP.
Los Servlets son un reemplazo efectivo para los CGI en los servidores que los soporten ya que proporcionan una forma de generar documentos dinámicos utilizando las ventajas de la programación en Java como conexión a alguna base de datos, manejo de peticiones concurrentes, programación distribuida, etc. Por ejemplo, un servlet podría ser responsable de procesar los datos desde un formulario en HTML como registrar la transacción, actualizar una base de datos, contactar algún sistema remoto y retornar un documento dinámico o redirigir a otro servlet u alguna otra cosa.
* Ventajas y desventajas de los servlet.
Ventajas
La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java 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 una manera prolija. Esto permite separar en niveles las aplicaciones web, dejando la parte encargada de generar el documento HTML en el archivo JSP.
Otra ventaja es que JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. Es común incluso que los desarrolladores trabajen en una plataforma y que la aplicación termine siendo ejecutada en otra.
Etiquetas JSP para simplificar el código y dar mayor funcionalidad.Desarrollar sitios web utilizando etiquetas presenta ciertas ventajas como; facilitar el aprendizaje, facilitar el mantenimiento, fomentar la modularidad y la reutilización y simplificar el código y reducir el número de líneas necesarias.
Otras de las ventajas de JSP es que es un lenguaje totalmente escrito, fuerte capacidad de manipulación de gráficos, cargas de APIs: Interfaz de programación de aplicaciones.
También tenemos el Open source; código abierto es la expresión con la que se conoce al software distribuido y desarrollado libremente.
La ventaja que también es fundamental de JSP es que tenemos el lenguaje java a nuestro alcance. JSP tiene robustez y es multiplataforma.
Desventajas
Una de las desventajas que JSP tiene es que 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 (javascript). No tiene tipo VARIANT de variables, tampoco soporta Switchs o arrays con índices alfanuméricos, y la carga de la interfaz es más lenta que la de una aplicación de escritorio.
Otra desventaja que también tiene es que la mayor parte de la lógica de la aplicación se ejecuta en el servidor, por lo que se corre el riesgo de sobrecargar al mismo y, la aplicación no está disponible si ocurre algún problema con el servidor o con la conexión de red.
* Características de Java Servlet
* Ciclo de vida de java Servlet
- 1. Inicializar el servlet
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 multi-thread, los servlets no tienen problemas de concurrencia durante su inicialización. El servidor llama sólo una vez al método
init
al crear la instancia del servlet, y no lo llamará de nuevo a menos que vuelva a recargar el servlet. El servidor no puede recargar un servlet sin primero haber destruido el servlet llamando al método destroy
.- 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, ya que 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. Este método sólo se ejecuta una vez y puede ser llamado cuando aún queden respuestas en proceso, por lo que hay que tener la atención de esperarlas. El servidor no ejecutará de nuevo el servlet hasta haberlo cargado e inicializado de nuevo.
* Estructura básica de un Servlet
public class SimpleServlet extends HttpServlet {
// Maneja el método GET de HTPP para
// construir una sencilla página Web.
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out;
String title = "Simple Servlet Output";
// primero selecciona el tipo de contenidos y otros campos de cabecera de la respuesta
response.setContentType("text/html");
// Luego escribe los datos de la respuesta
out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);
out.println("</TITLE></HEAD><BODY>");
out.println("<H1>" + title + "</H1>");
out.println("<P>This is output from SimpleServlet.");
out.println("</BODY></HTML>");
out.close();
}
}
|
* Que es Clase GenericServlet?
public abstract class GenericServlet implements Servlet, ServletConfig: Define un servlet genérico independiente del protocolo. Además de implementar alguno de los métodos de las interfaz crea otros:
- log(String msg): Escribe en la consola del servidor el mensaje junto con el nombre del servlet.
* Métodos principales de Java Servlet
- init(ServletConfig config): Es el método utilizado para crear una nueva instancia del servlet (análogo al constructor). Ver el ciclo de vida. Este método puede ser sobreescrito para realizar tareas como crear una conexión a una BD que se mantendrá mientras el servlet se mantenga cargado y puede ser utilizada por cada petición. ServletConfig contiene los parámetros de inicialización que entrega el servidor al servlet.
- getServletConfig(): Retorna la configuración dada para la inicialización del servlet.
- service(ServletRequest req, ServletResponse res): Este método es el que se llama cuando se recibe una petición de un cliente y en su implementación normal para HTTP verifica el tipo de solicitud GET, POST, etc. y la redirige a los métodos respectivos. En general no es necesario reimplementar este método.
- destroy(): Este método es llamado por el servidor para indicar que el servlet será destruido. Es llamado sólo una vez y uno debe encargarse de esperar por posibles peticiones en curso. Ver el ciclo de vida.
Comentarios
Publicar un comentario