Está en la página 1de 25

COMUNICACIÓN ENTRE

PÁGINAS WEB:
PASO DE PARÁMETROS
Rebeca León González Practica II
JSP
• JSP se usa explícitamente para crear aplicaciones web dinámicas. Las páginas creadas con
JSP son más sencillas de administrar en comparación con un Servlet.
• JSP significa Java Server Pages.
• JSP es un lenguaje de secuencias de comandos del lado del servidor: las secuencias de
comandos del lado del servidor significan que el código JSP se procesa en el servidor web
en lugar de en la máquina del cliente.
• La página JSP es un archivo con una extensión .JSP  que contiene podría ser la
combinación de  etiquetas HTML y códigos JSP.
• JSP se utiliza para crear aplicaciones web dinámicas.
• JSP es una versión extendida mejorada de la tecnología Servlet.
Transición de una página JSP a otra JSP
(enlaces).

JavaServer Pages (JSP) (http://java.sun.com/jsp) es una tecnología basada en el lenguaje Java


que permite incorporar contenido dinámico a las páginas web. Los archivos JSP combinan
HTML con etiquetas especiales y fragmentos de código Java.
Redireccionar de una pagina a otra con enlaces es un sencillo mecanismo, que nos suelen ofrecer
todos los lenguajes de servidor, mediante el cual la petición sobre una página es encaminada a
otra.
En JSP tenemos acceso a un conjunto de objetos del contesto de la página. Entre ellos Response
 y Request. Estos vienen a reflejar la petición y respuesta de dicha página.
En el objeto Response contamos con el método .sendredirect(URL), el cual permitirá reenviar el
flujo a una nueva URL. Podemos utilizarlo de la siguiente forma:

<% response.sendRedirect("http://www.lineadecodigo.com/"); %>

Esta única línea de código nos bastará para realizar nuestro cometido de tener la JSP
redireccionando a otra Web.
La petición de una JSP con el
método GET.
Este método envía los parámetros de forma explicita junto a la página, mostrando en la
barra de navegación los parámetros y sus valores. Son esas largas cadenas que aparecen en
algunas páginas en nuestra barra de navegación, del estilo:

buscar?id=1806&valor=0987&texto=todo&...

Las cadenas toman el aspecto

parametro1=valor1&metro2=valor2&....&metroN=valorN.

Es decir es una concatenación a través de & de pares parámetro-valor.


Ejemplo get
<html>
<body>
<form action="login" method="get">
<table>
<tr>
<td>User</td>
<td><input name="user" /></td>
</tr>
<tr>
<td>password</td>
<td><input name="password" /></td>
</tr>
</table>
<input type="submit" />
</form>
</body>
</html>
package com.edu4java.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; Recibiendo los datos del formulario
public class LoginServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String user = req.getParameter("user");
        String pass = req.getParameter("password");
        if ("edu4java".equals(user) && "eli4java".equals(pass)) {
            response(resp, "login ok");
        } else {
            response(resp, "invalid login");
    }
  }
    private void response(HttpServletResponse resp, String msg)
            throws IOException {
        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<t1>" + msg + "</t1>");
        out.println("</body>");
        out.println("</html>");
  }
}
La petición de una JSP con el
método POST.

