Bienvenidos a esta elección.
A continuación vamos a revisar el tema de cabeceros de respuesta utilizando la pídelo servlets están
listos.
Vamos bien lo primero que vamos a hacer es cerrar nuestro proyecto damos el derecho Kloss y vamos a
crear un nuevo proyecto diagnostiquen File new project with Mayrén posteriormente Web Application.
Y el nombre del proyecto va a ser
cabeceros respuesta lo depositamos en curdos diagonal servlet el nombre del paquete cm x con G.M. globalmente.
La versión 1.0 y quitamos el nombre del paquete damos clic en Next.
Dejamos los valores por default Glas Fizz Server y Yaveh empresarial 8 damos iDEN finalizar y vamos
a renombrar nuestro proyecto.
Damos el derecho damos siguen reanime
renombrados el proyecto y damos clic en OK bien ahora vamos a agregar dos servlets sobre esos paquetes
vamos a quitar estos paquetes los seleccionamos y damos siguen Lilit bien ahora vamos a agregar nuestro
primer C.L damos clic derecho nio Java class el primer servlet se va a llamar hora servlet y lo depositamos
en el paquete web quitamos estos comentarios y vamos a agregar el segundo servlet vamos a dar clic derecho
Nioh Java class
se va a llamar Generación Excel servlet y también los depositamos en el paquete web quitamos estos comentarios
bien. y ya tenemos lista de nuestras clases.
Ahora vamos a modificar el archivo índex HTML para mandar a llamar esto servlets el título va a ser
el siguiente ejemplo
ejemplo cabeceros de respuesta copiamos este mismo texto y a ser la misma información que vamos a utilizar
para nuestro cabecero y posteriormente agregamos un link
agregamos el nombre de nuestro proyecto o lo que también se conoce como contextual el contexto de nuestro
proyecto y mandamos a llamar nuestro primer servlet generación.
Excel servlet y agregamos el siguiente texto Link al servlet que genera un Excel agregamos un salto
y posteriormente agregamos otro link de igual manera agregamos el context Path o el nombre del proyecto
es lo mismo.
Sin embargo el contexto context Path se puede modificar el nombre del proyecto puede ser cabeceros respuesta
y podremos modificar el contextual.
Esto se puede hacer en las propiedades de proyecto damos clic derecho Properties y en la opción de Run
podemos observar la variable de contextual.
Así que en esta sección es donde se puede modificar el contextual y esto puede ser diferente al nombre
del proyecto.
Sin embargo por default es igual al nombre del proyecto por ello es que en todos los casos hemos utilizado
el context Path como el nombre del proyecto.
Vamos a continuar y ahora vamos a mandar a llamar el servlet de Servlet y agregamos Link al servlet
que actualiza la hora cada segundo.
Así que ahora vamos a responder con diferentes tipos.
En el caso del servlets generación de Excel servlet va a responder con un contenido de tipo Excel y
en el caso de la hora servlet va a responder con un contenido de tipo texto HTML pero que va a refrescar
el navegador cada segundo.
Así que estas van a ser las diferencias y por ello es que vamos a utilizar cabeceros de respuesta bien
ahora vamos a modificar nuestro servlets agregamos web servlet la notación
íbamos a utilizar la llamada generación Excel servlet podemos copiar este mismo texto para que sea exactamente
igual y posteriormente agregamos un extenso HDT PSL importamos nuestras clases
y ahora definimos el método Duguech ya que la llamada que vamos a hacer va a ser de tipo Duguech
y posiblemente definimos los argumentos que estamos recibiendo
se ve request y Cerler WiiSports
importamos las clases y ponemos punto asterisco en el paquete de Java Servlet HTTP para que se importen
todas las clases.
Bien ahora como siguiente paso vamos a especificar el tipo de documento que vamos a enviar de nueva
cuenta a El cliente así que vamos a utilizar nuestra variable responsa y mandamos a llamar el método
Zet contentarme.
Y en este caso el tipo de contenido que vamos a responder va a ser de tipo application y posteriormente
especificamos el tipo de documento BND MS Excel así que vamos a responder con información de tipo Excel
y también vamos a indicar que cuando hacemos clic sobre el link lo que va a hacer es que va a descargar
el documento así que vamos a hacer lo siguiente Response set Gelder agregamos un cabeceros de respuesta
indicando el tipo de contenido Content disposición y agregamos el valor que también es un string attachment
esto quiere decir que el contenido se va a descargar y el nombre de archivo que se va a descargar va
a ser Excel.
Ejemplo.
Punto X LS.
Así que con eso ya estamos indicando al navegador que cuando demos clic sobre el link lo que va a hacer
es que va a descargar la información de tipo Excel y además el nombre del archivo se va a llamar Excel
ejemplo.
Punto X CLS.
Este es simplemente un ejemplo de que podemos responder con distinta información no solamente con texto
HTML hacia el cliente pero si requieren un uso más profesional de manejo de Excel le recomendamos utilizar
la librería de Apache Point
así que para un uso más profesional de Excel pueden utilizar hoy punto Apache punto org ya que esto
es solamente un ejemplo básico.
Vamos a indicar a continuación al navegador que no guarde información previa para que cada vez que demos
clic sobre el link siempre sea información nueva y que no guarde caché en el navegador.
Para esto vamos a utilizar los siguientes cabeceros utilizamos el cabecero utilizando la llamada al
método shed Gelder e indicamos la variable Pragma con el valor de caché son varias variables que vamos
a indicar al navegador para que no guarde caché.
Esta es la primera posteriormente mandamos a llamar de nueva cuenta al método ser Gelder y con la variable
caché control agregamos el valor de no estor no Gion medio estor
y también por medio del método set de Inger vamos a indicar que expire de manera inmediata.
Para ello el valor de menos 1 así que estamos combinando estos tres Keepers para que no guarde información
en el caché y además la información que está generando expire de manera inmediata y con esto aseguramos
que cada vez que damos clic sobre el link se genera siempre información nueva ya que por default el
navegador guarda caché.
Así que de esta manera estamos especificando que no guarde caché.
Y por último vamos a desplegar la información
desplegamos la información al cliente aquí lo que hicimos fue indicaron navegador
que no guarde caché y aquí lo que hicimos
indicamos el tipo de respuesta al navegador.
Así que por último vamos a desplegar la información para desplegar la información a ese cliente vamos
a definir nuestra variable primero Oita
importamos esta clase
y reportamos la posible excepción y una vez con esta variable empezamos a escribir información hacia
un navegador pero en este caso va a ser hacia el documento de tipo Excel indicamos que vamos a agregar
información a una celda.
La cadena de valores posteriormente agregamos en otra celda el valor de 1 y posteriormente en otra celda
agregamos el valor de 2
y finalmente lo que vamos a hacer es sumar estos dos valores y para ello vamos a utilizar una función
de Excel así que agregamos la variable total posteriormente indicamos el valor de la suma en el valor
de la siguiente celda.
Vamos a agregar igual suma y vamos a sumar las celdas que estamos utilizando en este caso la primer
celda es un tabulador y posteriormente se agrega el valor de la cadena a valores así que desde el punto
de vista de Excel lo que estamos haciendo es lo siguiente Estamos utilizando su cuadrícula
el primer diagonal de lo que va a ser es un tabulador es decir que la primera celda va a quedar vacía
no va a contener valor y el primer valor se va a agregar en la siguiente celda que va a ser valores
posteriormente diagonal.
Esto quiere decir que la siguiente celda tampoco se va a utilizar y en la siguiente casilla vamos a
agregar el valor de 1.
Posteriormente en la siguiente celda tampoco se va a utilizar ya que estamos agregando un tabulador
y posteriormente agregamos el valor de dos y finalmente agregamos la siguiente casilla la cadena de
total.
En primer lugar y en la siguiente celda por eso estamos agregando un diagonal para movernos a la siguiente
celda vamos a dejar la función igual suma
pero tenemos que seleccionar las celdas donde están los valores de 1 y 2.
Para ello recordemos que en Excel ésta sería la columna a y en este caso sería la columna y este sería
el renglón 1 posiblemente el renglón 2 el renglón 3 el renglón 4 etcétera.
Así que el valor de 1 se encuentra en la casilla B2 así que vamos a sumar el valor de B2 hasta el valor
en este caso para seleccionar el valor 2 B3.
De esta manera estaríamos seleccionando el elemento 2 en la columna en el renglón 3 así que por ello
esta fórmula es la que vamos a utilizar para seleccionar los valores en las casillas B2 y B3 que va
a ser la suma de estos dos elementos y la suma de estos dos elementos los va a imprimir en esta celda
así que debería demostrar el valor de tres.
Así que agregamos lo siguiente en nuestra fórmula vamos a seleccionar la casilla B2 y B3 punto y coma.
Bien y con eso ya estamos terminando nuestro primer servlet.
Bien vamos a seguir trabajando vamos a configurar ahora nuestro servlet de horas servlet el cual va
a responder con la hora enviando información cada segundo al navegador así que hacemos lo siguiente
ponemos arroba web servlet para definir el paz de nuestro servlet y el que vamos a utilizar es hora
servlet tenemos que respetar mayúsculas y minúsculas así que ponemos diagonal ora servlet hacemos el
extenso
HTTP servlet importamos estas clases aquí me equivoqué debe de ser web web servlet
importamos la notación e importamos la clase y vamos a utilizar también el método Droguett así que definimos
el método protected Veidt Duguech y recibimos los parámetros de Request
y de Pons importamos estas clases e importamos todo el paquete.
Bien con esto ya estamos listos y lo primero que vamos a hacer es enviar información hacia el navegador
indicando que vamos a refrescar la información del navegador cada segundo.
Así que vamos a hacer lo siguiente.
Utilizamos nuestro objeto respondés y mandamos a llamar el método contentivo indicando que vamos a responder
con información de tipo texto HTML y el char C.T de UTE F8
viene hasta aquí lo mismo que ya hemos trabajado pero ahora vamos a agregar un Gelder un cabecero el
cabecero de refresh y con este cabecero lo que vamos a indicar es que vamos a refrescar la información
que vamos a enviar al navegador cada segundo.
Así que esta información está dada en segundos.
Ahora vamos a obtener la fecha actual y posteriormente a la fecha que estamos obteniendo le vamos a
dar un formato para obtener únicamente la hora y la hora vamos a mostrar la hora los minutos y los segundos
para que podamos observar como la hora cambia cada segundo así que obtenemos el valor de fecha.
Utilizamos la clase de EyT definimos nuestra variable fecha y obtenemos la fecha actual.
Importamos esta clase del paquete a punto y útil y posteriormente vamos a dar un formato a esta fecha
para dar un formato a esta fecha.
Vamos a utilizar la clase simple de formato
y declaramos la variable formateada ya que esta variable nos va a ayudar a dar formato a la fecha según
deseemos
y aquí me equivoqué aquí falta un Hatem es simple daiteke formato y vamos a proporcionar el formato
que vamos a utilizar así que va a ser una cadena en este caso como va a ser una cadena dentro de otra
cadena vamos a abrir comilla simple y agregamos el formato hora actualizada y damos el formato de hora.
Posteriormente 2.2 minutos y posteriormente segundos así que ese es uno de los formatos que podemos
utilizar para mostrar la hora les vamos a dejar un link para que puedan ver más información acerca de
este formateados sin forma y vean todas las opciones disponibles que tiene para dar formato al objeto
de tipo fecha.
Importamos esta clase de IAVA punto Text y la clave se llama simplemente Format y posteriormente lo
que vamos a hacer es darle formato a nuestro objeto fecha así que definimos otra variable la variable
se va a llamar hora con formato para obtener ya únicamente la hora utilizamos nuestra variable formateados
y mandamos a llamar el método Format y proporcionamos el objeto fecha así que el objeto fecha contiene
toda la fecha incluyendo el año mes día y además la hora.
Pero en este caso únicamente nos interesa extraer la hora utilizando el formato de hora minutos y segundos
con ese formato.
Por ello es que le estamos dando formato utilizando esta variable formateado y con eso ya conseguimos
el string que deseamos así que cada segundo se va a estar actualizando esta hora y ahora respondemos
a nuestro cliente definimos la variable Reiter
importamos esta clase
reportamos la posible excepción podríamos incluir todo el texto HTML pero en este caso solamente nos
interesa mostrar la hora y esta hora se va a mostrar cada segundo según hemos establecido en este cabeceros
de respuesta en el refresh que va a ser cada segundo.
Así que únicamente vamos a imprimir directamente la hora actualizada así que utilizamos nuestra variable
print y mandamos a imprimir
hora actualizada sin ningún tipo de formato HTML y mandamos a imprimir la variable hora con formato
y eso es todo lo que vamos a hacer cerramos nuestro flujo y ya tenemos nuestra clase que va a imprimir
cada segundo la hora bien vamos a guardar cambios damos clic derecho que también recordemos que para
esto debe de estar detenido que las Fizz
íbamos a ejecutar damos clic derecho seleccionamos ROM y esperamos a que termine de levantarse glacis
bien y con esto ya se ha ejecutado nuestro proyecto y en primer lugar tenemos el link al servlet que
genera un excel.
Vamos a dar click
viene y con esto podemos ver que ya se ha descargado nuestro archivo Excel ejemplo aquí CLS y para poder
abrir este documento ya debemos de tener instalado algún programa que abra archivos de tipo Excel así
que damos clic y aunque no visualizamos aquí esta opción damos clic en Abrir nos muestra el mensaje
de que el formato y la extensión no coinciden no hay ningún problema.
En este caso como hemos generado directamente esta información desde el navegador podría mandarnos este
mensaje pero no hay ningún problema para abrir el documento ya que sabemos lo que estamos agregando
a este archivo así que abrimos el documento y podemos observar la información aquí hubo un detalle ya
que no está agregando los valores en las siguientes columnas ya que aquí sí importa que utilicemos LNE
así que vamos a hacer las modificaciones sobre nuestro archivo de generación Excel servlet.
Sobre este servlet vamos a utilizar a Obrint pero vamos a agregar LN para que imprima los enteros que
necesitamos para que se genere correctamente ese archivo de Excel.
Guardamos cambios y podemos observar que en automático se hace un reciclaje de nuestra aplicación vamos
a generar de nueva cuenta ese archivo damos clic bien y una vez que se ha descargado nuevamente damos
clic en Abrir
aceptamos este mensaje y ahora sí podemos observar qué tenemos en primer lugar la celda vacía por medio
de un tabulador nos movimos a la siguiente celda y se imprime la cadena de valores.
Posteriormente dejamos también la siguiente celda vacía y en este caso imprimimos en la celda B2 el
valor de 1 posteriormente en la celda 3 imprimimos el valor de 2 y posteriormente la cadena de total
y podemos observar la función suma B2 y B3 ya que debe de sumar el valor de la celda 2 y el valor de
la celda B3.
Por lo tanto obtenemos el resultado de la suma.
Así que con esto ya está funcionando correctamente nuestro documento de tipo Excel.
Como hemos comentado esto solamente es un ejemplo básico ya que si necesitaran un uso más profesional
de Excel le recomendamos utilizar el lápiz de Apache Point bien con eso ya terminamos la prueba de nuestro
servlet que genera un excel.
Ahora vamos a dar clic sobre el servlet que genera la hora cada segundo.
Vamos a revisar ya que nos está indicando que el método Goeth no está soportado
aquí está mal escrito debe de ser Droguett guardamos cambios y en automático se debe de hacer un ridículo
de la aplicación regresamos refrescamos y damos de nueva cuenta sobre el link que actualiza la hora
cada segundo y podemos observar ahora actualizada estamos mandando a imprimir el valor de la hora actualizada.
Estoy observando que no es necesario volver a mostrar de nueva cuenta la cadena de oro actualizada.
Vamos a hacer esta corrección ya que este formato ya incluye el mensaje de hora actualizada así que
simplemente con mandar a imprimir esta cadena ya incluye ese texto así que guardamos cambios
regresamos refrescamos y volvemos a dar clic sobre el servlet que genera la hora cada segundo y ya podemos
observar correctamente hora actualizada.
En este caso son las 10 56 con 14 segundos 15 etc. podemos observar que cada segundo se está actualizando
la hora y si vemos el código fuente damos clic derecho ver código fuente de la página únicamente observamos
el texto sin ningún formato HTML.
Sin embargo se podría agregar cualquier formato HTML e incluir esta fecha que se está actualizando cada
segundo.
Bien así que como conclusión de este ejercicio hemos visto como utilizar algunos de los cabeceros de
respuesta utilizando el API de los servlets.
Existen muchos usos más de este tipo.
Por ejemplo para generar informes de tipo pdf o para generar otro tipo de documentos como respuesta
hacia al cliente en lugar de mandar solamente texto HTML.
Así que existen muchos otros usos para utilizar los cabeceros de respuesta y poco a poco nos vamos a
ir familiarizando con este tipo de conceptos para que puedan integrarlo a sus propias aplicaciones Java.
Bien eso es todo por esta elección y nos vemos en los siguientes vídeos.
Saludos.