Controladores en Java y servlet en JSP

Clasificado en Otras materias

Escrito el en español con un tamaño de 9,78 KB

Tipos de controladores.
Existen cuatro puentes diferentes de controladores o driver JDBC definidos en la especificación JDBC de Sun.
·Puente 1. Los controladores de este tipo utilizan el sistema de pasarela o puente. Un ejemplo es el JDBC-ODBC. No es la mejor solución porque en muchos casos es necesario instalar un software específico en el cliente además de ser algo lento en los accesos a la base de datos.
·Puente 2. Este tipo de controlador se conoce como API nativas, esto es, el controlador contiene código Java mediante el cual se realizan las llamadas a los métodos nativos de la base de datos en C o C++ que realizan en acceso a la base de datos. Algunas veces es necesario instalar un software cliente para utilizar este tipo de controladores.
·Puente 3. Los drivers o controladores JDBC de este tipo se comunican con una aplicación intermedia en el servidor utilizando sockets que trasladan las peticiones del programa cliente a una API específica del controlador. Este tipo de driver tiene la ventaja de no utilizar ningún software en el cliente.
·Puente 4. Los controladores o driver de éste tipo utilizan protocolos de red que están incluidos en el SGBD ( Sistema de Gestión de Bases de Datos ), y por lo tanto los drivers se comunican de forma directa con la base de datos, utilizando también sockets de Java. Es el mejor de los 4drivers ya que esta escrito por completo en Java. La mayoría de estos controladores son provistos por el fabricante del SGBD.
El método createStatement() crea un canal abierto a través del cual se pueden ejecutar consultas.

executeQuery(). Este método devuelve un objeto ResultSet, el cual puede usarse para acceder a cada una de los registros devueltos:
Qué es lo que usted necesita para ejecutar un servlet ( también una JSP)
1. - Un programa servidor Web para HTTP. Pueden ser los más utilizados o populares como el Apache HTTP server, o el IIS que viene en el sistema operativo Windows NT 4.0 o Windows 2000 Server, o incluso en la versión profesional de Windows XP.
2. Servidores que soportan los servlets

3.-Los paquetes de clases servlet:
javax.servlet
javax.servlet.http
una aplicación web es una colección de servlets, paginas JSP, clases Java, archivos de descripción de la aplicación, documentos estáticos HTML, XHTML, imágenes, etc. y otros recursos que pueden ser empaquetados y ejecutados en distintos servidores de diferentes proveedores. Esto es, una aplicación web se podría definir coma la capa web de cualquier aplicación.
El contenedor es el que contiene o alberga una aplicación web y no es mas que la estructura de directorios en donde están colocados todos los archivos necesarios para la ejecución de la aplicación web.