Este método solo esta accesible desde los formularios. Se envían los parámetros de forma
implícita junto a la página, es decir, al pasar los parámetros, no se ve reflejado en ningún
sitio qué parámetros son y cual es su valor.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Recogiendo los datos(w3big.com)</title>
</head>
<body>
<h1>método POST nombre</h1>
<ul>
<li><p><b>ejemplo:</b>
<%
String nombre = new String((request.getParameter(“nombre")).getBytes("ISO-8859-1"),"UTF-8");
%>
<%= nombre %>
</p></li>
<li><p><b>ejemplo:</b>
<%= request.getParameter("url")%>
</p></li>
</ul>
</body>
</html>
Scriptlets y expresiones en una
JSP.
En la etiqueta Scriptlet, evalúa su expresión Java pero no imprime ni muestra su
resultado junto con el HTML creado. Las variables declaradas solo tienen un alcance
local y, por lo tanto, no pueden tener acceso desde otro lugar en el .jsp.

<!DOCTYPE html>
<html>
<head>
<title>ejemplo</title>
</head>
<body>
<% application.setAttribute(“nombre", "Alex"); %>
<a href="show.jsp"> click para ver</a>
</body>
</html>
<!DOCTYPE html> <html>
<head>
<title>Ejemplo</title>
</head>
<body>
<%="A String value:" %> <br />
<%= application.getAttribute(“nombre") %>
</body>
</html>
La etiqueta de expresión tiene la capacidad de evaluar la expresión de Java. Se utiliza
para insertar el resultado en forma de cadena junto con el HTML en el JSP.
No tiene que escribir out.println en la etiqueta de expresión para imprimir la salida
basada en expresión porque estos se cambian a la instrucción out.print().

<!DOCTYPE html>
<html>
<head>
<title>Etiqueta de expresion</title>
</head>
<body>
<%= 2+4*5 %>
</body>
</html>
Los tags en una JSP.
Una etiqueta JSP consiste básicamente en una implementación de la interfaz Tag (o una
«subinterfaz»), y en la definición de la misma en un fichero XML llamado Tag Library Descriptor
(TLD para los amigos).El tld puede definir todas las etiquetas o tags que se quieran lo que permite
simplificar la creación y utilización de librerias o colecciones de etiquetas.
Para utilizar la etiqueta hay que crear el TLD correspondiente e importarlo en la JSP.Vamos a
crearlo con el nombre dm.tld (es el prefijo que usaremos para todas las etiquetas que queramos
definir en el mismo tld) y lo ubicaremos en el mismo directorio que el web.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1"> 
 
    <tlibversion>1.0</tlibersion>
    <shortname>dm</shortname>  
    <info>ejemplos de introducción al desarrollo de etiquetas para JSP </info>
    <tag>
        <name>helloWorld</name>
        <tagclass>com.danielme.blog.jsptags.HelloWorldTag</tagclass>
        <info>imprime un hello world en negrita</info>
           <body-content>empty</body-content>
    </tag> 
</taglib>
Se han definido los siguientes valores:

•tlibversion: (obligatorio): versión que se quiera dar a la libreria de tags.


•shortname: (opcional): prefijo recomendado para las etiquetas (en la JSP se usará el prefijo que se
establezca al importar el tld). Debe ser lo más corto posible, los nombres descriptivos los dejaremos
para las etiquetas.
•info: (opcional): descripción de la libreria de etiquetas.
•body-content: (obligatorio para SimpleTagSupport): cuerpo de la etiqueta.Si no lo admitimos
será empty, en otro caso scriptless.

Cada etiqueta se define dentro de un elemento tag. Para este ejemplo tan simple se han usado los
siguientes atributos:
•name: (obligatorio): el nombre de la etiqueta.
•tagclass: (obligatorio): clase que implementa la etiqueta.
•info: (opcional): descripción de la etiqueta. Conviene definirla ya que, por ejemplo, Eclipse la
mostrará como la ayuda contextual de la etiqueta.
En nuestra JSP se importa el TLD indicando su ruta y el prefijo a utilizar para sus etiquetas y ya
estamos en condiciones de utilizar la etiqueta.

<%@ page contentType="text/html;charset=UTF-8"%>


<%@taglib prefix="dm" uri="/WEB-INF/dm.tld"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
 
<html> 
    <head>     
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP TAGS DEMO</title>     
    </head>
 
    <body>     
        <h2>Implementación de etiquetas en JSP 2.1</h2>
        <dm:helloWorld/>         
    </body>
 
</html>
Recepción de los valores de radio-button y checkbox .
El index.jsp, captura los datos del usuario por medio de radio-botones y casillas de verificación :
Los datos capturados en index.jsp se envían a paginaDestino.jsp, la cual muestra la información recibida
Recepción de valores en lista de
opciones (combo box, listbox).
En un combo box solamente se puede seleccionar una opción. La página destino obtiene el valor
seleccionado con el valor de su atributo, es decir, como se hace para los campos de texto o
los radio-botones. Sin embargo, cuando se trata de una lista con múltiples opciones (list box),
es necesario un poco más de procesamiento.
Se muestra una página index.jsp que captura la información del usuario por medio de una combo box y
una list box. Su código es el siguiente:

La páginaDestino.jsp recibe la información de index.jsp y la despliega


En el código de páginaDestino.jsp podemos observar que, para obtener todas las opciones que
seleccionó el usuario para el atributo “lenguajes”, en el scriptlet del principio se captura la referencia al
arreglo de String que contiene las opciones seleccionadas. Posteriormente, con la combinación de un
scriptlet y una expresión se despliegan estas opciones en la página.
Recepción de un área de texto
La recepción de los caracteres que escribe el usuario en un área de texto, es muy sencilla, y se hace de la
misma manera que para un campo de texto. El siguiente código es de la página origen index.jsp, cuya
pantalla se muestra en la Figura III5-a)
La página de la Figura III5a) contiene el texto que introdujo el usuario en el área de texto 2, en la
Figura III5 b) la página destino muestra el texto recibido como parámetro en el atributo área 2.
El código de la página destino de la Figura III5 b) es el siguiente:
FUENTES UTILIZADAS

http://www.w3big.com/es/jsp/jsp-custom-tags.html
https://javaweb.osmosislatina.com/curso/tags.htm
https://danielme.com/2012/08/15/desarrollo-de-etiquetas-jsp/
http://www.cua.uam.mx/pdfs/revistas_electronicas/libros-electronicos/2017/java/Java.pdf

También podría gustarte