Diferencia entre revisiones de «Usuario:ManuelRomero/despliegue»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con '===Conceptos generales=== <br/> {{Conocimiento previo| #Fichero de configuración de tomcat '''''./tomcat/conf/server.xml''''' #Directiva para donde buscar los ficheros de las a…')
 
Línea 1: Línea 1:
 +
{{:Usuario:ManuelRomero/micursos/Tomcat/nav}}
 +
<br>
 +
 
===Conceptos generales===
 
===Conceptos generales===
 
<br/>
 
<br/>

Revisión de 08:57 24 nov 2012



Conceptos generales



Icon preknowledge.gif

Conocimiento previo

  1. Fichero de configuración de tomcat ./tomcat/conf/server.xml
  2. Directiva para donde buscar los ficheros de las aplicacioes appBase
  3. Por defecto valor de appBase "webapp"



Elementos de una aplicación web
  1. servlets
  2. páginas jsp
  3. ficheros html,imágenes,texto, css,sonitos, fídels, etc
  • La aplicación se crea en un directorio
  • El directorio debe de colgar en el directorio base de tomcat que cuelga en el indicado en appBase

Comenzando a desarrollar la aplicacion y despliegue

  • Vamos a realizar una muy sencilla aplicación para ver el despliegue
  • Se trata de una aplicación cliente/servidor que cumpla las siguientes especificaciones