Una JSP atraviesa por etapas de evolución de tres pasos, en su código :
Código fuente JSP. Es escrito por el programador o desarrollador de JSP. Esta en un archivo de texto con extensión .jsp y se compone de una mezcla de código HTML, instrucciones en lenguaje Java, directivas JSP y acciones que describen cómo generar una pagina Web para responder a una solicitud por parte del cliente.
Código fuente Java. El contenedor de JSP traduce el código fuente JSP a código fuente de un servlet Java equivalente. Este código fuente se guarda en un área de trabajo y puede ser útil en el proceso de depuración de errores.
Clase Java compilada. Como sucede con cualquier otro programa de Java, el servlet generado se compila en byte code ( código de bytes )resultando en un archivo .class que esta listo para ser cargado y ejecutado por el servidor.
Hay tres tipos de elementos JSP:
·Elementos de secuencias de comandos (scripts)que incluyen
expresiones, scriplets y declaraciones.
·Directivas.
·Acciones
Declaraciones.
Una declaración permite notificar al intérprete de Java que se van a definir nuevas variables o métodos en el archivo de la clase generada. Las declaraciones contienen instrucciones o sentencias en lenguaje Java con la sintaxis siguiente:
<%! sentencia; [sentencias; ... ]%>
Scriptlets.
Un scriptlet es un conjunto de instrucciones o sentencias de Java incluidas en una página HTML. Estas instrucciones se distinguen del HTML porque están colocadas entre los marcadores<% y %>para que el intérprete de JSP sepa que debe procesar todo el código que se encuentre dentro de esas etiquetas. Su sintaxis es:
<% sentencias; [sentencias; ...]%>
Objeto request.
Es una instancia de javax.servlet.ServletRequest y contiene información de datos enviados al servidor a través de una página web. Por ejemplo el método getParameter() del objeto request recoge valores enviados por medio de un formulario o una URL. Así podemos recuperar los valores o contenido de los campos de un fórmulario de una página web, ejemplo:
<%
String nombre = request.getParameter("nombre");
%>
¿Qué es un Flujo?
Un flujo es un sistema de comunicación implementado en el paquete java.io cuyo fin es guardar y recuperar la información en cada uno de los diversos dispositivos de almacenamiento.
Los flujos estándar
Java al igual que cualquier otro lenguaje de programación tiene su conjunto métodos que le permiten captar la información de flujos de entrada y enviar flujos de salida por dispositivos estándar.
Los flujos estándar son:
·Flujo de datos de entrada:
oSe realiza mediante la clase System.in y suele recibir los datos del teclado
oUtiliza el método read() para conseguir leer los caracteres del teclado
·Flujo de datos de salida:
oSe realiza mediante la clase System.out y suele enviar los datos por pantalla
oUtiliza el método print() y println() para la salida por pantalla
·Flujo de datos de error
oSe realiza mediante la clase System.err
oNos aseguramos que la salida va redirigida al monitor para enviar mensajes de error al usuario
Los flujos que ofrece java.io
Java ofrece dos clases abstractas para manejar los flujos de datos procedentes de equipos remotos o archivos y son java.io.OutputStream y java.io.InputStream, a continuación presentamos la jerarquía de estas clases clases
Flujos de acceso a archivos
Ya sea para leer o para escribir en un archivo, estos se manipulan con flujos de acceso a archivos. En Java tenemos la clase FileInputStream , con los métodos necesarios para abrir e interactuar con un canal de comunicación hacia un archivo de entrada para nuestra aplicación, y la clase FileOutputStream para el caso de un archivo de salida.
La clases FileInputStream y FileOutputStream reciben en uno de sus constructores como parámetro el nombre del archivo a leer o escribir. Hay otras dos variantes: una que recibe un objeto de tipo File y otra que recibe un objeto de tipo FileDescriptor. En la sección siguiente veremos la primera variante y como se utiliza la clase File para dicho fin.
La clase File
En el caso de la clase File esta se utiliza para encapsular la interacción de nuestros programas con el sistema de archivos. Mediante la clase File no nos limitamos a leer el contenido del archivo, como ocurría con la clase FileInputStream, sino que podemos obtener información adicional, como el tamaño del archivo, su tipo, su fecha de creación, los permisos de acceso que tenemos con él, etc.
La clase DataOutputStream, es una extensión de la clase OutputStream, y añade a ésta última la posibilidad de escribir datos "complejos" en un flujo de salida. Cuando hablamos de datos "complejos", en realidad nos referimos a tipo de datos primitivos, pero no restringidos únicamente a bytes y a matrices de bytes, como en el caso de OutputStream.
Mediante la clase DataOutputStream podemos escribir datos de tipo int, float, double, char, etc. Además podemos escribir algunos objetos, como datos de tipo String, en una gran cantidad de formatos.
La clase DataInputStream
Si podemos escribir datos formateados entonces también podemos leerlos cómodamente. Esta función es posible porque disponemos de la clase DataInputStream.
La clase DataInputStream está diseñada para leer datos generados por un objeto DataOutputStream. La especificación de esta clase garantiza que cualquier archivo escrito por un DataOutputStream, sobre cualquier plataforma y sistema operativo, será legible correctamente por un DataInputStream, sin tener necesidad de preocuparse de que si las máquinas son "little-endian" o "big-endian".

Entradas relacionadas: