Menú Curso Java Web (JSP's/Servlets) : Código Fuente VerificarRegistro.java para generar un Tag JSP a medida

(Anterior) Tags JSP's hechos a Medida ("Custom")

VerificarRegistro.java

package com.osmosislatina.taglib;

import javax.servlet.http.*;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.util.*;
import java.io.*;


public class VerificarRegistro extends TagSupport
{
// La página a la que será redireccionado el usuario private String paginaRegistro = "/jspregistro/registro.jsp"; private String paginaInicial = "/jspregistro/index.jsp"; private String usuario; public int doStartTag() throws JspException { return SKIP_BODY; }
    public int doEndTag() throws JspException
    { 

      // Existe un usuario valido
      boolean valido = false;
      HttpSession session = pageContext.getSession();
      String valor = (String) session.getAttribute("subscriptor");
      if ( valor != null)  { 
      valido = true;
      }

      // Enviar Control en Base a Resultados anteriores 
      if (valido)    
          return EVAL_PAGE;
      else {
          try {
	      // Extraer/Colocar pagina visitada (URL) en la sesion.
	      session.setAttribute("refInicial",paginaInicial);
              pageContext.forward(paginaRegistro);
              
              } catch (Exception e) {

             throw new JspException(e.toString());

              }
             return SKIP_PAGE;
            }
        }
}

  • El primer paso de esta Clase es definir la librería ("package") a la cual pertenecerá e importar todas aquellas librerías/clases que son necesarias para generar el Tag.

  • Posteriormente se inicia la declaración de la clase la cual hereda ("inherit") el comportamiento de la Clase Base TagSupport, esta última es la que siempre debe emplearse al crearse un JSP hecho a medida; esto permite acceso a los métodos base para Tags a medida que son: doStartTag() y doEndTag().

  • Antes de iniciar cualquier método se declaran los campos que serán utilizados en la clase, paginaRegistro que indica el lugar donde será enviada la requisición en caso de no estar registrado el usuario, paginaInicial que indica el JSP donde será enviado el usuario en caso de ser validado, y subscriptor utilizado para extraer el valor de la sesión en cuestión.

  • El método doStartTag() empleado para dar instrucciones que serán utilizadas al encontrarse el inicio del Tag, no ejecuta ningún tipo de lógica.

  • El método doEndTag() contiene la lógica principal del Tag, el primer paso dentro de éste es generar/extraer la sesión del usuario, posteriormente, si la variable subscriptor extraída de la sesión tiene un valor diferente a null esto indica que el usuario se encuentra registrado, por lo que la variable valido es cambiada hacia un valor de verdadero, caso contrario el valor de valido seguirá siendo falso.

  • Una vez llevada acabo la verificación de registro, se utiliza la siguiente condicional:

    • Si la variable valido es verdadera (el usuario esta registrado) retornar el valor EVAL_PAGE lo cual indica que se continúe evaluando el JSP en cuestión y por ende el usuario será capaz de observar la página.

    • Si la variable valido permaneció con el valor de falso , entonces se intenta redirigir al usuario a la páina de registro mediante el método forward disponible tanto en JSP's como Servlets.

    • Finalmente aunque no haya sido posible redirigirse o haya ocurrido cualquier otro error, retornar el valor SKIP_PAGE lo cual garantiza que toda información por debajo del Tag no sea observada.

Terminos Legales de Contenido ©2000-2011 Osmosis Latina

Diseñado bajo estándares : XHTML   CSS  

webmaster@osmosislatina.com