Java Developer - Modulo Ii - Clase 1 - Creacion Proyecto Web

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Java Developer - Modulo Ii - Clase 1 - Creacion Proyecto Web as PDF for free.

More details

  • Words: 2,638
  • Pages: 15
UNMSM

CLASE 1 Creando un proyecto Web Para desarrollar un proyecto Web, se debe crear una carpeta con el nombre del proyecto en este ejercicio crearemos una carpeta con nuestro apellido (durand) dentro de la carpeta webapps del Jakarta. En esta carpeta, crear la estructura de carpetas como se indica respetando los nombres para no tener problemas mas adelante, tener mucho cuidado de las mayúsculas como las minúsculas ya que esto siempre origina un problema muy común al momento de referenciar las ubicaciones.

Estructura del Proyecto WEB Los archivos .jsp pueden ir en la carpeta con el nombre de su aplicación o en la carpeta jsp o en las sub-carpetas creadas dentro de la carpeta jsp. En la carpeta WEB-INF\classes irán los archivos .class También puede crear carpetas internas dentro WEB-INF\classes y poner allí los .class, pero tendrá que utilizar la instrucción package para especificar el nombre de la carpeta interna. La carpeta images contendrá las imágenes a utilizar en el diseño y el desarrollo de la aplicación. Archivo de Configuración (web.xml) Este archivo debe ir en la carpeta WEB-INF del proyecto. Su contenido permite la configuración de arranque del proyecto, así como ciertas características para los demás archivos del proyecto. Creación del archivo web.xml Crear el archivo web.xml con el siguiente contenido inicial:

Durand Flores, Carlos Enrique

1

Java Developer – Modulo II

UNMSM

Archivo: web.xml <web-app> <welcome-file-list> <welcome-file>index.html <welcome-file>index.htm <welcome-file>index.jsp La configuración va dentro de los tags <web-app>… El tag <welcome-file-list> tendrá la lista de los posibles archivos de arranque del proyecto web. En este caso al digitar en el browser la dirección de nuestro proyecto http://localhost:8080/durand el servidor de aplicaciones Jakarta buscará presentar el primer archivo de la lista es decir el archivo index.html, si no lo hubiese buscara el segundo es decir el archivo index.htm, y finalmente si no encontrase ninguno de los archivo anteriores e la lista buscara el index.jsp. Se puede colocar solo un archivo de arranque del proyecto mediante el tag <welcome-file> asi el archivo que se quisiera servira de presentación al proyecto. Se Debe tenermucho cuidado al digitar estas etiquetas, pues las letras mayúsculas o minúsculas son sensibles en el llamado del archivo por el servidor de aplicaciones Jakarta. Tomcat Java Server Pages (JSP) Los JSPs nos permiten separar la parte dinámica de nuestras páginas web del HTML estático. Simplemente escribimos el HTML regular de la forma como lo hacemos regularmente, pero en cuando necesitemos ejecutar código Java entonces encerramos el código en unas etiquetas especiales, la mayoría de las cuales empiezan con "<%" y terminan con "%>" este tipo de programación es parecida a la del PHP en tipo script. Normalmente daremos a nuestro fichero una extensión .jsp, y normalmente lo instalaremos en el mismo sitio que una página web normal. Aunque lo que escribamos frecuentemente se parezca a un fichero HTML normal, detrás de la escena, la página JSP se convierte en un en un programa compilado (servlet), donde el HTML estático simplemente se imprime en el stream de salida estándar asociado. Esto normalmente sólo se hace la primera vez que se solicita la página, para esto los programadores pueden solicitar la página cuando instalan la aplicación para así estar seguros de que el primer usuario real de la aplicación no tendrá el retardo normal y momentáneo cuando la página JSP sea traducida y compilada por el servidor de aplicaciones.

Durand Flores, Carlos Enrique

2

Java Developer – Modulo II

UNMSM

Tags para los JSPs A continuación se muestra los tags usados por los JSPs en la programación de páginas: Elemento JSP Expresión JSP

Sintaxis <%= expression %>

Scriptlet JSP

<% code %>

Declaración JSP

<%! code %>

Directiva page JSP

<%@page att="val" %>

Directiva JSP

include

Comentario JSP

<%@ %>

