Вы находитесь на странице: 1из 23

Nombre del Documento

LENGUAJE JSP

Nombre del Documento

Ttulo del Documento


PRIMER MOMENTO.QUE ES JSP
JSP es un lenguaje que queda embebido dentro del HTML, y en el que se crean unas
plantillas usadas con un servlet genrico que el programador nunca ve. Estas plantillas
estn escritas en HTML/CSS/JavaScript y en Java. Teniendo en cuenta que el JavaScript
se ejecuta en el cliente y el Java en el servidor. En el servidor puede comunicarse con
aplicaciones de escritorio y objetos de Java, as como con applets.
La especificacin JSP 1.1 extiene la API de Java Server. Como hemos visto, ambas
forman parte de la Java 2 Platform Enterprise Edition (J2EE). Informacin especfica de
JSP se puede conseugir en el sitio web de Sun en http://java.sun.com/products/jsp.
1. Directivas
Una directiva de JSP es una estamento que proporciona la informacin del motor de JSP
para la pgina que la pide. Su sintaxis general es <%@ directiva {atributo ="valor"} %>
dnde la directiva debe tener un nmero de atributos. Cada directiva tiene un XML
opcional equivalente, pero esto son intentos para una futura herramienta JSP, por esto no
lo consideraremos ahora.
Posibles directivas en JSP 1.0 son:
Page: Informacin para la pgina.
Include: Incluye archivos completos palabra por palabra.
Taglib: La direccin de la librera de tags que se usar en la pgina.
Tal y como esperabamos, la directiva Page posee varios atributos.
Atributos y posibles valores Descripcin
- language="java". Comunica al servidor el lenguaje que va a ser utilizado en el archivo.
Java es el nico posible es esta especificacin
- extends="package.class". La variale extends, define la clase padre del
servlet generado. Normalmente no es necesario utilizar otras que no sean las clases base
del proveedor.
-import="package.*,package.class". Sirve para especificar los paquetes y clases que se
quieran utilizar.
- session="true|false". Por defecto session vale true, manteniendo los datos de las sesin
para la pgina.
- isThreadSafe="true|false". Por defecto vale true, le hace seales al motor de
JSP para que multiples pedidos del cliente puedan ser tomadas como una.

Nombre del Documento


-info="text". Informacin en la pgina a la que puede accederse a travs del mtodo
Servlet.getServletInfo()
- errorPage="pagina_error" Pgina que manejar las excepciones de errores.
isErrorPage="true|false" Marca a la pgina como la pgina que manejar
2. Declaraciones
Una declaracin de JSP, puede definirse como una definicin de variables y mtodos a
nivel de clase que son usadas en la pgina.
Un bloque de declaraciones tpico sera <%! declaracin %>
Un ejemplo de declaracin de script sera el siguiente:
<HTML>
<HEAD>
<TITLE>Pgina simple JSP</TITLE>
</HEAD>
<BODY>
<%! String strCadena = "x";
int intContador = 0;
%>
</BODY>
</HTML>
3. Scripts de JSP
Los Scripts son bloques de cdigo Java residentes entre los tags <% y %>.
Este bloques de cdigo estarn dentro del servlets generado includos en mtodo
_jspService().
Los Scripts pueden acceder a cualquier variable o Beans que haya sido declarado.
Tambin hay algunos objetos implcitos disponibles para los Scripts desde entorno del
Servlet. Vamos a verlos a continuacin.
- request. Es la peticin del cliente. Es normalmente una subclase de la case
HttpServletRequest.
-request.getParameter(String arg). Retorna el valor del Atributo (objeto) almacenado en la
sesin actual, y cuyo nombre es arg( que corresponde a un objeto String). Este mtodo
retorna el valor null si el atributo no existe.
String cedula= request.getParameter(Cedula);

Nombre del Documento

- request.setAttribute(String nombre, Object valor): almacena un Atributo (objeto) en la


