Tema13 Servlet JSP

Páginas: 31 (7689 palabras) Publicado: 27 de mayo de 2015
Tema 13: Servlets y JSP
1. Servlets.
1.
2.
3.
4.
5.

ARS - 2007

2. JSP.

Introducción.
Objeto Request.
Objeto Response.
Cookies.
Sesiones.

1.
2.
3.
4.

Introducción.
Elementos JSP.
Java Beans.
Etiquetas
personalizadas.
5. JDBC
6. Integración
Servlets y JSP

Servlets y JSP

1

SERVLETS: 1.1 Introducción

¿Qué son? (I)
ƒ Los Servlets son la alternativa Java a los CGIs.
ƒ Actúan como capaintermedia entre:
ƒ Petición proveniente de un Navegador Web u otro cliente HTTP
ƒ Bases de Datos o Aplicaciones en el servidor HTTP

ƒ Son aplicaciones Java especiales, que extienden la
funcionalidad del servidor HTTP, dedicadas a:
ƒ Leer los datos enviados por el cliente.
ƒ Extraer cualquier información útil incluida en la cabecera HTTP o
en el cuerpo del mensaje de petición enviado por el cliente.
ƒGenerar dinámicamente resultados.
ƒ Formatear los resultados en un documento HTML.
ƒ Establecer los parámetros HTTP adecuados incluidos en la
cabecera de la respuesta (por ejemplo: el tipo de documento,
cookies, etc.)
ƒ Enviar el documento final al cliente.
ARS - 2007

Servlets y JSP

2

SERVLETS: 1.1 Introducción

¿Qué son? (II)

ARS - 2007

Servlets y JSP

3

SERVLETS: 1.1 Introducción

¿Qué son?(III)
ƒ Los objetos servlets cumplen los siguientes requisitos:
ƒ Están basados en el marco de Servlets.
ƒ Utilizan el “Servlet Application Programming Interface” (SAPI)
ƒ El interfaz SAPI define una manera estándar para que las
peticiones HTTP sean procesadas por esta clase Java
(independiente del servidor).

ƒ Asociados a la URL de la petición, son manejados por el
contenedor de servlets conuna arquitectura simple.
ƒ El contenedor provee el entorno de ejecución para todos los
servlets basados en los anteriores requisitos.

ƒ Disponibles para la gran mayoría de servidores web.
ƒ Son independientes de la plataforma y del servidor.
ARS - 2007

Servlets y JSP

4

SERVLETS: 1.1 Introducción

Ventajas de los Servlets
ƒ Eficiencia.
ƒ Cada petición por parte de un cliente crea un hilo, no unnuevo
proceso como ocurría con los CGIs tradicionales.

ƒ Potencia.
ƒ Son programados en Java, por lo que se puede emplear todas las
clases y herramientas disponibles para esta plataforma.

ƒ Seguridad.
ƒ Controlada por la máquina virtual de Java.
ƒ La mayoría de problemas de seguridad encontrados en los CGIs
no aparecen en los Servlets.

ƒ Portabilidad.
ƒ Puede ser utilizados sobre cualquier SO.y en la mayoría de
servidores Web.

ƒ Precio.
ƒ Normalmente todo el software necesario es gratis.

ARS - 2007

Servlets y JSP

5

SERVLETS: 1.1 Introducción

Ventajas de los Servlets

ARS - 2007

Servlets y JSP

6

SERVLETS: 1.1 Introducción

Arquitectura de los Servlets
ƒ Para implementar los servlets se hace uso de:
ƒ javax.servlet: entorno básico
ƒ javax.servlet.http: extensión para servletshttp.

Servlet

HttpServlet

MiServlet

ARS - 2007

Servlets y JSP

7

SERVLETS: 1.1 Introducción

Estructura básica
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Para PrintWriter
// Para ServletException
// Para HttpServlet*

public class PlantillaServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throwsServletException, IOException
{
// El objeto "request" se utiliza para leer la
// cabecera HTTP, cookies, datos enviados (GET o POST)
// El objeto "response" para fijar la respuesta
PrintWriter out = response.getWriter();
// out Se utiliza para enviar el contenido al cliente
}
// Idem para el método doPost
}
ARS - 2007

Servlets y JSP

8

SERVLETS: 1.1 Introducción