include

file="url"

<%-- comment -- %>

Interpretación La Expresión es evaluada y situada en la salida. El código se inserta en el método service. El código se inserta en el cuerpo de la clase del servlet, fuera del método service. Dirige al motor servlet sobre la configuración general. Los atributos legales son (con los valores por defecto en negrita): • import="package.class" • contentType="MIMEType" • isThreadSafe="true|false" • session="true|false" • buffer="sizekb|none" • autoflush="true|false" • extends="package.class" • info="message" • errorPage="url" • isErrorPage="true|false" • language="java" Un fichero del sistema local se incluirá cuando la página se traduzca a un Servlet. Comentario ignorado cuando se traduce la página JSP en un servlet.

Una directiva JSP afecta a la estructura general de la clase. Normalmente tienen la siguiente forma: <%@ directive attribute="value" %> Sin embargo, también podemos combinar múltiples selecciones de atributos para una sola directiva, de esta forma: <%@ directive attribute1="value1" attributeN="valueN" %>

attribute2="value2"

...

Existen Tres tipos principales de directivas: page, que nos permite hacer cosas como importar clases, personalizar la superclase del servlet, etc.

Durand Flores, Carlos Enrique

3

Java Developer – Modulo II

UNMSM include, que nos permite insertar un fichero dentro de la clase servlet en el momento que el fichero JSP es traducido a un servlet. La directiva taglib, que no era soportada en JSP 1.0, pero se pretende que permita que los autores de JSP definan sus propias etiquetas. (Versión Actual de JSP 2.1) La directiva page La directiva page nos permite definir uno o más de los siguientes atributos sensibles a las mayúsculas: •

import="package.class" o import="package.class1,...,package.classN".

Esto nos permite especificar los paquetes que deberían ser importados. Por ejemplo: <%@ page import="java.util.*" %> El atributo import es el único que puede aparecer múltiples veces. • contentType="MIME-Type" charset=Character-Set"

o

contentType="MIME-Type;

Esto especifica el tipo MIME de la salida. El valor por defecto es text/html. Por ejemplo, la directiva: <%@ page contentType="text/plain" %> tiene el mismo valor que el scriptlet <% response.setContentType("text/plain"); %> •

isThreadSafe="true|false".

Un valor de true (por defecto) indica un procesamiento del servlet normal, donde múltiples peticiones pueden procesarse simultáneamente con un sólo ejemplar del servlet, bajo la suposición que del autor sincroniza las variables de ejemplar. Un valor de false indica que el servlet debería implementar SingleThreadModel, con peticiones enviadas serialmente o con peticiones simultáneas siendo entregadas por ejemplares separados del servelt. •

session="true|false".

Un valor de true (por defecto) indica que la variable predefinida session (del tipo HttpSession) debería unirse a la sesión existente si existe una, si no existe se debería crear una nueva sesión para unirla. Un valor de false indica que no se usarán sesiones, y los intentos de acceder a la variable session resultarán en errores en el momento en que la página JSP sea traducida a un servlet. •

buffer="sizekb|none".

Esto especifica el tamaño del buffer para el JspWriter out. El valor por defecto es específico del servidor, debería ser de al menos 8kb. •

autoflush="true|false".

Un valor de true (por defecto) indica que el buffer debería desacargase cuando esté lleno. Un valor de false, raramente utilizado, indica que se debe lanzar una excepción

Durand Flores, Carlos Enrique

4

Java Developer – Modulo II

UNMSM cuando el buffe se sobrecargue. Un valor de false es ilegal cuando usamos buffer="none". •

extends="package.class".

Esto indica la superclase del servlet que se va a generar. Debemos usarla con extrema precaución, ya que el servidor podría utilizar una superclase personalizada. •

info="message".

Define un string que puede usarse para ser recuperado mediante el método getServletInfo. •

errorPage="url".

Especifica una página JSP que se debería procesar si se lanzará cualquier Throwable pero no fuera capturado en la página actual. •

isErrorPage="true|false".

Indica si la página actual actúa o no como página de error de otra página JSP. El valor por defecto es false. •

language="java".