sesin haciendo uso del nombre como del valor en el argumento.
request.setAttribute("area", new String().valueOf(area));
request.setAttribute("formula", tipoArea);
- response. Es la pgina JSP de respuesta y es una subclase de HttpServletResponse.
- pageContext. Los atributos de la pgina y los objetos implcitos necesitan ser accesibles
a travs de API, para permitir al motor de JSP compilar la pgina. Pero cada servidor
tiene implementaciones especficas de cada uno de esos atributos y objetos.
Para solucionar este problema, el motor de JSPutilizar la clase Factory para devolver la
implementacin de clase PageContext del servidor. Esta clase PageContext es
inicializada con los objetos response y request y algunos atributos de la directiva de la
pgina (erropage,session,buffer and autoflush) y facilita los otros objetos implcitos para la
pagina de peticin.
- session El objeto de sesin HTTP asociado a la peticin.
- application. Lo que devuelve el servlet cuando se llama a getServletConfig().getContext()
- out. El objeto que representa la salida de texto por pantalla.
- config. El objeto ServletConfig de la pgina.
- page. Es la forma que tiene la pgina para referirse a si misma. Se usa como alternativa
al objeto this
- exception. Es una subclase libre de Throwable que es pasada a la pgina que maneja
los errores
4. Catlogo de tipos de tags JSP
Las pginas en JSP se escriben bsicamente en DHTML (HTML +CSS+JavaScript), pero
con introduccin de partes adicionales que son scripts de servidor escritos en Java. Estos
scripts de servidor vienen incluidos con los tags <% .. %>
Scriptlets
1. Hacer una pgina en JSP que liste los 10 primeros nmeros enteros.
<html>
<body>
<%
int i;
for (i=0; i<10; i++) {
out.println(i+"
");
}
%>
</body>
</html>

Nombre del Documento


2. Hacer una pgina JSP que liste los 100 primeros cuadrados
<html>
<head>
<style>
td { font-family:verdana; font-size:9pt; }
</style>
</head>
<body>
<table>
<%
int i;
for (i=0; i<100; i++) {
out.println("<tr><td>" + i + "</td><td>" + (i*i) + "<br>");
}
%>
</table>
</body>
</html>

3. Hacer una pgina JSP que muestre el resultado del juego 7 pum hasta 100. El juego consiste en ir
contando y cada vez que el nmero sea divisible por 7 o terminado en 7 entonces se reemplaza por PUM y se
salta de lnea.
<html>
<head>
<style>
body { font-family:verdana; font-size:9pt; }
i { color:red; font-weight:bold; }
</style>
</head>
<body>
<%
int i;
for (i=1; i<100; i++) {
if ( ( i % 7 == 0 ) || ( i % 10 == 7 ))
out.println("<i>PUM</i><br>");
else
out.println( i + " " );
}
%>
</body>
</html>

Expresiones
Cuando necesitamos mostrar una expresin debemos usar los tags <%= ... %>
As:
Archivo (inicial.jsp)
<%@ page language=java %>

<html>
<body>

Nombre del Documento


Vamos a crear una variable en JSP<br>
<% int variablePrueba = 10; %>
<p> Y ahora mostramos que la variable es <%= variable %> </p>
</body>
</html>
En el cliente la pgina que llega es solo HTML:
<html>
<body>
Vamos a crear una variable en JSP<br>
<p> Y ahora mostramos que la variable es 10 </p>
</body>
</html>
Puede ser un clculo que se va a hacer a travs de Java, ya sea usando Java Local o un
bean o un servlet.
Hay otros como <jsp:UseBean ... />, <jsp:getProperty ... />, <jsp:setProperty ... />
Declaraciones
Las variables que son globales a la clase y los mtodos que tienen mbito de clase se
declaran entre los tags <%! ... %>
<html>
<body>
<h1> hola Declaracin </h1>
</body>
</html>
<%!
private int i=4;
public void MiMetodo () {
// Ejecuta alguna accin aqu.
}
%>

5. Acciones

Nombre del Documento


Las acciones son etiquetas HTML que se interpretan en la fase de traduccin y que
realizan diferentes operaciones.
jsp:include
Sintaxis:
<jsp:include page="direccion de la otra pgina">
<jsp:param name="nombreParametro1" value="valorParametro1"/>
<jsp:param name="nombreParametro2" value="valorParametro2"/>
</jsp:include>
Delega temporalmente el procesamiento de la sesion al recurso especificado en el
atributo page sobre el que se aplica. Esta accin admite especificar parmetros mediante
la accion jsp:param.
Por ejemplo, si queremos ir temporalmente a una pagina2 y pasar como parmetro una
variable llamada x que tenga un valor y, bastara con hacer:
<jsp:include page=pagina2?>
<jsp:param name=x value=y/>
<jsp:include/>
jsp:forward
Sintaxis
<jsp:forward page="direccion de la otra pgina">
<jsp:param name="nombreParametro1" value="valorParametro1"/>
</jsp:forward>
Delega el procesamiento de la sesion al recurso especificado en el atributo page sobre el
que se aplica. Esta accin admite especificar parmetros mediante la accin jsp:param.
Por ejemplo, si queremos ir a una pagina2 y pasar como parmetro una variable llamada
x que tenga un valor y, bastara con hacer:
<jsp:forward page=pagina2?>
<jsp:param name=x value=y/>
<jsp:forward/>

Nombre del Documento

SEGUNDO MOMENTO. CREACION DE LA APLICACION

Pulsar la opcin New Project

Java >> Web Application. Botn Next

Nombre del Proyecto: JSPBasico.


Pulsar el Botn Next

Nombre del Documento

Pulsar el Botn Finish


Se genera un Proyecto

Nombre del Documento


PRIMER PASO. ACTIVIDADES SOBRE <default package>
Actividad 1. Creacin Paquete
Sobre <default package> >>New>>java Package

Nombre Paquete: JSPCliente. Pulsar Tecla Finish

10

Nombre del Documento


Segunda Actividad. Creacin Clase Token
Sobre el paquete JSPCliente >>New>>Java Class

Nombre de Servlet: Token

Reemplazar contenido por:


package JSPCliente;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.*;
import java.text.*;
public class Token
{
int i;
public boolean soloFecha(String P)
{
DateFormat FormatoFecha=DateFormat.getDateInstance(DateFormat.SHORT, new
Locale("es"));
if (P == null)
{
return false;
}
FormatoFecha.setLenient(false);
try {
FormatoFecha.parse(P.trim());

11

Nombre del Documento


}
catch (ParseException pe)
{
return false;
}
return true;
}
public boolean soloCorreo(String P)
{
Pattern correo = Pattern.compile("^([0-9a-zA-Z]([_.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[09a-zA-Z].)+([a-zA-Z]{2,9}.)+[a-zA-Z]{2,3})$");
Matcher m = correo.matcher(P);
return m.find();
}
public boolean soloNumero(String P)
{
Pattern numero = Pattern.compile("^([0-9])+$");
Matcher m = numero.matcher(P);
return m.find();
}
public boolean soloTitulada(String P)
{
Pattern titulada = Pattern.compile("^[A-Z]{1}[a-z]+$");
Matcher m;
String cadena[]=P.split(" ");
for(i=0;i<cadena.length;i++)
{
m=titulada.matcher(cadena[i]);
if(!m.find())
{
return false;
}
}
return true;
}
}

12

Nombre del Documento


PASO 2. ACTIVIDADES SOBRE web Pages
Primera Actividad. Archivo css
Adicionar Hoja de Estilo en Cascada (CSS).

Web Pages>>new>>Other>>Web>>Cascading Style Sheet

Botn Next>
Nombre de Archivo: estilos. Pulse el Botn Finish

13

Nombre del Documento


Reemplazar estilos.css por el siguiente cdigo:
body {
font-size: 0.875em;
font-weight: normal;
font-family: Tahoma, Arial, Helvetica,
Verdana, sans-serif;
background: #edeae8;
color: inherit;
}
#encabezado, #contenido{
float: left;
width: 100%;
text-align: left;
}
#contenido{
float: left;
margin: 0 0 0 2em;
}
h1, h2 {
font-weight: normal;
margin: 1em 0 2em 0;
line-height: 100%;
font-family: Oxygen, sans-serif; }
th { font-weight: bold; }
th, td {
border: 1px solid #181e23;
font-size: 1em;
padding: 0.5em;
}
label, button, input {
font-size: 1.125em;
margin: 0 0.5em 0 0;
width:6em;
}
table tr td
{ background: #F0EFE2;
color: #47433F;
border-top: 1px solid #FFF;
}

