3 Methodology of the study
3.6 Data collection process
JAVA TEMA 4: JAVA SERVLETS
Java Servlets son programas en java que son precompilados por el programador, entonces puestos en el servidor de paginas (web server) que los carga, compila y ejecuta al momento que un usuario remoto lo solicita, generalmente a travez de una pagina html. Es de tomar muy en cuenta que cuando el servidor de paginas carga y ejecuta un servlet, lo va mantener activo en memoria en su propio proceso por toda la vida del servidor de paginas ( es decir mientras no se resetee el servidor).
Es por esta situación que los servlets presentan ventajas y desventajas, la ventaja mas aparente es que si otros usuarios piden el mismo servlet, el servidor de paginas le respondera muy rapidamente, la desventaja aparente, es que si el servlet es muy especializado o de poco uso, estara vivo en memoria y consumiendo los recursos del computador, es por esta razón que se debera seleccionar muy cuidadosamente cuales programas o aplicaciones se deberan construir con esta tecnologia de servlets.
Otra elemento muy importante a tomar en cuenta en este JAVA TEMA , es que servlets y jsp (java server pages) interactuan con los usuarios a travez de paginas html, es decir no son programas visuales como JFRAME y APPLETS que interactuan por medio de ventanas o fromas visuales.
Nuestra interfase con los usuarios es a travez de paginas html, es decir una pagina html proporcionara los datos al servlet y tambien lo activa, el servlet recibe los datos, los procesa y le responde al usuario con otra pagina html.
Empezamos construyendo un programa normal de entrada/salida, el mas elemental de todos, de convertir la edad en años de una persona a meses.
Primero se debe construir la pagina.html que sera la primera que el usuario vera, la cargara con sus datos y al activarla por medio de su boton de ordenes correspondiente, mandara los datos al servlet y lo activara.
b.
c. Codigo.html <HTML>
<H1>MI PRIMER SERVLET</H1><BR>
<FORM ACTION=http://www.programacionfacil.com:9090/servlet/susitio.prog7 METHOD=POST>
NOMBRE<INPUT TYPE=TEXT NAME=NOMBRE><BR> EDAD<INPUT TYPE=TEXT NAME=EDAD><BR>
<INPUT TYPE=SUBMIT VALUE="OK"> </FORM>
</HTML>
En particular, a este tipo de paginas html, se les conoce como formas, proque llevan una instrucción FORM ACTION y algunos componentes visuales, como se ve en la corrida. La parte importante de la forma, esta delimitada por <FORM ACTION . . . </FORM>
En html, INPUT TYPE=text,submit,radio,checkbox,submit, etc, son equivalentes a controles visuales, en este ejemplo se estan usando 2 tipos de input type, dos controles de texto y un control de orden o comando, cada uno de ellos lleva sus propiedades, por ejemplo los de texto llevan un nombre y el de orden un mensaje ok.
Ccuando el usuario carga los datos en las cajas de text y apachurra(se oye mejor que click) en el control OK, se activa la acción de la forma (FORM ACTION) que consiste en mandar o postear(POST) al servidor los datos de las cajas de texto y la orden de que se active el "/servlet/"(esto es palabra reservada) prog7
UNIDAD 3: JAVA APLICACIONES EN RED
EL java servlet que se activa, basicamente debe tomar los datos que le llegan de la forma.html que lo mando llamar, despues procesar los datos y al final construir una pagina.html para regresarle la información al usuario.
El codigo.java es: import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
public class prog7 extends HttpServlet {
/**
* metodo HTTP POST para construir una pagina activa */
public void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter pagina;
String nombre=request.getParameter("NOMBRE"); String temp=request.getParameter("EDAD"); int edad = Integer.parseInt(temp);
edad=edad*12;
response.setContentType("text/html"); pagina = response.getWriter();
pagina.println("<HTML>");
pagina.println(nombre+" tu tienes :"+edad+"meses"); pagina.println("</HTML>");
pagina.close(); };
public void destroy(){super.destroy();}; }
notas:
• se crea prog7 y se deriva de clase httpservlet
• Un servlet no empieza con main() como JFRAME ni con init() como los applets
• Un servlet lleva y empieza con un metodo dopost(parametros) o doget(parametros), la diferencia entre dopost() y doget() es que este ultimo incluye de regreso no nada mas los datos que manda la forma.html sino tambien toda el url(http://www....), es por eso que es mas usual usar post en forma.html y dopost() en prog.java
• Los parametros son request y response que son objetos especiales del servidor, se utilizan para request=objeto que se usa para pedir datos y response=objeto que
se usa para responder con pagina(en unidad mas adelante se explica mas ampliamente estos objetos)
• Se crea un objeto pagina de tipo impresora
• Los dos datos que llegan de form.html vienen como strings, se deben recibir en variables de tipo strings y de ser necesario convertirlas a variables numericas normales, observar que se esta usando el objeto request y su metodo getparameter() para pedir o requerir la string.
• Empieza la respuesta, usando el objeto response e indicandole al servidor que construya una pagina text/html
• Apuntamos nuestro objeto pagina al response.getwriter()(constructor de paginas del servidor)
• Cargamos pagina.println() con el codigo html que el servidor usara para construir la pagina que le devolvera al ususario
• Cerramos el objeto pagina
• Destroy() se usa para eliminar de memoria el servlet que se activo y no quede vivo permanentemente.
• Este programa se debe compilar con javac y la clase asi como la pagina.html que lo llama se debera ftp al servidor de paginas.
La pagina de respuesta es:
TAREAS JAVA SERVLETS o JAVA SERVLET
5 programas de entrada/salida de los que se ven en el modelo de solución
UNIDAD 3:JAVA APLICACIONES EN RED
JAVA TEMA 6: JAVA JSP ( JAVA SERVER PAGE )
Java Server Page es otra de las nuevas tecnologias para tratar de hacer mas eficiente el modelo cliente-servidor y sobre todo la construcción de sisJAVA TEMA s de comercio electronico.
En este modelo, una pagina html tambien incluye codigo en java, es el servidor de paginas quien al estar mandando la pagina a la pc remota la compila y la convierte en un servlet.
Esta tecnologia combina en una sola aplicación, tanto codigo html como codigo java. El proceso de crear un jsp, es sencillo se crea un achivo normal con notepad combinando codigo html y codigo java, se graba con extension prog8.jsp, se ftp al servidor y listo. Cuando el usuario requiere un jsp, el servidor lo carga, lo compila, lo convierte a servlet y manda la pagina resultante al usuario remoto.
Empezamos con un pequeño ejemplo: prog8.jsp <HTML>
hola hoy es:<BR>
<%= new java.util.Date() %> </HTML>
solo grabarlo como prog8.jsp (ojo con notepad y su .txt), luego ftp a www.susitio.programacionfacil.com
y llamarlo con www.programacionfacil.com:1080/susitio/prog8.jsp
TAMBIEN YA HAY UN CURSO COMPLETO DE JAVA JSP AQUI EN WWW.PROGRAMACIONFACIL.COM
Para insertar codigo java dentro de una pagina html, se deberan usar una serie de tags o delimitadores ( en el ejemplo se esta usando <%= una sola instrucción de java %> ) donde cada uno de ellos tiene un proposito definido.
UNIDAD 3: APLICACIONES EN RED
JAVA TEMA 7: JAVA JSP CONTINUACION
Recordar que para todos los modelos vistos applets, servlets y ahora jsp, y los que faltan por ver java beans, ejb, etc, se ocupa que el servidor de paginas (web server) los soporte, es decir no nada mas basta hacer un servlet o un applet o un jsp subirlo a un servidor y presto ya todo el mundo lo puede usar.
En general, el web server lo que hace es convertir el codigo en java en un servlet, esto al tiempo que una pc remota hace un pedido de una pagina.jsp
Para empotrar el codigo de java en una pagina html y convertirla en una pagina jsp, se deberan utilizar ciertos tags o directivas, de las cuales existen las siguientes:
1.- Comentarios <%-- comentario --%> Ignorados cuando jsp es convertida a servlet y muy utiles para documentar nuestros programas jsp.
2.- Declaracion <%! Variables, metodos, etc %> Recordar que todo buen programa, empieza declarando variables.
Cada variable debera ser declarada de acuerdo a las reglas normales de java. Cada declaración termina con punto y coma (;)
Toda variable o metodo usado en el programa debera ser declarada primero.
3.- Instruccion <%= instruccion %> Para poner una y solo una instrucción de java, ademas recordar que ya existen aparte ciertas instrucciones o variables predefinidas, tales como request, response, out, session, application, config, and pageContext( tambien disponibles en scriptlets).
Recordar ademas que cuando se use <%= una sola instrucción %>, la instrucción no debe terminar con punto y coma.
<html>
<%! int base = 5, altura = 7 ; %>
El area del triangulo es <%= base * altura / 2.0 %> </html>
Se estan usando los dos primeros tags vistos, el de declaración y el de instrucción.
Grabarlo como prog9.jsp, ftp a su directorio normal y llamarlo desde su sitio como www.programacionfacil.com:9090/susitio/prog.jsp
4.- Scriptlet <% todo un programa completo %> Un scriptlet es un grupo de instruciones de java, como se deduce de esta definición, se usara muchos scriptltes en nuestras jsp. Aqui si, las instucciones deben terminar con punto y coma
Un bloque de instruciones <% bloque java %>, puede empezar (<%) en un scriptlet y terminar en otro scriptlet, pero asegurarse de que todos los scriptlets se abran y se cierren.
Ejemplo: <html>
<%! int base = 5, altura = 7 ; %> <% base * altura / 2.0;
new java.util.Date();
System.out.println( "hola mundo" ); %> </html>
Ejemplo, tambien se puede estarse intercambiando entre java y html cerrando y abriendo el scriplet, ejemplo;
<html>
<%! int base = 5, altura = 7 ; %> <% base * altura / 2.0;
new java.util.Date(); %> <BR> Hola HTML
<% System.out.println( "de regreso a scriplets" ); base + altura; %>
</html>
5.- Page Directive <%@ page atributo="valor" %> Instrucciones generales acerca de la pagina y java.
Su formato es atributo="valor" y pueden ser las siguientes: import="package.class", contentType="MIME-Type", isThreadSafe="true|false", session="true|false", buffer="sizekb|none", autoflush="true|false", extends="package.class", info="message", errorPage="url", isErrorPage="true|false", language="java".
De aqui una de las mas comunes es: <%@ page import="java.util.*" %> <HTML>
</HTML>
6.- Include Directive <%@ include file="url" %> Se usa para incluir achivos en la pc que compila la jsp, esto se realiza al tiempo que la jsp es convertida en servlet, el url debe ser relativo.
Para este caso tambien es valido:
jsp:include action para incluir el archivo al tiempo de request por parte de un usuario remoto
NOTA: HASTA AQUI SON LAS DIRECTIVAS O DELIMITADORES MAS COMUNES EN PROGRAMAS O APLICACIONES SENCILLAS, LOS DELIMITADORES DE MAS ABAJO SE USARAN EN JAVA TEMA S MAS ADELANTE
7.- jsp:include Action <jsp:include page="URL relativo" Flush="true"/>
Incluye el archivo al tiempo de request, no al tiempo de conversion jsp-servlet, como el caso 5.
8.- jsp:useBean Action <jsp:useBean att=val*/> o <jsp:useBean att=val*> ... </jsp:useBean> Encuentra o construye un Java Bean. Sus atributos son: id="name", scope="page|request|session|application", class="package.class", type="package.class", beanName="package.class"
9.- jsp:setProperty Action <jsp:setProperty att=val*/> Crea o define las propiedades generales de un JAVA BEAN ya sea en forma explicita o como un parametro que llego de un request.
Sus atributos són: name="beanName", property="propertyName|*", param="parameterName", value="val".
10.-jsp:getProperty Action <jsp:getProperty name="propertyName" value="val"/> Captura o despliega las propiedades de un BEAN.
11.- jsp:forward Action <jsp:forward page="URL relativo"/> Manda llamar o enlazar otra pagina.
UNIDAD 3: APLICACIONES EN RED
JAVA TEMA 8: JAVA JSP CONTINUACION
Empezemos recordando que ya existen en java jsp cuatro variables predefinidas que son: request, response, session y out, mismas que se pueden usar directamente para construir la pagina.jsp sin necesidad de tener que importar la libreria correspondiente, es decir solo hay que importar librerias exoticas como math, etc.
Bueno empezamos con la pagina.html que captura los datos y manda llamar la pagina.jsp ejemplo:
<HTML>
<BODY BGCOLOR="AQUA", TEXT="RED">
<FORM ACTION=http://www.programacionfacil.com:9090/susitio/prog.jsp METHOD="POST">
DAME TU EDAD<BR>
<INPUT TYPE="TEXT" NAME="EDAD" SIZE=30> <INPUT TYPE="SUBMIT" VALUE="OK">
</FORM> </BODY>
</HTML>
Como se observa es una pagina normal de captura, con su action apuntando a la pagina.jsp y su metodo post
En cuanto a la pagina.jsp, es la siguiente: <%! int edad; %>
<HTML><BR>
<% edad = Integer.parseInt(request.getParameter("EDAD")); edad=edad*12;
out.println("tu tienes "+edad+" meses"); %> <BR> </HTML>
Tan sencilla como un scriptlet y un uso racional de las variables predefinidas.
NOTA: En general el manejo de formas en jsp de manera mas normal es a travez de beans que son pequeñas clases precompiladas muy parecidas a un registro o estructura que almacenan información proveniente de la forma de captura y las pueden pasar a otras formas, sin embargo el uso de beans (no confundirlos con java beans), se deja de tarea al lector o esperarse a la actualización de este JAVA TEMA , el siguiente semestre.
POBLEMAS SUGERIDOS
TAREAS JAVA JSP CONSTRUIR 5 DE LOS PROBLEMAS DEL JAVA TEMA DE MODELO DE SOLUCION
UNIDAD 4: CONTROL DE PROGRAMA
JAVA TEMA 1: INTRODUCCION JAVA
En JAVA instrucciones de control de programa permiten alterar la secuencia normal de ejecución de un programa.
Estas instrucciones en java se dividen en tres grandes categorías: Instrucciones Condicionales que en Java se implementan con las instrucciones if() y switch().
Instrucciones de ciclos con for(), while(), do-while().
Muchas de ellas con sus correspondientes componentes visuales.