En algunos momentos, esto está pensado para especificar el lenguaje a utilizar. Por ahora, no debemos preocuparnos por él ya que java es tanto el valor por defecto como la única opción legal. Creación de un archivo JSP En la carpeta con su apellido (durand) poner el archivo index.jsp cuando se termine de programarlo y para poder ejecutar en el browser colocar este URL http://localhost:8080/durand.

Durand Flores, Carlos Enrique

5

Java Developer – Modulo II

UNMSM

Archivo: index.jsp <TITLE>CINFO - Java Developer
<% for(int i=1; i<=6; ++i) out.println("Java Developer..!"); %>
Invocación al MS Word El siguiente es un JSP que invoca al MS Word y lo incrusta en el browser, poniendo texto en un documento, En la carpeta de su proyecto web o en la carpeta jsp poner el archivo msword.jsp.

Durand Flores, Carlos Enrique

6

Java Developer – Modulo II

UNMSM

Nota: Para ejecutar esta JSP correctamente se debe tener instalado el Microsoft Word. Para poder ejecutar en el http://localhost:8080/durand/jsp/msword.jsp

browser

colocar

este

URL

Archivo: msword.jsp <%@ page contentType="application/msword" %> Una prueba de JSP que llama a Microsoft Word Importar bibliotecas de Java El siguiente es otro ejemplo que nos permite importar bibliotecas de Java para usar de ellas métodos en nuestra JSP. Para poder ejecutar en el http://localhost:8080/durand/jsp/librerias.jsp

Durand Flores, Carlos Enrique

7

browser

colocar

este

URL

Java Developer – Modulo II

UNMSM

Archivo: librerias.jsp <%@ page import="java.util.*" %> <TITLE>Funciones Matemáticas

Funciones Matemáticas

3 al cuadrado es <% out.println(Math.pow(3,2)); %>

Raíz cuadrada de 110 es <% out.println(Math.sqrt(110)); %>

La directiva include Esta directiva nos permite incluir ficheros en el momento en que la página JSP es traducida a un servlet. La directiva se parece a esto: <%@ include file="url relativa" %> La URL especificada normalmente se interpreta como relativa a la página JSP a la que se refiere, pero, al igual que las URLs relativas en general, podemos decirle al sistema que interpreta la URL relativa al directorio home del servidor Web empezando la URL con una barra invertida. Los contenidos del fichero incluido son analizados como texto normal JSP, y así pueden incluir HTML estático, elementos de script, directivas y acciones.

Durand Flores, Carlos Enrique

8

Java Developer – Modulo II

UNMSM

Prueba de Include A continuación veremos en un ejemplo el uso de include. Los archivos a utilizar serán include01.jsp e include02.jsp Ambos deben estar en la misma carpeta virtual (jsp) y se debe invocar al archivo include01.jsp Este insertará al otro dentro de si. Para ejecutar en el browser http://localhost:8080/durand/jsp/include01.jsp

colocar

el

URL

Archivo: include01.jsp <TITLE>Prueba de include Archivo: include01.jsp

Hora y tiempo actual
<%@ include file="include02.jsp" %> A continuación desarrollaremos el archivo include02.jsp que será invocado e insertado en el archivo include01.jsp Archivo: include02.jsp <%@ page import="java.util.*" %> <%@ page import="java.text.*" %> <% SimpleDateFormat sdf= new dd/MM/yyyy"); Date d= new Date(); String s= sdf.format(d); out.println(s); %>

Durand Flores, Carlos Enrique

SimpleDateFormat

9