14

Nombre del Documento


Segunda Actividad. Editar Archivo index.html

Seleccione index.html. Se reemplace el contenido con el siguiente cdigo html:


<!DOCTYPE html>
<html>
<head>
<title>JSP AJAX</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<center>
<a href='/JSPBasico/Captura.jsp'>Captura de Jugadores</a>
</center>
</body>

15

Nombre del Documento


Tercera Actividad. Archivo Captura.jsp
Adicionar JSP.

Web Pages>>new>>Other>>Web>>JSP

Nombre de JSP: Captura . Pulsar Finish

Reemplazar contenido por:


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<TITLE> CLIENTES </TITLE>
<link rel="stylesheet" type="text/css" href="estilos.css" title="style" />
</head>
<body>
<center>
<div id="encabezado">
<h1> EMPRESA LOS LAURELES</h1>
<h3> BOGOTA D.C </h3>
<h5> Nit 133-1223433-3</h5>
</div>
<br>
</center>
<div id="contenido">
<form action="http://localhost:8080/JSPBasico/JSPToken.jsp" method="POST">
<table width="600">

16

Nombre del Documento


<tr>
<th>Cedula:</th>
<td><input name="Cedula" type="text" id="cedula"></td>
</tr>
<tr>
<th>Nombre:</th>
<td><input name="Nombre" type="text" id="nombre"></td>
</tr>
<tr>
<th>Domicilio:</th>
<td><input name="Domicilio" type="text" id="domicilio"></td>
</tr>
<tr>
<th>Telefono:</th>
<td><input name="Telefono" type="text" id="telefono"></td>
</tr>
<tr>
<th>Boton de Envio</th>
<td><input type="submit" name="envio" id="envio">
</tr>
</table>
<br>
</form>
</div>
</body>
</html>

