lunes, 4 de agosto de 2014

de Swing a Web

¿cuentas con una aplicación de "escritorio" (Swing) y quieres crear su equivalente en aplicación Web?

En este post proponemos una estrategia para ello:

Utilizaremos MVC pero sin el uso de algún framework  para ello.





¡Tu aplicación de "escritorio" ya cuenta con BEAN´s y DAO´s y con su respecta manipulación de datos (operaciones CRUD) ?
Entonces sólo hace falta el controlador (servlet) y la vista (jsp) para tener la replica como aplicación web.
Entonces...     comenzamos!!!





  • proyecto Swing
  • BD
  • controlador
  • Vista




  •  swing

    El proyecto de escritorio "swing" es de la autoría de un alumno de 3° "C", en la DATIC-UTEZ
    https://www.facebook.com/jorge.zmoke
    Tomo el proyecto para abordar un ejemplo del procedimiento para replicarlo en versión Web.

    Descargar proyecto



    BD


    Descargar base de datos para este proyecto
    autoría del mismo alumno de 3° "C".

    Aplicación WEB:

    Primero debemos crear un nuevo proyecto java web
    copiar los paquetes: bean, dao y util
    El resto de paquetes (considerando este proyecto) no se utiliza en una aplicación web. 

    Agregamos las librerías (sqljdbc4.jar)
    Además en la aplicación web utilizaremos la librería JSTL para mostrar tabla de registros (en este caso autores).








     Controlador

    Declaramos los métodos necesarios para atender las operaciones CRUD:


    Tomemos en cuenta que un Servlet puede responder a través de response (HttpServletResponse) o redireccionar a un recurso: como puede ser un html, jsp, otro Servlet e incluso a si mismo (dado que todo Servlet es un recurso).
                  

    Creamos un nuevo Servlet llamado Autor (en el paquete controlador).

    Programamos processRequest (método que se ejecuta sin importar si la solicitud al Servlet es get o post):

    La línea 39, recupera el parámetro llamado action el cuál contiene la información que informa de la solicitud del cliente. Sin embargo, puede suceder que no se especifique el parámetro action, en cuyo caso la variable operacion tomaría el valor de null. Razón por la que se incluye la línea 40.

    La línea 61 redirecciona a un recurso especificado en la variable irA que por default es index.jsop (ver línea 38).

    Si y sólo si la operacion es diferente de null (línea 40), se revisará si la operación (petición del usuario) es alguna de las siguientes:

    • formAdd
    • crear
    • consultar
    • formEdit
    • modificar
    • eliminar


    ¿cuál es la diferencia entre formAdd y crear ?
    formAdd se utilizará para redireccionar al formulario que permita especificar los datos del nuevo registro, mientras que crear tomará los datos del formulario y procederá a guardar/crear/insertar el nuevo registro.
    y...
    ¿cuál es la diferencia entre formEdit y modificar?
    formEdit recuperará los datos del registro a editar (por medio de su ID) y redireccionará  al formulario que permita modificar el registro, haciendo llegar los datos del registro para colocarlos por default y que el usuario ya no transcriba todos los datos y sólo modifique los campos que requiera.
    modificar (semejante a crear) toma los nuevos datos del registro, indicados en el formulario, y procede a guardar los cambios.

    De la imagen anterior, se puede ver como el Servlet Autor, si ejecuta la línea 79, está actualizando el recurso al que redireccionará (irA)  que en este caso es a si mismo, pero con el parámetro action=consultar. Lo que resulta en que una vez que se agrega el nuevo registro, se procede a consultar y mostrar los registros, con lo que le demuestra al usuario que se eliminó el registro al "actualizar" la tabla y estar ausente el registro eliminado.

    processEdit (ver siguiente imagen)

    Recupera el id del registro a modificar (línea 148), convierte a el id (pID) a entero (línea 151), recupera los datos del autor a partir de su id (línea 152), agrega a request un atributo con el nombre "attAutor" cuyo valor es el autor recuperado (línea 153).
    Actualiza el nombre del recurso al que se redireccionará (línea 154)
    En caso de existir un error al recupera el id/convertirlo a entero, se agrega un atributo llamado "mensaje" con el valor de una cadena de texto informando del error y actualiza el recurso al que redireccionará (línea 157).







    En la imagen anterior se aprecia el código del método processActualizarRegistro que es muy semejante al de crear (proccessNuevoRegistro), con la diferencia de recuperar el ID (líneas 119,125).
    Y del DAO llama al método actualizar en lugar de insertar,
    estos dos métodos en el DAO (actualizar e insertar) también son semejantes cambiando principalmente al preparar la sentencia SQL.

    Para eliminar y consultar
    prácticamente sólo se hace uso del DAO que copiamos de la aplicación de escritorio (swing)




    Vistas

    Creamos/diseñamos el index.jsp utilizando bootstrap

    Y diseñamos el formulario para un nuevo registro en (autorC.jsp), para hacerlo rápidamente, utilizamos http://bootsnipp.com/forms?version=3 (para saber como utilizar la herramienta visite  blog twitter-bootstrap)


    Al terminar autorC.jsp realizamos una copia y renombramos a autorU.jsp (para editar autor) aplicando sólo algunos ajustes dado que el formulario es semejante.



    En autorR.jsp se imprime la tabla con los registros.
    recomiendo visitar el blog: recorrer-colecciones-con-jstl

    Descargar la aplicación web

    blog en proceso...

    No hay comentarios.:

    Publicar un comentario