Ejemplo
import java.io.*;
importjavax.servlet.*;
import javax.servlet.http.*;
public class HolaMundo extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println( " "HTML 4.0 Transitional//EN\">" +
" Hola... <div class="paper-body__gradient paper-body__gradient--bottom paper-body__gradient--bottom-abs"></div> <div class="center paper-body__cta--mod paper-body__cta-no-bg"> <a class="button button--large button--orange" onclick="upgradeRedirect()" rel="nofollow"> Leer documento completo </a> <p class="ash-gray text-s"> Regístrate para leer el documento completo. </p> </div> </div> </div> </div> </article> </main> <script>(function(d){var domain='buenastareas.com';if(d.referrer.match('^https?\:\/\/(|www\.)'+domain.replace('.com',"")+'\.com(.*)')){d.getElementById('stm-hero').className+=' stm-hero';d.getElementById('emptyTopicsList').innerHTML=(document.getElementById("topicsList"))?d.getElementById('topicsList').innerHTML:'';d.getElementById('text-header').innerHTML='';var sec=d.createElement('div');sec.className='section no-padding margin-2';var p=d.createElement('p');p.className='text-s uppercase ash-gray';p.innerText='Vista previa del texto';sec.appendChild(p);d.getElementById('text-header').appendChild(sec);}else{d.getElementById('stm-hero').className='';d.getElementsByTagName('article')[0].className='row no-border';}})(window.document);</script><div class="advertBox center margin-2 leaderboard_btf"> </div> <a href="/content/access" rel="nofollow"></a> <section class="row "> <div class="columns position-relative large-12"> <div class=""> <h2 class="heading-m padding-top-1 margin-2"> Estos documentos también te pueden resultar útiles </h2> </div> <section class=""> <ul class="unstyled"> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Jsp-y-Servlet/4525291.html" title="Jsp Y Servlet"> <h6 class="heading-s"> Jsp Y Servlet </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...Servlets y <b><i>JSP</i></b> Introducción Inicio  Colección de paginas web estáticas Evolución  Inclusión de métodos de confección de paginas web dinámicas (CGI) Soluciones  Módulos mas integrados con el servidor  Dotar al servidor de algún interprete de algún lenguaje de programación Herramienta  <b><i>JSP</i></b> : Incrusta código interpretable en las paginas HTML  Java <b><i>Servlet</i></b>: mecanismo de programación ligado al servidor Servlets Introducción... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Jsp-y-Servlet/4525291.html" title="Jsp Y Servlet" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">1848 Palabras</span> <span class="essay-details__item">8 Páginas</span> </div> </div> </div> </div> </div> </div> </li> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Tema13/80230228.html" title="Tema13"> <h6 class="heading-s"> Tema13 </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...RESPIRACIÓ N CELULAR GENERAR ENERGÍA PARA LA CÉLULA  Las células requieren un suministro continuo de energía para realizar una multitud de reacciones metabólicas indispensables para la supervivencia. Proceso que libera energía en forma de ATP mediante la descomposición de moléculas de glucosa. RESPIRACIÓN CELULAR RESPIRACIÓN CELULAR Aerobia (presencia oxígeno) Se lleva a cabo en mitocondrias. Respiración Celular Anaerobia (ausencia de oxígeno) Se lleva a cabo en el citosol. -... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Tema13/80230228.html" title="Tema13" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">574 Palabras</span> <span class="essay-details__item">3 Páginas</span> </div> </div> </div> </div> </div> </div> </li> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Servlet/65388628.html" title="SERVLET"> <h6 class="heading-s"> SERVLET </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...3.1 Actividad de Reflexión inicial. Porque <b><i>JSP</i></b> ofrece varios beneficios como sistema de generación de contenido dinámico. Y cuál es la importancia de un <b><i>servlet</i></b> dentro de una página <b><i>jsp</i></b>. RTA: <b><i>JSP</i></b> ofrece varios beneficios como sistema de generación de contenido dinámico. Al estar basado en Java, presenta las ventajas que este lenguaje ofrece con respecto a la portabilidad entre plataformas y las derivadas de la orientación a objetos de... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Servlet/65388628.html" title="SERVLET" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">907 Palabras</span> <span class="essay-details__item">4 Páginas</span> </div> </div> </div> </div> </div> </div> </li> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Servlet/2600263.html" title="Servlet"> <h6 class="heading-s"> Servlet </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...Tebocam TeboCam es un programa de vigilancia que detecta automáticamente el movimiento captado por tu cámara web. Las capturas se almacenan en un directorio y se pueden subir a un servidor FTP o enviar a través de correo electrónico. Nombre del software | Ventajas | Desventajas | Costo de licencia | Tebocam | * Excelente algoritmo de detección * Línea de tiempo y registro de eventos * Envío de fotogramas por correo y FTP * Rápido al guardar fotogramas * No requiere... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Servlet/2600263.html" title="Servlet" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">664 Palabras</span> <span class="essay-details__item">3 Páginas</span> </div> </div> </div> </div> </div> </div> </li> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Servlet/1459657.html" title="Servlet"> <h6 class="heading-s"> Servlet </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...•getPathInfo(): Devuelve información a cerca del path del <b><i>servlet</i></b>. •getPathTranslated(): Devuelve información extra a cerca de un path que ha sido trasladado. •getQueryString(): Devuelve la sentencia de consulta del URI. •getRemoteUser(): Devuelve el nombre del usuario que hace el request. •getRequestSessionId(): Devuelve el identificador de la sesión. •getRequestURI(): Devuelve el URI del request. •getServletPath(): Devuelve el <b><i>servlet</i></b> que ha sido... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Servlet/1459657.html" title="Servlet" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">691 Palabras</span> <span class="essay-details__item">3 Páginas</span> </div> </div> </div> </div> </div> </div> </li> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Jsp/82056733.html" title="JSP"> <h6 class="heading-s"> JSP </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...<b><i>JSP</i></b> JavaServer Pages (<b><i>JSP</i></b>) (http://java.sun.com/<b><i>jsp</i></b>) es una tecnología basada en el lenguaje Java que permite incorporar contenido dinámico a las páginas web. Los archivos <b><i>JSP</i></b> combinan HTML con etiquetas especiales y fragmentos de código Java. El código fuente de una página <b><i>JSP</i></b> puede contener: - Directivas: Indican información general de la página, como puede ser importación de clases, página a invocar ante errores, si... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Jsp/82056733.html" title="JSP" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">768 Palabras</span> <span class="essay-details__item">4 Páginas</span> </div> </div> </div> </div> </div> </div> </li> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Practica-Servlet/158261.html" title="Practica servlet"> <h6 class="heading-s"> Practica servlet </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...DESARROLLO DE COMPONENTES DE VISTA Objetivos: • Diseñar un componente de vista • Describir el Protocolo de Transferencia de Hipertexto • Describir el comportamiento de un contenedor Web • Desarrollar un <b><i>Servlet</i></b> sencillo para HTTP • Configurar y desplegar un <b><i>Servlet</i></b> Tipos de Componentes para la vista • Presentación de los Datos Incluyen cualquier presentación de datos visibles en una pantalla. Hay muchas formas de ... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Practica-Servlet/158261.html" title="Practica servlet" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">1503 Palabras</span> <span class="essay-details__item">7 Páginas</span> </div> </div> </div> </div> </div> </div> </li> <li class="essayPreview"> <div class="card"> <a class="heading-s black" href="/ensayos/Servlet-3-0/24832.html" title="Servlet 3.0"> <h6 class="heading-s"> Servlet 3.0 </h6> </a> <div class="card__content-footer-container "> <p class="card__content text-s "> ...nuevos servlets y componentes web (Listeners, Filters, etc) había que editar el fichero web.xml de nuestra aplicación. Lo que supone que a la hora de usar la mayoría de los frameworks web en el mercado en el mejor de los casos había que declarar el <b><i>Servlet</i></b> FrontController de los mismos, o incluso Listeners y Filters. En servlets 3.0 la especificación permitirá usar varios web.xml en una misma aplicación, de esta forma al instalar un framework web x, el web.xml con los elementos... </p> <div class="row card__footer-links "> <div class="columns small-6"> <a href="/ensayos/Servlet-3-0/24832.html" title="Servlet 3.0" class="card__footer text-xs"> <span> Leer más </span> </a> </div> <div class="columns small-6"> <div class="card__caption card__caption weight-300 mid-gray text-s align-right"> <div class="essay-details no-margin--bottom"> <span class="essay-details__item">525 Palabras</span> <span class="essay-details__item">3 Páginas</span> </div> </div> </div> </div> </div> </div> </li> </ul> </section> </div> </section> <section class="row "> <div class="columns position-relative large-12"> <section class="section no-border"> <div class="container"> <div class="row"> <div class="columns "> <div class="section-heading "> <h2 class="align-left margin-2 heading-m"> OTRAS TAREAS POPULARES </h2> </div> </div> </div> <div class="row" id="popular-tags-visible"> <div class="small-12 columns tag-block columns-small-1 columns-medium-2 columns-large-2"> <ul> <li class="margin-1"> <a href="/ensayos/Mmmm/73918999.html" title="Mmmm" class="mid-gray brand-primary--hover">Mmmm</a> </li> <li class="margin-1"> <a href="/ensayos/Instructivo-De-Procedimientos-De-Las-Opciones/73919002.html" title="instructivo de procedimientos de las opciones de titulacion" class="mid-gray brand-primary--hover">instructivo de procedimientos de las opciones de titulacion</a> </li> <li class="margin-1"> <a href="/ensayos/Contrato-De-Arrendamiento-De-Local-Comercial/73919008.html" title="CONTRATO DE ARRENDAMIENTO DE LOCAL COMERCIAL sin terminar " class="mid-gray brand-primary--hover">CONTRATO DE ARRENDAMIENTO DE LOCAL COMERCIAL sin terminar </a> </li> <li class="margin-1"> <a href="/ensayos/Musica-En-El-Renacimiento/73919035.html" title="Musica En El Renacimiento" class="mid-gray brand-primary--hover">Musica En El Renacimiento</a> </li> <li class="margin-1"> <a href="/ensayos/Convenio-De-Indemnizacion-Por-Accidente-De/73919059.html" title="CONVENIO DE INDEMNIZACION POR ACCIDENTE DE TRABAJO" class="mid-gray brand-primary--hover">CONVENIO DE INDEMNIZACION POR ACCIDENTE DE TRABAJO</a> </li> <li class="margin-1"> <a href="/ensayos/Concepto-De-Planificaci-n-Estrat-Gica/73919065.html" title="Concepto de planificaci n estrat gica o planeaci n" class="mid-gray brand-primary--hover">Concepto de planificaci n estrat gica o planeaci n</a> </li> </ul> </div> </div> </div> </section> </div> </section> <div class="advertBox center margin-1"></div> <section class="section no-border brand-primary--bg"> <div class="row"> <div class="columns center"> <h3 id="banner_title" class="heading-l white">Únete a millones de otros estudiantes y comienza tu investigación</h3> <h4 class="text-m white">Conviértase en miembro formal de Buenas Tareas</h4> <a class="button--bg-color__white button-fullwidth" onclick="upgradeRedirect()" rel="nofollow"> INSCRÍBETE - ES GRATIS </a> </div> </div> </section> <footer class="section section--footer"> <div class="row"> <div class="medium-3 columns"><div class="copyright-block"> <p class="copyright-block__logo"> <i class="icon icon-sm-logo copyright-block__logo__icon"></i> <span class="copyright-block__logo__span">Buenas Tareas</span> </p> <p class="copyright-block__social"> <a rel="nofollow" href="http://www.facebook.com/BuenasTareas"> <span class="copyright-block__social__circle"> <i class="copyright-block__social__circle__icon icon icon-ui-24-social-fb icon-ui-social-fb"></i> </span> </a> <a rel="nofollow" href="https://twitter.com/buenastareas"> <span class="copyright-block__social__circle"> <i class="copyright-block__social__circle__icon icon icon-ui-social-tw"></i> </span> </a> </p> <small class="copyright-block__copyright text-s"> ©2024 BuenasTareas.com </small> </div> </div> <div class="medium-3 columns"><div class="vertical-nav-list"> <h6 class="vertical-nav-list__heading heading-xxs">Productos</h6> <ul class="vertical-nav-list__container"> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/ojear/">Documentos de investigación</a> </li> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/resumen-de-libros/">Notas de libros</a> </li> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/generador-de-citas/">Generador de citas</a> </li> </ul> </div> </div> <div class="medium-3 columns"> <div class="vertical-nav-list"> <h6 class="vertical-nav-list__heading heading-xxs">Empresa</h6> <ul class="vertical-nav-list__container"> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/about.php">Empresa</a> </li> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/advertise-with-us.php">Haz publicidad</a> </li> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/legal.php">Legal (actualizado 9/9/14)</a> </li> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/sitemap.html">Mapa del sitio</a> </li> </ul> </div> </div> <div class="medium-3 columns"><div class="vertical-nav-list"> <h6 class="vertical-nav-list__heading heading-xxs">Ayuda</h6> <ul class="vertical-nav-list__container"> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/help.php">Ayuda</a> </li> <li class="vertical-nav-list__item"> <a class="vertical-nav-list__item__anchor text-m" href="/about-us/contact">Contáctanos</a> </li> </ul> </div> </div> </div> </footer> </div> <!-- global JS --> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/labjs/2.0.3/LAB.min.js"></script> <script type="text/javascript"> $LAB .script("//cdnjs.cloudflare.com/ajax/libs/aja/0.4.1/aja.min.js") .script("//cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js") .script("//cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.runtime.min.js") .script("//cdnjs.cloudflare.com/ajax/libs/jquery.payment/1.3.2/jquery.payment.min.js") .script("//assets.buenastareas.com/234d3b97ed2b88737e66b0e02a8e5aa593c7f7c0/_assets/bts/92c1d4e847bc6d93ba58214aa322ee6c.js") ; </script> <script type="text/javascript"> window.SM2_DEFER = true; function downloadJSAtOnload() { $LAB .script("//assets.buenastareas.com/234d3b97ed2b88737e66b0e02a8e5aa593c7f7c0/_assets/bts/76aff662ad8b32c9348bfa0fa9cb8f91.js") .wait(function() { }); } // Check for browser support of event handling capability if (window.addEventListener) window.addEventListener("load", downloadJSAtOnload, false); else if (window.attachEvent) window.attachEvent("onload", downloadJSAtOnload); else window.onload = downloadJSAtOnload; </script> </body> </html>