{{Ejemplo| Un cliente solicita una página web llamada acceso.jsp El servidor le da una página html donde se me muestra un formulario para insertar mi nombre, apellido y edad

servlets
aplicación java encargada de realizar un servicio específica dentro de un servidor web
La especificación 2.4 define la estructura de directorios para los ficheros de una aplicación web
Aquí puedes ver el fichero completo de la especificación final Archivo:Javaservletspecivication 2 4.pdf
  • Este podría ser un ejemplo sacado de la propia especificación pág 69-70
/index.html
/howto.jsp
/feedback.jsp
/images/banner.gif
/images/jumping.gif
/WEB-INF/web.xml
/WEB-INF/lib/jspbean.jar
/WEB-INF/classes/com/mycorp/servlets/MyServlet.class
/WEB-INF/classes/com/mycorp/util/MyUtils.class
  • los directorios/ficheros en negrita son obligatorios

Estructura de directorios

  • El directorio raiz contendrá el nombre de la aplicación
  • Todos los ficheros que cuelguen de él se pueden servir al cliente menos los que cuelguen de directorios META-INF y WEB-INF
  • Normalmente después de realizar el desarrollo se empaquetarán en un archivo .war
  • Una estructura de directorios almacenará el código necesario para ejecutar la aplicación.
  • Una aplicación web se estructura en tres capas:

EstructuraTresCapas.png

Archivos War

  • WAR Web Applicatio Archive (Archivo de Aplicación Web)
  • Es una forma de empaquetar en un fichero la estructura de directorios que conforman la aplicación web
  • Por lo tanto contendrá
  1. Servlets y JSP
  2. Contendio estático HTML, css, imágenes
  3. Otros recursos web
  • Facilitan enormemente el despliegue web
  • Su estructura ya vista anteriormente
/
Es la carpeta raiz del proyecto
En el se crean más subdirectorios para organizar la información
Los ficheros aquí ubicados serán accesibles por el cliente
Habrá html, js`, css, imágenes, videos, ...
/WEB/INF/
Elementos de la configuración .WAR web.xml
Suelen estar la página de inicio, ubiciación de los servlets, parámetros
/WEB/INF/clases/
Las clases JAVA empleadas en el archivo .WAR
Suelen encontrarse los servlet
/WEB/INF/lib/
Contiene ficheros jar utilizados por la aplicación
Por ejemplo para contectarse a la base de datos

Creación del fichero .WAR

  • Los entornos de desarrollo tipo Eclipse, NetBeans y otro tipo de IDE (JBuilder, JDeveloper) poseen la opción para ello.
  • Otro modo en mediante Ant herramienta open-source que facilita la contrucción de aplicaciones Java

Haciendo un ejemplo sencillo

  • Realizaremos un sencillo ejemplo para ver el proceso de despliegue
  • Nuestra aplicación tendrá
  1. una página html que me pedirá nombre, apellido y edad
    1. Lo presentará como un formulario
  2. Un servlet que procesará dichos datos
    1. En este caso sólo los tomará y me los visualizará en otra página html que el servidor devolverá al cliente
  3. Necesitamos tener instalado e iniciado el contenedor de servlet (tomcat) éste se informará con un fichero 'wweb.xml de todos los servlets disponibles

Archivo:Xml.png

=Estructura de directorios

WebApp ==> 
      DatosUsuario (datos.html)==>
                         WEB-INF (web.xml)==>
                              clases(ProcesaDatos.class)
                               

http://tomcat.apache.org/tomcat-7.0-doc/proxy-howto.html#Apache_2.0_Proxy_Support

Fichero html

<!--Param.html	Lectura de parámetros con formularios + servlets -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD><TITLE>Param.html</TITLE></HEAD>
  <BODY BGCOLOR="#CCCCFF">
  <P></P>
  <H2>Introduce tus datos:</H2><BR>
   <%     
   java.util.Date today = new java.util.Date();     
   out.println("Today's date is: "+today);     
   %>  
    <HR></HR>
    <CENTER>
	 <FORM NAME="FORM1" METHOD="POST"
		ACTION="http://localhost:8080/misServlets/ParamServlet">
	   <TABLE BORDER>
		<TR>
		  <TD><B>Nombre:</TD>
		  <TD><INPUT TYPE=TEXTBOX NAME="NOM" SIZE="25" VALUE=""></TD>
		</TR>
		<TR>
		  <TD><B>Edad:</TD>
		  <TD><INPUT TYPE=TEXTBOX NAME="EDA" SIZE="20" VALUE=""></TD>
		</TR>
	   </TABLE>
	   <P></P>
	   <INPUT TYPE=SUBMIT VALUE="Enviar">
	   <HR></HR>
	   Formulario HTML que invocará a un servlet
         </FORM>
      </CENTER>
  </BODY>
</HTML>
<!DOCTYPE HTML>
<html>
  <head>
     <title>Mi primer despliegue web con servlet</title>
  </head>
  <body>
 ...
 
	 <form name="MisDatos" method="POST"
		ACTION="http://localhost:8080/DatosUsuario/ProcesaDatos">
	   <table border>
		<tr>
		  <td><B>Nombre:</td>
		  <td><input type=TEXTBOX name="NOM" size="25" value=""></TD>
...
 
</html>
  • Se ha hecho una tabla y se ha dado un color de fondo para darle más vistosidad
  • Es importante entender el valor del atributo ACTION

El servlet: ProcesaDatos.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class ParamServlet extends HttpServlet {
 
	private static final long serialVersionUID = 1L;
 
	public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		// Obtenemos un objeto Print Writer para enviar respuesta
		res.setContentType("text/html");
		PrintWriter pw = res.getWriter();
		pw.println("<HTML><HEAD><TITLE>Leyendo parámetros</TITLE></HEAD>");
		pw.println("<BODY BGCOLOR=\"#CCBBAA\">");
		pw.println("<H2>Leyendo parámetros desde un formulario html</H2><P>");
		pw.println("<UL>\n");
		pw.println("Te llamas " + req.getParameter("NOM") + "<BR>");
		pw.println("y tienes "  + req.getParameter("EDA") + " años<BR>");
		pw.println("</BODY></HTML>");
		pw.close();
	}
}

Referencias

Página donde explica el proceso http://elblogdepicodev.blogspot.com.es/2011/02/unir-apache-httpd-y-tomcat-mediante-un.html