Download Sesion 2 - Emagister

Document related concepts
no text concepts found
Transcript
Programación Web con JAVA
Instructor: Carlos Carreño
Sesion 2
1. Aplicación del Lenguaje JAVA
Applets.
Un applet es un programa que viaja por la red desde un
servidor web y que se instala en la memoria RAM de la
maquina del cliente para ejecutarse dentro de una caja negra
(sanbox)
Configuracion del Apache Web Server.
Para publicar una aplicación que utilice el Web Browser
como cliente se necesita de la implementación de un
servidor web que es un tipo de servidor de archivos ,solo
que estos archivos tienen una extensión html, htm y están
escritos utilizando un lenguaje basado en marcadores o tags.
(Hiper Text Market Language).
Index.html
Index.html
Web Browser
Internet
Web Server
(Apache,IIS)
El Apache Web Server se configura mediante directivas que
se añaden al archivo httpd.conf. agrupadas en:
Programación Web con JAVA
!
Instructor: Carlos Carreño
Directivas Globales
ServerRoot "C:/Archivos de programa/Apache
Group/Apache"
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
!
Directivas del servidor principal
Port 80
ServerAdmin [email protected]
DocumentRoot "C:/Archivos de programa/Apache
Group/Apache/htdocs"
DirectoryIndex index.html
ErrorLog logs/error.log
CustomLog logs/access.log common
Programación Web con JAVA
Instructor: Carlos Carreño
Alias /icons/ "C:/Archivos de
programa/Apache Group/Apache/icons/"
ScriptAlias /cgi-bin/ "C:/Archivos de programa/Apache
Group/Apache/cgi-bin/"
<Directory "C:/Archivos de programa/Apache
Group/Apache/cgi-bin">
AllowOverride None
Options None
</Directory>
DefaultIcon /icons/unknown.gif
!
Directivas de los servidores virtuales
NameVirtualHost 12.34.56.78:80
<VirtualHost ip.address.of.host.some_domain.com>
ServerAdmin [email protected]_domain.com
DocumentRoot /www/docs/host.some_domain.com
ServerName host.some_domain.com
ErrorLog logs/host.some_domain.com-error_log
CustomLog logs/host.some_domain.com-access_log
common
</VirtualHost>
Programación Web con JAVA
Instructor: Carlos Carreño
Creación de un programa Applet.
Todo programa applet(clase) se crea a partir de la herencia
de la clase java.applet.Appet. asi tenemos:
import java.applet.Applet;
import java.awt.Graphics;
public class ClsApplet extends Applet{
public void paint(Graphics g){
g.drawString("Hola Mundo 1",10,10);
}
}
Porque no hay main?
Creación de la pagina web
Para enviar el programa applet al cliente se crea una pagina
web que realice una llamada al servidor web que despachara
el programa hacia el cliente.
Programación Web con JAVA
Instructor: Carlos Carreño
<HTML>
<HEAD>
<!-- Generated by Kawa IDE -->
<TITLE>Applet title</TITLE>
</HEAD>
<BODY>
<H1>First Heading</H1>
<HR>
<APPLET CODE="ClsApplet.class" WIDTH=300
</APPLET>
<HR>
</BODY>
</HTML>
HEIGHT=300>
La pagina web llama al applet a traves del tag
<APPLET CODE="ClsApplet.class" WIDTH=300
</APPLET>
HEIGHT=300>
El ancho del recuadro que aparece en la pagina web sera de
300x300 pixeles.
Ciclo de vida de un applet.
Cualquier clase que se desea enviar para que se ejecute del
lado del cliente puede ser enviada mediante un applet ,sin
embargo es recomendable conocer cual es el ciclo de vida para
colocar el código de la clase en el lugar correcto.
Stop()
Init()
Start()
Paint(Graphics g)
Repaint()
Destroy()
Programación Web con JAVA
Instructor: Carlos Carreño
Cual es el método obligatorio a implementar?
Que representa el objeto g, de la clase Graphics?
Aplicación de Interfaces
Creación de Threads.
Los threads son pequeños métodos que se ejecutan
independientemente uno de otro, las clases threads aprovechan
la capacidad de multitarea de los sistemas operativos como
Windows o Linux.
Para crear un thread debes implementar la Interface Runnable
o extender una clase a partir de la clase thread.
He aquí una implementación de Threads a partir de Runnable.
import java.awt.Graphics;
import java.util.*;
import java.text.DateFormat;
import java.applet.Applet;
public class Clock extends Applet implements Runnable{
private Thread clockThread = null;
Programación Web con JAVA
Instructor: Carlos Carreño
public void start(){
if(clockThread == null){
clockThread = new Thread(this,"Clock");
clockThread.start();
}
}
public void run(){
Thread myThread = Thread.currentThread();
while(clockThread == myThread){
repaint();
try{
Thread.sleep(1000);
}catch(InterruptedException e){}
}
}
public void paint(Graphics g){
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
DateFormat dateFormatter =
DateFormat.getTimeInstance();
g.drawString(dateFormatter.format(date),5,10);
}
public void stop(){
clockThread = null;
}
}
Programación Web con JAVA
Instructor: Carlos Carreño
La Pagina para mostrar el reloj debe contener.
<HTML>
<HEAD>
<!-- Generated by Kawa IDE -->
<TITLE>Applet title</TITLE>
</HEAD>
<BODY>
<H1>First Heading</H1>
<HR>
<APPLET CODE="Clock.class" WIDTH=300 HEIGHT=300></APPLET>
<HR>
</BODY>
</HTML>
2. Formularios HTML
Los Formularios HTML están formados por un conjunto de
controles encerrados entre los tags <FORM> y </FORM>
Asi:
<FORM NAME="formulario1"
ACTION="http://www.company.com/servlets/paymanager">
<INPUT TYPE="TEXT" NAME="shopingcard" >
<INPUT TYPE="PASSWORD" NAME="clave">
<INPUT TYPE="SUBMIT" VALUE="Aceptar">
</FORM>
Programación Web con JAVA
Instructor: Carlos Carreño
Controles standares del lenguaje HTML
Button
Checkbox
Hidden
Password
Radio
Reset
Select
Submit
Text
Textarea
Botones que permiten suministrar los datos al
programa que los trata.
Control utilizado para seleccionar multiples
opciones.
Caja de texto que permance oculta se utiliza
cuando se quiere ocultar un dato.
Caja de texto para el ingreso de una clave ,no
muestra los caracteres de la clave.
Control para seleccionar solo una opcion del
conjunto de opciones posibles.
Es un boton que reinicia los controles a su valor
por default.
Es un control que permite seleccionar un o mas
opciones de un conjunto limitado de las mismas
Es un boton que permite invocar desde el
browser al programa o URL asociada al
formulario suministrando los datos de los
controles.
Caja de texto utilizada para el ingreso de los
datos.
Es una caja de texto de multiples lineas al cual se
le añade un scroll para un mejor visualizacion de
las lineas de texto.
Programación Web con JAVA
Instructor: Carlos Carreño
Referenciando Objetos del Formulario
Los Controles de un formulario se referencian de dos
maneras:
a)
document.form[0].elements[0].value
o
b)
document.formulario1.shopingcard.value
Control Button
<INPUT TYPE="BUTTON" NAME="boton1"
VALUE="texto sobre el boton" onClick="script a ejecutar">
Ejemplo
<INPUT TYPE="BUTTON" NAME="boton1"
VALUE="Ayuda" onClick="getAyuda()">
Propiedades
name
Es el nombre con el cual se puede referenciar al control
value
Es el valor que sera mostrado por el Control
Programación Web con JAVA
Instructor: Carlos Carreño
document.formulario1.boton1.value="Ayuda en Linea"
Metodos
click()
simula el click del usuario sonbre el boton
Manejador de Evento
onClick()
Agrupa el codigo javascript que se ejecuta cuando el usario
hace click sobre el control o cuando se invoca al metodo click.
Control Checkbox
<INPUT TYPE="CHECKBOX" VALUE="valor de retorno
si se elige la opcion"> texto de titulo
Ejemplo
<FORM NAME="FMPedido">
<INPUT TYPE="CHECKBOX" NAME="chkpedido"
VALUE="Si"
onClick=" if (this.checked){ alert(' Su pedido ha sido enviado
correctamente!')}" > Desear Ordenar el Pedido?
</FORM>
Programación Web con JAVA
Instructor: Carlos Carreño
Propiedades
checked
retorna un valor boolean (true, false) indicando si el control
esta seleccionado
defaultchecked
retorna un valor booleano true si se ha utilizado el atributo
checked en el tag INPUT
** tambien posee el metodo click y el manejador de evento
onClick.
Ejercicio:
Cree la siguiente pagina web ,llamela pedido.html y abrala con
el Web Browser.(ie, netscape).
<html>
<head>
<title> Formularios HTML, Author: Carlos Carreño</title>
</head>
<body>
Programación Web con JAVA
Instructor: Carlos Carreño
<FORM NAME="FMPedido"
ACTION="http://www.company.com/servlets/pedido">
<INPUT TYPE="CHECKBOX" NAME="chkpedido"
VALUE="Si"
onClick=" if (this.checked){ alert(' Su pedido ha sido enviado
correctamente!')}" >
Desear Ordenar el Pedido?
<INPUT TYPE="Submit" Value="Enviar Pedido">
</FORM>
</body>
</html>
Control Text y Textarea
<INPUT TYPE="TEXT" NAME="nombre la caja de texto"
VALUE="Valor por defecto" SIZE="tamaño de la caja" >
Ejemplo
<INPUT TYPE="TEXT" NAME="username"
onBlur='if(this.value=="") {
alert("Este dato es requerido,por favor , no deje la
caja en blanco.")
this.focus()
}else{
alert("Gracias, "+this.value+"!") }'>
Programación Web con JAVA
Instructor: Carlos Carreño
propiedades
defaultvalue
valor de cadena que asigna un valor por defecto al control en
el tag INPUT en el atributo VALUE
Metodos
blur()
Causa la perdida del focus de la caja de texto
focus()
trae el focus hacia el control
select()
selecciona el texto de la caja
Manejadores de Eventos
onBlur
asigna el codigo javascript (js) que se ejecuta cuando el
control pierde el focus o se invoca al metodo blur().
Programación Web con JAVA
Instructor: Carlos Carreño
onFocus
asigna el codigo js que se ejecuta cuando el control gana el
focus o se invoca el metodo focus().
onSelect
asigna el codigo js que se ejecuta cuando se selecciona el texto
o se invoca el metodo select().
Ejercicio:
Cree y visualice la siguiente pagina
<html>
<head>
<title> Formularios HTML, Author: Carlos Carreño</title>
</head>
<body>
<FORM NAME="FMPedido"
ACTION="http://www.company.com/servlets/pedido">
<INPUT TYPE="CHECKBOX" NAME="chkpedido" VALUE="Si"
onClick=" if (this.checked){ alert(' Su pedido ha sido enviado
correctamente!')}" >
Desear Ordenar el Pedido?
<INPUT TYPE="TEXT" NAME="username" onBlur='
if(this.value=="") {
alert("Este dato es requerido,por favor , no deje la caja en
blanco.")
this.focus()
Programación Web con JAVA
Instructor: Carlos Carreño
}else{
alert("Gracias, "+this.value+"!")
}'>
<INPUT TYPE="button" Value="Enviar Pedido"
onClick="document.FMPedido.username.blur()">
</FORM>
</body>
</html>
Control radio button
Este control permite seleccionar solo una opcion de un grupo
de opciones disponibles.
<FORM NAME=”frmradio”>
Desea Agregar item?
<INPUT TYPE=”RADIO” NAME=”confirma”
VALUE=”Yes”>
<INPUT TYPE=”RADIO” NAME=”confirma”
VALUE=”No”>
</FORM>
Para referenciar los elementos del radio group los podemos
hacer como un arreglo asi:
Document.frmradio.confirma[0].value
Programación Web con JAVA
Instructor: Carlos Carreño
Propiedades
Checked
Contiene un valor booleano true si la opcion esta seleccionado
y false si no esta seleccionado.
Defaultchecked
True si el atributo checked fue utilizada en el tag INPUT del
radio button.
Length
Valor entero que indica el numero de elementos que tiene el
radio group.
** tambien tiene los atributos name, value ademas del metodo
clic() y evento onClick()
Ejemplo
<html>
<head>
<title> Formularios HTML, Author: Carlos Carreño</title>
<SCRIPT>
<!-function getRespuesta(){
var respuesta=""
for(i=0;i<document.frmradio.agregar.length;i++){
if(document.frmradio.agregar[i].checked){
respuesta=document.frmradio.agregar[i].value
Programación Web con JAVA
Instructor: Carlos Carreño
alert("Tu respuesta fue "+respuesta)
}
}
}
//-->
</SCRIPT>
</head>
<body bgcolor="#CCFF00">
<H1>Trabajo con radio group</H1><HR>
<FORM NAME="frmradio"
ACTION="http://www.company.com/servlets/clsradio" >
Desea agregar el Item?
<INPUT TYPE="RADIO" VALUE="yes" NAME="agregar" CHECKED>
Yes
<INPUT TYPE="RADIO" VALUE="No" NAME="agregar" > No
<INPUT TYPE="BUTTON" VALUE="Aceptar" onClick="getRespuesta()">
</FORM>
</body>
</html>
Programación Web con JAVA
Instructor: Carlos Carreño
Tag SCRIPT
Dentro de las paginas web podemos incrustar código fuente
que se ejecute del lado del cliente cuando se realice una
llamada a las funciones . el código que deseemos ejecutar los
podemos incrustar en lo eventos de los controles o mediante
funciones encerradas por el tag <SCRIPT> y </SCRIPT>.
Ejercicio
Crear una pagina HTML que valide si el se ingreso el login
y/o el password de un usuario.
El código que genera la pagina anterior es el siguiente:
<html>
<head>
<title> Formularios HTML, Author: Carlos Carreño</title>
Programación Web con JAVA
Instructor: Carlos Carreño
<SCRIPT>
<!-function Verify(){
if(document.frmlogin.username.value==""){
alert('Se necesita ingresar el login de usuario')
document.frmlogin.username.focus()
}
if(document.frmlogin.clave.value==""){
alert('Por Favor Ingrese la clave')
document.frmlogin.clave.focus()
}
}
//-->
</SCRIPT>
</head>
<body bgcolor="#CCFF00">
<H1>Validacion del Usuario</H1><HR>
<table>
<FORM NAME="frmlogin"
ACTION="http://www.company.com/servlets/clslogin"
onSubmit="Verify()">
<tr>
<td>Usuario</td>
<td><INPUT TYPE="TEXT" NAME="username" onClick='this.select()'">
</td>
</tr>
<tr>
<td>Clave</td>
<td><INPUT TYPE="PASSWORD" NAME="clave"
onClick='this.select()'> </td>
</tr>
<tr> <td><INPUT TYPE="SUBMIT" Value="Aceptar" ></td></tr>
</FORM>
</table>
</body></html>
Programación Web con JAVA
Instructor: Carlos Carreño
Control Select
Es el anologo al control combobox de otros lenguajes de
programación.
Se puede utilizar para seleccionar una opcion o varias
seteando el atributo MÚLTIPLE en el tag SELECT.
<SELECT NAME=”Combo” >
<OPTION> Primera Opcion
<OPTION SELECTED> Segunda Opcion
<OPTION> Tercera Opcion
</SELECT>
otra forma ,para permitir la selección múltiple.
<SELECT NAME=”mCombo” MULTIPLE SIZE=”3” >
<OPTION> Primera Opcion
<OPTION SELECTED> Segunda Opcion
<OPTION> Tercera Opcion
<OPTION> Cuarta Opcion
</SELECT>
Programación Web con JAVA
Instructor: Carlos Carreño
Ejemplo
<html>
<head>
<title>Formularios HTML,Author: Carlos Carreño
</title>
<SCRIPT>
<!-function goVisita(){
var lugar= new Array()
lugar[0]="http://www.visit.hawaii.org/"
lugar[1]="http://www.tahitiweb.com/"
lugar[2]="http://www.lankaweb.com/"
lugar[3]="http://www.peru.com/"
var i=document.frmvisita.cmblugar.selectedIndex
location.href=lugar[i]
}
//-->
</SCRIPT>
</head>
Programación Web con JAVA
Instructor: Carlos Carreño
<body bgcolor="#CCFF00">
<H1>Trabajo con el Control Select </H1>
<HR>
<FORM NAME="frmvisita"
ACTION="http://www.company.com/servlets/clsselect" >
<BR>
Seleccione el Lugar que desa Visitar.
<SELECT NAME=”cmblugar” onChange="goVisita()" >
<OPTION> Hawaii
<OPTION> Tahiti
<OPTION> Sri Lanka
<OPTION> Cusco
</SELECT>
</FORM>
</body>
</html>