("hh:mm:ss

a

'de'

Java Developer – Modulo II

UNMSM Métodos para enviar datos al Servidor Web Una de las partes más comunes de una aplicación de comercio electrónico es un formulario HTML en el que un usuario introduce alguna información. La información podría ser un nombre de cliente y su dirección, una palabra o frase introducida para un motor de búsqueda, o un conjunto de preferencias lanzadas como datos del mercado. La información que el usuario introduce en el formulario se almacena en el objeto request, que se envía desde el cliente al motor JSP. La siguiente figura representa como fluyen los datos entre el cliente y el servidor (al menos cuando usamos la implementación JSP de Sun Microsystems, otros motores JSP podrían trabajar de forma diferente).

El motor JSP envía el objeto solicitado a cualquier componente del lado del servidor (JavaBeansTM , servlet, o bean enterprise) que especifica el JSP. El componente maneja la solicitud, posiblemente recuperando datos desde una base de datos u otros datos almacenados, y pasa un objeto respuesta de vuelta al motor JSP, donde los datos se formatean de acuerdo al diseño de la página HTML. El motor JSP y el servidor Web entonces envían la página JSP revisada de vuelta al cliente, donde el usuario puede ver el resultado, en el navegador Web. Los protocolos de comunicación usados entre el cliente y el servidor pueden ser HTTP, o cualquier otro protocolo. Los objetos request y response están siempre implícitamente disponibles para nosotros como autores de ficheros fuentes JSP. Método Get

Durand Flores, Carlos Enrique

10

Java Developer – Modulo II

UNMSM El método Get añade los datos del formulario (llamada una query string (string de solicitud)) a una URL, en la forma de parejas clave/valor desde el formulario HTML, por ejemplo, name=john. En el String de solicitud las parejas de clave/valor se separan por caracteres &, los espacios se convierten en caracteres +, y los caracteres especiales se convierten a sus correspondientes hexadecimales. Como el String de solicitud está en la URL, la página puede ser añadida a los bookmarks o enviada por e-mail con el string de solicitud. Tener en cuenta que este string normalmente está limitado a un número relativamente pequeño de caracteres. Ejemplo Metodo Get El siguiente ejemplo envía 2 valores al Servidor los cuales son sumados por él. Archivo: metodoget01.jsp <TITLE>Metodo Get
<% if(request.getQueryString() == null) { %>
Valor 1
Valor 2

<% } else { double Double.valueOf(request.getParameter("v1")).doubleValue(); double Double.valueOf(request.getParameter("v2")).doubleValue(); out.println("

Suman: " + (x + y) + "

"); out.println("

"); out.println("Retornar"); } %> Nota:

x= y=

Se puede obviar escribir method=Get en el tag
porque el método Get es el usado por defecto.

Durand Flores, Carlos Enrique

11

Java Developer – Modulo II

UNMSM

Resultado en el browser: • Cuando se ejecuta el if porque el JSP lleva null la primera vez las cajas de texto están en blanco ponga valores en ellas: •

Cuando se da clic en el botón (Observe el Address del browser).

Ejemplo sin boton submit. La aplicación anterior puede también ser escrita sin el botón submit y manipular posibles errores de ingreso. Ver el siguiente código: Archivo: metodoget02.jsp <TITLE>Get

Durand Flores, Carlos Enrique

12

Java Developer – Modulo II

UNMSM
<% if(request.getQueryString() == null) { %> Valor 1
Valor 2

¿Cuánto suman? <% } else { try{ double x= Double.valueOf(request.getParameter("v1")).doubleValue(); double y= Double.valueOf(request.getParameter("v2")).doubleValue(); out.println("

Suman: " + (x + y) + "


"); }catch(NumberFormatException ex) { out.println("Error en ingreso de valores

"); } out.println("Retornar"); } %>

Método Post

Durand Flores, Carlos Enrique

13

Java Developer – Modulo II

UNMSM El método Post, pasa los datos de una longitud ilimitada como un cuerpo de solicitud de cabecera HTTP hacia el servidor. El usuario que trabaja en el navegador cliente no puede ver los datos que están siendo enviados, por eso la solicitud POST es ideal para enviar datos confidenciales (como el número de una tarjeta de crédito) o grandes cantidades de datos al servidor. El siguiente ejemplo envía mediante un HTML el nombre, email y el color de preferencia para el texto a un JSP. Ejemplo Metodo POST El ejemplo consta de un HTML y un JSP. A continuación el código y figura del HTML: Archivo: metodopost01.html HTML que envia datos a JSP
Nombre
Email
Color favorito <Select name="fgColor">



Durand Flores, Carlos Enrique

14

Java Developer – Modulo II

UNMSM

Archivo: metodopost01.jsp <TITLE>Recibe Datos de HTML ">

Prueba de datos

<% out.println("

Hola " + request.getParameter("nombre") + " bienvenido a está página"); out.println("

Su email es " + request.getParameter("email")); %>

Durand Flores, Carlos Enrique

15

Java Developer – Modulo II


Related Documents