17

Nombre del Documento


Cuarta Actividad. Adicionar JSPToken.jsp
Adicionar JSP.

Web Pages>>new>> JSP

Nombre de JSP: JSPToken . Pulsar Finish

Reemplazar contenido por:


<%@page contentType="text/plain" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
JSPCliente.Token T=new JSPCliente.Token();
String Cedula=request.getParameter("Cedula");;
String Nombre=request.getParameter("Nombre");
String Domicilio=request.getParameter("Domicilio");
String Telefono=request.getParameter("Telefono");
String cumple="SI";
boolean transmite=true;
transmite=transmite & T.soloNumero(Cedula);
transmite=transmite & T.soloTitulada(Nombre);
transmite=transmite & T.soloTitulada(Domicilio);
transmite=transmite & T.soloNumero(Telefono);
if(!transmite)
{
cumple="NO";
if(!T.soloNumero(Cedula))
Cedula=Cedula+" no es numero";
if(!T.soloTitulada(Nombre))
Nombre=Nombre+" no es titulada";

18

Nombre del Documento


if(!T.soloNumero(Telefono))
Telefono=Telefono+" no es numero";
if(!T.soloTitulada(Domicilio))
Domicilio=Domicilio+" no es titulada";
}
%>
<jsp:forward page="ActualCliente.jsp">
<jsp:param name="Cedula" value="<%=Cedula%>"/>
<jsp:param name="Nombre" value="<%=Nombre%>"/>
<jsp:param name="Domicilio" value="<%=Domicilio%>"/>
<jsp:param name="Telefono" value="<%=Telefono%>"/>
<jsp:param name="cumple" value="<%=cumple%>"/>
</jsp:forward>
%>
</body>
</html>

19

Nombre del Documento


Quinta Actividad. Archivo ActualCliente.jsp
Adicionar JSP.

Web Pages>>new>> JSP

Nombre de JSP: ActualCliente. Pulsar Finish

Reemplzar contenido por:


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
String Cedula=request.getParameter("Cedula");;
String Nombre=request.getParameter("Nombre");
String Telefono=request.getParameter("Telefono");
String Domicilio=request.getParameter("Domicilio");
String cumple=request.getParameter("cumple");
%>
Cedula: <%=Cedula%> <br>
Nombre: <%=Nombre%> <br>
Domicilio: <%=Domicilio%> <br>
Telefono: <%=Telefono%> <br>
Se cumple las validaciones: <%=cumple%> <br>
<center>
<a href='/JSPBasico/Captura.jsp'>Captura de Jugadores</a>
</center>
</body>
</html>

20

Nombre del Documento


TERCER PASO. EJECUCION DEL PROGRAMA
Primer Paso. Detener Servidor

Segundo Paso. Clean and Build

Tercer Paso. Deploy

Cuarto Paso. Run

21

Nombre del Documento

Se valida que:
Cedula y Telfono Sea Numrico
Nombre y Domicilio sea Titulada (Primera Letra Mayscula y las dems Minusculas)

22

Nombre del Documento

23

Вам также может понравиться