Documentos de Académico
Documentos de Profesional
Documentos de Cultura
las tiendas en línea, aplicaciones interactivas Web y otros sitios web dinámicos. ¿Por qué? este
capítulo se ofrece una descripción de alto nivel de la tecnología y algunas de las razones de su
popularidad. En capítulos posteriores se proporcionan detalles específicos sobre las técnicas
de programación.
Los servlets son programas Java que se ejecutan en servidores web o aplicación, actuando
como un medio capa de entre las peticiones procedentes de los navegadores web u otros
clientes HTTP y bases de datos o aplicaciones en el servidor HTTP. Su trabajo consiste en
realizar las siguientes tareas, como se ilustra en la Figura 1-1.
1. Leer los datos explícitos enviados por el cliente. El usuario final normalmente entra
estos datos en un formulario HTML en una página Web página. Sin embargo, los
datos también podría provenir de un applet o una costumbre Programa cliente
HTTP. El capítulo 4 se explica cómo los servlets leer estos datos.
1.2 ¿Por qué crear aplicaciones Web Páginas de forma dinámica? Después de
Marty escribió la primera edición de Servlets y JavaServer Pages básicos, varios de
sus programas no-conocedores de parientes y amigos le preguntan qué libro se
trataba. Marty se lanzaba a una larga discusión, técnicos de Java, programación
orientada a objetos, y HTTP, sólo para ver a los ojos de inmediato se ponen
vidriosos. Finalmente, exasperado, se preguntaba: "¡Oh, así que su libro es acerca
de cómo hacer páginas web, ¿verdad?" "Bueno, no," la respuesta sería: "Ellos se
refieren a cómo hacer que los programas que hacer que las páginas Web. " "¿Eh?
¿Por qué esperar hasta que el cliente solicita la página y luego tener un programa
de construcción de el resultado? ¿Por qué no construir la página Web antes de
tiempo? " Sí, muchas peticiones de clientes pueden ser satisfechas por los
documentos creados previamente, y el servidor se ocuparía de estas solicitudes sin
necesidad de invocar los servlets. En muchos casos sin embargo, un resultado
estático no es suficiente, y una página debe ser generada para cada solicitud.
Hay una serie de razones por las páginas Web necesitan ser construido sobre la
marcha:
• La página Web se basa en los datos enviados por el cliente.
Por ejemplo, la página de resultados de los motores de búsqueda y orden de
confirmación páginas en las tiendas en línea son específicos de usuario en
particular peticiones. Usted no sabe lo que desea mostrar hasta que haya leído los
datos que el usuario envía. Sólo recuerde que el usuario envía dos tipos de
datos: explícitos (es decir, datos de formularios HTML) e implícita (es decir,
petición HTTP cabeceras). De cualquier tipo de entrada puede ser utilizado para
construir la página de salida. En particular, es bastante común para construir una
página específica del usuario sobre la base de un galletas de valor.
• La página Web se deriva de los datos que cambian con frecuencia.
Si los cambios de página para cada solicitud, a continuación, que sin duda necesita
para construir la respuesta en tiempo de petición. Si sólo cambia periódicamente,
sin embargo, puedes hacerlo de dos maneras: en forma periódica podría construir
una nueva página web en el servidor (con independencia de las solicitudes de
cliente), o usted podría esperar y sólo construyen la página cuando el usuario lo
solicita. El enfoque correcto depende de la situación, pero a veces es más
conveniente hacer la segunda: esperar a que la solicitud del usuario. Por ejemplo,
un clima de informes o el sitio de noticias titulares podrían construir las páginas de
forma dinámica, tal vez devolviendo una página previamente construida y que la
página sigue siendo hasta la fecha.
• La página Web utiliza la información de bases de datos corporativas o
otros del lado del servidor de fuentes. Si la información está en una base de datos,
es necesario el procesamiento de servidor incluso si el cliente está utilizando el
contenido Web dinámico, como un applet. Imagine utilizar un applet en sí mismo
para un sitio de motor de búsqueda:
HelloServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n";
out.println(docType +
"<HTML>\n" +
"<HEAD><TITLE>Hello</TITLE></HEAD>\n" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1>Hello</H1>\n" +
"</BODY></HTML>");
}
}
1.4 Las ventajas de los servlets Más de CGI "Tradicional" Servlets de Java son más
eficientes, más fáciles de usar, más potente, más portable, más seguro, y más
barato que los tradicionales CGI y muchas otras tecnologías como CGI.
Eficiente
Con CGI tradicional, un nuevo proceso que se inicia para cada solicitud HTTP. Si el
CGI programa en sí es relativamente corta, la sobrecarga de iniciar el proceso
puede dominar el tiempo de ejecución. Con los Servlets, la máquina virtual Java se
mantiene en funcionamiento y se encarga de cada solicitud, con un ligero hilo de
Java, no un proceso del sistema operativo de peso pesado.
De manera similar, en CGI tradicional, si hay solicitudes de N en el programa CGI
misma, el código del programa CGI se carga en memoria N veces. Con los servlets,
sin embargo, habría hilos N, pero sólo una única copia de la clase servlet sería
cargado. Este enfoque reduce los requisitos de memoria del servidor y ahorra
tiempo crear instancias de un menor número de objetos. Por último, cuando un
programa CGI termina el manejo de una solicitud, el programa termina. Este
enfoque hace que sea difícil para los cálculos de caché, mantener las conexiones
de base de datos abierta, y realizar otras optimizaciones que se basan en
persistente datos. Servlets, sin embargo, permanecen en la memoria incluso
después de completar un respuesta, por lo que es fácil de almacenar los datos
arbitrariamente complejas entre el cliente peticiones.
Conveniente
Servlets tienen una gran infraestructura para análisis automático y decodificación
Los datos de formularios HTML, leer y seleccionar cabeceras HTTP, manejar
cookies, seguimiento de sesiones, y muchos otros de tan alto nivel de servicios
públicos. En CGI, que tiene que hacer gran parte de este usted mismo. Además, si
usted ya conoce el lenguaje de programación Java, por qué aprender Perl
también? Usted ya está convencido de que la tecnología Java hace más fiable y de
código de un solo uso que hace de Visual Basic, VBScript o C + +. ¿Por qué volver a
los idiomas para la programación del lado del servidor?
Poderoso
Los servlets soportar varias capacidades que son difíciles o imposibles de llevar a
cabo con CGI normal. Los servlets pueden hablar directamente con el servidor
Web, mientras que el CGI normal los programas no pueden, al menos no sin el uso
de una API específica del servidor. La comunicación con el servidor Web hace que
sea más fácil de traducir las direcciones URL relativas al camino de cemento
nombres, por ejemplo. Varios servlets también pueden compartir los datos, por lo
que es fácil de implementar base de datos de la agrupación de conexiones y
similares optimizaciones de recursos compartidos. Servlets También puede
mantener la información de solicitud en solicitud, la simplificación de las técnicas
de como seguimiento de sesión y el caché de cálculos anteriores.
Portátil
Los Servlets están escritos en el lenguaje de programación Java y siguen una API
estándar. Servlets están soportados directamente o mediante un plugin en
prácticamente todos los servidores Web. En consecuencia, servlets escritos, por
ejemplo, Macromedia JRun puede ejecutar sin modificarse en
Apache Tomcat, Microsoft Internet Information Server (con un plugin por
separado), IBM WebSphere, iPlanet Enterprise, Oracle9i AS, o WebStar StarNine.
Ellos son parte de la plataforma Java 2, Enterprise Edition (J2EE, ver
http://java.sun.com/j2ee/), para apoyo de la industria para los servlets es cada vez
más generalizada.
Barato
Corriente principal
Hay un montón de buenas tecnologías que hay. Pero si los vendedores no los
apoyan y los desarrolladores no saben cómo usarlos, ¿para qué sirven? Servlets y
JSP la tecnología es compatible con servidores de Apache, Oracle, IBM, Sybase,
BEA, Macromedia, Caucho, Sun / iPlanet, Nueva Atlanta, ATG, Fujitsu, Lutris,
Silverstream, el Banco Mundial Wide Web Consortium (W3C), y muchos otros.
Varios de bajo costo plugins añadir soporte a Microsoft IIS y Zeus también. Se
ejecutan en Windows, Unix / Linux, MacOS, VMS, y los sistemas operativos de
mainframe de IBM. Son el más popular aplicación del lenguaje de programación
Java. Ellos son sin duda los más populares opción para el desarrollo a medio y
aplicaciones web de gran tamaño. Son utilizados por la compañía aérea la industria
(la mayoría de United Airlines y Delta Airlines sitios Web), el comercio electrónico
(Ofoto.com), banca en línea (EE.UU. En primer lugar el Banco, el Banco Popular de
Puerto Rico), Web motores de búsqueda / Portales (excite.com), los grandes sitios
financieros (American Century Investments), la y cientos de otros sitios que usted
visita todos los días.
Por supuesto, la popularidad sola no es prueba de una buena tecnología.
Numeroso contra-ejemplos abundan. Sin embargo, nuestro punto es que no se
están experimentando con una nuevo y no probado la tecnología cuando se
trabaja con Java del lado del servidor.
1.5 El papel de la JSP Una visión un tanto simplista de los servlets es que son
programas en Java HTML embebido dentro de ellos. Una visión demasiado
simplificada de los documentos JSP es que son páginas HTML con código Java
incrustadas en el interior de ellos. Por ejemplo, comparar el servlet de ejemplo
mostrado anteriormente (listado 1.1) con la JSP la página se muestra a
continuación (Listado 1.2). Se ven totalmente diferentes: el primero se ve sobre
todo como una clase de Java, mientras que el segundo se ve sobre todo como
una página HTML normal. Lo interesante es que, a pesar de la aparente
diferencia enorme, detrás de las escenas son los mismos. De hecho, un
documento JSP es sólo otra manera de escribir un servlet.
Las páginas JSP se traducen en los servlets, los servlets se compila, y son los
servlets que se ejecutan al momento de la solicitud.
Store.jsp