Desarrollo WEB.


Las practicas de programación orientadas a la web son muy cambiantes en el tiempo. Es necesario conocer e implementar tecnologías, conocer lenguajes,integrar comunidades,usar Ides, etc, recientes, para responder al mercado que se acerca.

Mostrando entradas con la etiqueta jsp. Mostrar todas las entradas
Mostrando entradas con la etiqueta jsp. Mostrar todas las entradas

viernes, 29 de marzo de 2013

Configurando Suse 12.3 para Desarrollo de Software

Este pequeño tutorial presenta una serie de pasos básicos para configurar un linux suse en su versión 12.3 y empezar a desarrollar aplicaciones web con netbeans 7.3, glassfish y postgres.
  • Después de instalar suse 12.3, ejecutar Actualización del Sistema. 
     
  • Configurar Internet. 


     
  • Instalar filezilla para accesos por ftp 
     
    • Descargar rpm 64 bit
    • Click derecho sobre el rpm - abrir con - añadir/quitar programas
  • Instalar navegador Google Chrome 
     
    • zypper ar http://dl.google.com/linux/chrome/rpm/stable/x86_64 Google-Chrome (para 64 bit)
    • zypper ref
    • zypper in google-chrome-stable
  •  Instalar postgres 


        
    • instalar unixODBC desde el gestor de software
    • Descargar la ultima versión de postgres desde aqui
    • ingrese a gestor de archivos modo super usuario
    • Click derecho sobre el archivo .run - propiedades - pestaña permisos - es ejecutable - aceptar
    • Espere un poco mientras abre el Instalador en modo gráfico.
    • Directorio de instalación /opt/PostgreSQL/9.2/
    • mediante stack builder instalar pgJDBC y psqlODBC
  • Instalar java SE 

     
    • descargar java jdk y java jre, ultima versión desde aqui
    • tener en cuenta descargar las versiones adecuadas.
    • Click derecho sobre el rpm - abrir con - añadir/quitar programas
    • tener en cuenta el siquiente post 
  • Instalar NetBeans 7.x 
     
    • Descargar ultima versión desde aqui
    • Click derecho sobre el archivo.sh - propiedades - pestaña permisos - es ejecutable - aceptar.
    • Ejecutar netbeans, activar plugins y actualizar.
  • Instalar XAMPP.  
     
    • descargar ultima versión desde aqui  
    • ingrese en una terminal en modo super usuario y descomprima usando tar xvfz xampp-linux-1.8.1.tar.gz -C /opt
    • Para arrancar simplemente use /opt/lampp/lampp start
    •   ...
Esto es todo hasta el momento, luego actualizare con otras cositas acerca de glassfish 3.x y netbeans 7.3

jueves, 21 de marzo de 2013

Blog Java.

Para lo seguidores del mundo java, este es un super blog con información muy importante para tener en cuenta en nuestras aplicaciones web empresariales.
Enlace. http://www.mkyong.com/

martes, 23 de noviembre de 2010

Modelado de Software mediante UML2

Aplicación WEB para el Control en Línea de Reservas de Salas del Departamento de TICS en la I.E. Los Pinos.

Este proyecto es desarrollado como trabajo final en la asignatura de Ingenieria de Software II  bajo la supervicion del Ingeniero Edwardo Millan a quien agradezco profundamente por las enseñanzas brindadas en clase.


Propósito del sistema

Sistema de información en línea (Aplicación Web), que permite llevar a cabo el control general para un departamento de TIC (Tecnologías de la información y la comunicación), en la Institución Educativa Los Pinos de la Ciudad de Florencia.

Sistema propuesto

Se Propone el desarrollo de un sistema de control orientado a la web para el control de un Departamento de Tecnologías de la Información y la Comunicación permitiendo realizar gestión de recursos, usuarios y control de salas de sistemas. Como el proyecto abarca gran tiempo en el desarrollo de sus módulos se desarrollara para esta primera versión solo el modulo de reserva de salas en línea.

Requerimientos funcionales 
    • ·         Consultar Horario de Disponibilidad de las Salas. 
    • ·         Ver historiales de reservas y ver reserva actual en servicio. 
    • ·         Realizar reservas en línea. 
    • ·         Un administrador de salas debe aprobar o rechazar la solicitud de una reserva y enviar por correo electrónico un mensaje de aprobación o rechazo al solicitante. 
    • ·         Ingresar novedades por parte del administrador o ingresar recomendaciones de parte del usuario servido, si existen, al terminar cada uso de sala (reserva). 
    • ·         Gestionar Inventarios de salas de sistemas (Hardware y Software) y actualizar inventarios a medida que vallan surgiendo novedades durante el préstamo de las salas. (Pendiente por falta de tiempo)
    • ·         Gestionar usuarios del Sistema (Listar, editar, eliminar, agregar, actualizar). 
    • ·         Entregar y Recibir salas por parte del administrador de las salas y el usuario que usa el servicio de reserva. 
    • ·         El Administrador deberá Generar Reportes en .PDF de forma mensual para cada sala.

    Requerimientos no funcionales 

      • ·         El software debe estar desarrollado (construido) en una herramienta libre (NetBeans 6.8) y con almacenamiento de datos en un motor libre (mysql). 
      • ·         Desarrollo en lenguaje Java (JSP) en combinación con tecnología ajax usando el Framework Ext.js de Sencha. 
      • ·         Debe estar Desarrollado aplicando una arquitectura J2EE
      • ·         Uso de la metodología de desarrollo de software RUP 
      • ·         Uso de la herramienta Visual Paradigm para modelamiento UML.

        domingo, 9 de mayo de 2010

        Tecnologia Arrastrar y soltar elementos WEB con AJAX (JSP, Java, MySql, Javascript, CSS,JQuery)

        La respuesta rapida y eficiente a una peticion realizada por un usuario (cliente) acredita y potencializa la vida actual del software y su sobrevivencia al medio (Servidor e Internet).
        Como dijo mi amigo Darwin Todo es Evolucion, aun la mas simple libreria existente actualmente para el ambiente web, empezo con unas pequeñas lineas de codigo con redundancia y simpleza. Hoy en dia las librerias evolucionan a un ritmo impresionante con tecnicas que en realidad me asustan. Sino Veamos Algunas de ellas y de quienes vivo muy agradecido por brindar sus recursos a la comunidad desarrolladora del mundo.

        Hablemos un poco de AJAX. Ajax no es un lenguaje, ni un API mucho menos, Ajax es un a tecnica de  pogramacion para el engranaje de apis en diferentes lenguajes de forma eficiente y adaptable a los nuevos entornos web 2.0
        Si bien diversos navegadores existen en la actualidad es porque la limitacion de la evolucion en la tecnologia no existe en esta era ni mucho menos lo sera en las que vienen, y bien, tambien muchos desarrolladores se han ido involucrando en la creacion de mecanismos (Api´s,. IDE´s, Motores de BD, Servidores, Librerias, Frameworks, etc) que con mucho esfuerzo y dedicacion nos hacen la vida facil a muchos que los usamos sus creaciones y las adaptamos a nuestras aplicaciones web.

        Es Gracias a Todos Ellos que ahora puedo escribir personalizadamante este tipo de recursos y compartirlos con ustedes.

        • JQuery
        • Mootools
        • Mail
        • JfreeChart
        • Itext
        • JDom
        • etc.
        Hasta Este momento supongo que la persona que va a observar este tutorial sabe de:
        • Tecnologia Java y JSP (Servlet)
        • Hojas de Estilo CSS
        • Javascript - Jquery (Framework Javacript)
        • Mysql (SQL)
        • Servidores TOMCAT o RESIN 
        • AJAX
        Bueno ahora si vamos a ver el Ejemplo 100% Funcional
        Para ahorrarme la descripcion del ejemplo he puesto los comentarios en todos los codigos (API) usados.

        SQL
        -- 
        -- Estructura de tabla para la tabla `tabla`
        -- 
        CREATE TABLE `tabla` (
          `nombre_li` varchar(50) NOT NULL,
          `posicion` varchar(100) NOT NULL,
          `id` int(11) NOT NULL
        ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
        
        INSERT INTO `tabla` VALUES (\'listItem_1\', \'2\', 1);
        INSERT INTO `tabla` VALUES (\'listItem_2\', \'1\', 2);
        INSERT INTO `tabla` VALUES (\'listItem_3\', \'3\', 3);
        INSERT INTO `tabla` VALUES (\'listItem_4\', \'4\', 4);
        INSERT INTO `tabla` VALUES (\'listItem_5\', \'5\', 5);
        INSERT INTO `tabla` VALUES (\'listItem_6\', \'6\', 6);
        

        Stylo Visual CSS
        /* Estilo Visual para la GUI
        * Es muy importante conocer CSS y la aplicacion de estos
        * estilos de manera dinamica con Javascript.
        */
        * { margin: 0; padding: 0; }
        
        body {
         font: 0.9em Arial;
         padding: 10px;
        }
        
        #info {
         display: block;
         padding: 10px; 
            margin-bottom: 5px;
         border: 1px solid #333;
         background-color: #efefef;
        }
        
        #test-list {
         list-style: none;
        }
        
        #test-list li {
         display: block;
         padding: 20px 10px; margin-bottom: 3px;
         background-color: #efefef;
        }
        
        #test-list li img.handle {
         margin-right: 20px;
         cursor: move;
        }
        #test-lista {
         list-style: none;
        }
        
        #test-lista li {
         display: block;
         padding: 20px 10px; margin-bottom: 3px;
         background-color: #efefef;
        }
        
        #test-lista li img.handles {
         margin-right: 20px;
         cursor: move;
        }
        #tabla{
            border: 1px solid black;
        }
        

        Java JSP

        <%@page import="java.sql.*, java.util.Date, javax.swing.*, javax.servlet.*, java.util.*"  session="true" %>
        <jsp:useBean id="conect" scope="session" class="Control.BeanConnection" />
        <jsp:useBean id="consulta" scope="session" class="Control.Consultas" />
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <title>Tecnologia Arrastrar y soltar elementos con AJAX (JSP, Java, MySql, Javascript, CSS)</title>
                <!--Llamado a los componentes Jquery
                La mejor manera de no consumir recursos en nuestro servidor
                es llamar directamente las librerias desde la zona de recursos
                de JQUERY en google Sources
                Excelente.! siempre se mantienen actualizadas.
                -->
                <!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>-->
                <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
                <script type="text/javascript" src="jquery-ui-1.7.1.custom.min.js"></script>
                <link rel=\'stylesheet\' href=\'styles.css\' type=\'text/css\' media=\'all\' />
                <script type="text/javascript">
                    $(document).ready(function() {/*Nos ponemos a la Escucha*/
                        $("#test-list").sortable({//Creamos el elemento
                            placeholder: \'tabla\',/*Le Programos sus propiedades y Acciones*/
                            containment: "ul",
                            items: "li",
                            axis: \'y\',
                            opacity: 0.6,
                            handle : \'.handle\',
                            update : function () {//Al Actualizarse
                                var order = $(\'#test-list\').sortable(\'serialize\');//Toma en serie los componentes y almacenelos en una variable arreglo order
                                $("#info").load("sortable.jsp",{ordenar: order, evento: "Run"}),//envio de Parametros a la Pagina Sortable.jsp
                                //Quien sera la encargada de procesar la informacion con la BD 
                                alert(order);
                            }
                        });
                    });
                </script>
            </head>
            <body>
                <pre>
        <div id="info">Esperando Para Actualizar</div>
                </pre>
                <ul id="test-list" >
                    <%
                                int cont = 0;//
                                ResultSet ListaImagenes = consulta.ListaImagenes(conect);//Llamamos el resultet
                                while (ListaImagenes != null && ListaImagenes.next()) {//Lo vaciamos y tiene registros
                                    cont++;
                    %>
                    <li id="listItem_<%=cont+ ""/*Valor de la Serie*/%>"><img src="img.png" alt="move" width="16" height="16" class="handle" /><strong><%=ListaImagenes.getString("id") + " con nombre de fila:" + ListaImagenes.getString("nombre_li") + ""%> </strong></li>
                    <%}%>
                </ul>
            </body>
        </html>
        

        Clase Java para consulta SQL

        /*
         * To change this template, choose Tools | Templates
         * and open the template in the editor.
         */
        package Control;
        
        import java.sql.ResultSet;
        import java.sql.SQLException;
        
        /**
         *
         * @author Yovany Suarez Silva
         */
        public class Consultas {
        
            public Consultas() {
            }
              /**
               * Este es el metodo que consulta y almacena en un componente tipo
               * resultSet todos los valores de la Tabla
               *
               * @ListaImagenes Arreglo de Registros  en la Tabla
               */
        
            public ResultSet ListaImagenes(BeanConnection conect) throws SQLException {
                String strSQL = "select * from tabla";
                ResultSet ListaImagenes = conect.ejecutar_select_catch(strSQL);
                return ListaImagenes;
            }
        }
        

        Pagina JSP de ACCION

        <%--
            Document   : index
            Created on : 2/05/2010, 07:36:48 PM
            Author     : Yovany Suarez Silva
        --%>
        <%@page import="java.sql.*,  javax.servlet.*, java.util.*"  session="true" %>
        <jsp:useBean id="conect" scope="session" class="Control.BeanConnection" />
        <%//Esto es Java Basico De VI Semestre
                    try {//Las Excepciones No permiten reventar nuestras aplicaciones y nos informan de los errores.
                        if (request.getMethod().equals("POST")) { //Se recibe el metodo
                            String evento = request.getParameter("evento"); //Se recogen los parametros
                            String order = request.getParameter("ordenar");
                            if (evento.equals("Run")) {
                                String palabras[] = order.split("&");//Se separan los items que vienen en el arreglo JSON
                                for (int i = 0; i < palabras.length; i++) { //Se vacea el arreglo
                                    String palabras2[] = palabras[i].split("=");
                                    String b = palabras2[0];
                                    String a = palabras2[1];
                                    String consulta = "UPDATE tabla SET posicion=\'" + a + "\' " +
                                            "WHERE nombre_li=\'" + (b.substring(0, 8)) + "_" + (i + 1) + "\' ";//Se Actualiza y con se escribe la respuesta
                                    conect.ejecutar_sql_catch(consulta);//se llama al metodo de ejecucion para enviar datos a la bd
                                    out.println(consulta);
                                }
                            }
                        }
                    } catch (SQLException e) {//Si hay una Excepcion en SQL
                        out.println(e.getMessage());
                    }
        
        %>
        

        BEAN De Conexion

        package Control;
        /**
         *
         * @author Yovany Suarez Silva
         */
        import java.sql.*;
        
        public class BeanConnection{
            private Connection con = null;
            private PreparedStatement st = null;
            private Statement st1;
            private ResultSet rs;
        
            private int id=0;
        
            public BeanConnection() {
        
            }
            public int getId(){
                return id;
            }
            public void setId(int _id){id=_id;}
            String cadena="";
        
            public void instituciones(){
                cadena="ajax?user=root&password=";
            }
            public void conecta(){
                instituciones();
                try {
                    Class.forName("com.mysql.jdbc.Driver").newInstance();
                    con =  (Connection) DriverManager.getConnection("jdbc:mysql://localhost/"+cadena);
                } catch(Exception e) {
                    System.out.println("\nERROR pool: " + e.toString());
                }
            }
            public Connection getConect(){return con;}
            public void close() {
                try {
                    
                } catch(Exception e) { }
            }
            public void closing() {
                try {
                    st.close();
                    con.close();
                } catch(Exception e) { }
            }
            public ResultSet ejecutar_select_catch(String la_sql) throws SQLException {
                conecta();
                rs = null;
                st= con.prepareStatement(la_sql);
                rs = st.executeQuery();
                return rs;   
            }
            public int ejecutar_sql_catch(String la_sql) throws SQLException {
                conecta();
                int num_filas = 0;
                st=con.prepareStatement(la_sql);
                num_filas = st.executeUpdate();
                return num_filas;
            }
        }
        

        Espero le Aprovechen, lo remodelen y me cuenten como les fue, a traves de pequeños comentarios.
         y Termino con Esta magnifica Frase "Todo lo que no Se Comparte se Pierde", Hafary.


        viernes, 12 de febrero de 2010

        Concatenacion de Caracteres en paginas JSP (" "+String+" ");

        La concatenacion en aplicaciones java web (JSP) es uno de los recursos que se hace irrelevante en el momento de obtener resultados de datos procesados en un controlador y de responder al usuario que hace la peticion o mejor dicho quien realiza la accion.

        Una concatenacion permite juntar caracteres que vienen de variables ya sean (int) enteras, String (caracter), Date, etc.

        Para la conbinacion de tipos de variables se emplean metodos para la conversion de datos como el famoso .toString(int); o Integer.parseInt("String");

        En el siguiente codigo se define una variable tipo String que obtiene los datos de una lista, la idea basicamente es mostrar un valor String que se imprime en el html,, resultado de la concatenacion de un valor nombre1, nombre2, apellido1,apellido2 que contiene los datos de un usuario, si el usuario tiene un segundo apellido y un segundo nombre, se mostrara solo la Inicial en estilo mayuscula.


        
        <%@page contentType="text/html"%>
        
        <%@page pageEncoding="UTF-8"%>
        
        <!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 Page</title>
        
            </head>
        
            <body>
        
                <h1>JSP (Concatenacion)</h1>
        
                <%
        
                try{
        
                    
        
                    List usuario=BeanUsuarios.getListaUsuarios(); //se crea un elemento tipo lista y se trae algunos valores de la clase BeanUsuarios y el metodo GetListaUsuarios que evidentemente sera un bean tipo list
        
                    int contador=0;
        
                    while(contador<=usuario.size()){ //para vaciar la lista se pregunta por el tamaño
        
                    contador ++;
        
                    String pdf="";
        
                    //
        
                    pdf+=("<span><strong>Apellidos: <strong>"+usuario.apellido1+"</span><div style=\"text-transform:uppercase;\"> ");
        
                    if(usuario.apellido2.substring(0,1).length()!=0){
        
                        pdf+=(""+usuario.apellido2.substring(0,1));
        
                    }else{
        
                        pdf+=(""+usuario.apellido2);
        
                    }
        
                    pdf+=(".</div> <span><strong>Nombre: <strong>"+usuario.nombre1);
        
                    pdf+=("</span><div style=\"text-transform:uppercase;\"> "); //Estilo CSS para poner primera letra en mayuscula.
        
                    if(usuario.nombre2.substring(0,1).length()!=0){//preguntar por el tamaño del valor de la propiedad de la lista usuarios
        
                        pdf+=(""+usuario.nombre2.substring(0,1));
        
                    }else{
        
                        pdf+=(""+usuario.nombre2);
        
                    }
        
                    pdf+=(".</div>"); // el += hace que se siga almacendo en la variable sin eliminarse ningun caracter
        
                    out.print(""+pdf); //Se imprime en la JSP
        
                    }
        
                   
        
                } catch (Exception ex) { //si existe un error en el codigo se obtiente una excepcion y se imprime el error en consola
        
                    out.print("Error: "+ex.getMessage());
        
                }
        
                %>
        
                
        
                
        
                
        
            </body>
        
        </html>
        
        
        
        
        

        El Resultado final Sera de esta Manera.

        Apellidos: Suarez S. Nombres: Yovany
        o,
        Apellidos: Suarez . Nombres: Yovany M.

        martes, 2 de febrero de 2010

        Pagina Dinamica con JSP

        JSP (Javas Servlet Pages)

        Con ajax, la nueva tecnologia que combina, css, javascript y xml, se pueden realizar cargas de paginas dentro de divs o frames ubicados en una pagina principal, pero esto realmente no es dinamismo en el sentido del desarrollo web, este proceso solo se hace con lenguajes que se copilan en el navegador o el cliente en el caso de javascript, css, html, etc.

        Para realizar aplicaciones web Dinamicas de alto nivel es necesario utilizar lenguaje de servidor como lo es php, jsp, aspx, etc.

        En Este ejemplo ilustro de una manera sencilla como poner en marcha la logica del dinamismo en paginas JSP

        La idea consiste en crear una variable que servira como pin de corte entre los diferentes fragmentos html , mediante un comando href se enviaran valores en parametros, se recibiran a travez del metodo HttpServletRequest y se pondran en la variable para luego ser condicionada por la JSP

        <%-- 
            Document   : PaginaDinamica
            Created on : 3/02/2010, 12:28:41 AM
            Author     : Yovany Suarez Silva
        --%>
        
        <%@page contentType="text/html"  import="java.sql.*, java.util.Date, javax.swing.*, javax.servlet.http.*, javax.servlet.*, javax.servlet.http.HttpSession"  import="java.util.*, java.io.*" %>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
        <%
        int pin=0; //ummmm
        
        try{ //capturamos las excepciones para que no nos reviente la pagina, es muy importante
            if(request.getMethod().compareTo("GET")==0){ //Preguntamos si el metodo del formulario es tipo get, 
                //en este caso como viene de un href (propiedad de un <a>). viene como tipo GET
            pin = Integer.parseInt(request.getParameter("pin"));//capturamos el valor del componente pin='', 
               //que mandamos en el href="PaginaDinamica.jsp?pin=1"
            }else{
                pin=0;
                }
        }catch(Exception e){//si existe una excepcion imprimimos el mensaje.
            out.print("valor: "+e.getMessage()+"; No se ha recibido un Valor.");
            }
        %>
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                <title>Pagina Dinamica Con JSP</title>
            </head>
            <body>
                <%--Menu para enviar los parametros a la variable pin--%>
                <ul>
                    <li><a href="PaginaDinamica.jsp?pin=1" <%-- Se envia el parametro con el valor pin=1 en la accion del href --%>>Mostrar el Fragmento de pagina 1</a></li>
                    <li><a href="PaginaDinamica.jsp?pin=2">Mostrar el Fragmento de pagina 2</a></li>
                    <li><a href="PaginaDinamica.jsp?pin=0">Volver al Inicio</a></li>
                </ul>
                <% if(pin == 0){/*si pin tiene un valor = 0 */%>
                Hola a todos este es un ejemplo muy facil para explicar un poco la logica de las paginas JSP dinamicas
                <%}if(pin == 1){/*si pin tiene un valor = 1 */%>
                Este es el Fragmento HTML 1
                <%}if(pin == 2){/*si pin tiene un valor = 2 */%>
                Este es el Fragmento HTML 2
                <%}%>
            </body>
        </html>
        
        
        Informacion de Ayuda.

        martes, 19 de enero de 2010

        Mostrar y Ocultar elementos HTML en una JSP con JQuery

        Ahora y Desde hace mucho, Mediante la libreria jquery podemos realizar efectos especiales en los componentes html (input,select,checkbox,etc) de nuestras jsp, este es un ejemplo basico para ocultar y mostrar un campo de texto al seleccionar una casilla de verificacion.

        <html>
        <head>
        <title>Mostrar Ocultar</title>
        <script src="jquery-1.3.2.min.js" type="text/javascript"></script> 
        <script> 
             $(document).ready(function(){
             $("#mayoria_edad").click(function(evento){
                if ($("#mayoria_edad").attr("checked")){
               $("#formulariomayores").css("display", "block");
               }else{
               $("#formulariomayores").css("display", "none");
             }
        });
        });
        </script>
        </head>
        
        <body>
        
        <form>
        Nombre: <input type="text" name="nombre">
        <br>
        <input type="checkbox" name="mayor_edad" value="1" id="mayoria_edad"> Soy mayor de Edad
        <br>
        <div id="formulariomayores" style="display: none;">
        Solo mayores de Edad: <input type="text" name="mayores_edad">
        </div>
        </form>
        </body>
        </html>
        
        Informacion de Ayuda.

        martes, 1 de diciembre de 2009

        Aplicaciones JSP (Java Orientado a la Web)

        Bien, en esta publicacion hablare un poco sobre el desarrollo de aplicaciones web alojadas bajo servidores java (resin, tomcat), explicare como configurar los archivos para el resin y como enlazar la base de datos. Como se que muchos lo estaban esperando, lo he organizado de la mejor manera para que sea lo mas entendible posible. No apto para cardiacos.

        Nuestros Requerimientos.
        1. Sitio Web para la Gestion de Imagenes Fotograficas (Galeria Fotografica).
        2. Arquitectura J2EE.
        3. Patron de diseño MVC.
        4. Metodologia XP (Programacion Extrema).
        5. Modelado de Datos.
        6. Modelado UML.
        Nuestras Herramientas.
        1. Motor de Base de datos Access.
        2. Servidor de Aplicaciones Resin (Caucho Tecnology)
        3. IDE Netbeans
        4. IDE Dreamweaver
        5. IDE TopStyle
        6. Acces de Microsoft Oficce
        7. Configurar Conexion ODBC
        Nota.
        1.  Si desea conectarse a POSTGRES o MYSQL Pegar el driver de postgresql-8.4-701.jdbc3.jar y el de mysql en el directorio c:archivos de programa/java/jdk6/jre/lib/ext.
        2. Crear la odbc con windows desde herramientas administrativas con el nombre ConectToAcces
          y seleccionando la bd acces de nombre contacto, porque asi esta referenciado en el bean conexion de nuestro proyecto web.
        3. Si se conecta con postgres arrancar Postgrest para que cuando se use la opcion de conectar con postgrest este este activado.
        4. Copiar y pegar el contenido sql del archivo sqlcontactoPostgrestoMysql.sql, anexo en esta carpeta.
        5. Si se conecta con postgres arranque el servicio de postgres desde herramientas administrativas, servicios. (No olvidar) para que no presente problemas de conexion.

        Mediante un ejemplo para descargar, se muestra este pequeño proyecto web realizado a bajo costo, pero en el que al principio tuve que invertir mucho tiempo en lecturas y practicas para entender la verdadera usabilidad de este tipo de aplicaciones.

        sábado, 2 de mayo de 2009

        RESIN - Servidor de Aplicaciones Web



        Servidor de Aplicaciones WEB Resin (Caucho).
        Sistemas Operativos Linux - Windows

        Resin es el nuevo servidor de aplicaciones web que me permite ejecutar y ver cambios en tiempos muy cortos, este servidor se ejecuta desde su directorio raíz, no necesita ningún componente instalado en el sistema , es autónomo, eso si obviamente, las jdk, controladores de bases de datos y otros recursos necesarios como la maquina virtual java. Sí necesitamos en determinado momento llevar nuestro servidor con las características configuradas por nosotros, lo podemos hacer muy fácilmente en una usb, un cd y luego montarlo en cualquier destino y sobre cualquier S.O.

        Cuando trabajamos sobre un servidor de aplicaciones Tomcat, se suben los archivos a su carpeta base donde se encuentra la aplicación web y se debe esperar que el servidor ,en determinado tiempo programado, o con ejecución manual para realizar el proceso de compilación encuentre los archivos, vea cuales son lo que contiene cambios de fechas y tamaño y realiza la lectura nueva de los archivos. Esta demora perjudica el avance del desarrollo de aplicaciones web. En algunos casos es necesario ver el funcionamiento de los cambios en linea para no obviar detalles de algunas fallas o evitar excepciones y se hace muy engorroso tener que esperar para poder ver los cambios realizados en la aplicación, con Resin esta utilidad es puesta en marcha y satisface la necesidad, Resin realiza un nueva lectura de los archivos cada vez que nota cambios en los archivos base, es decir cada vez que un archivo nuevo es subido al servidor de aplicaciones este inmediatamente atiende el cambio y realiza la ejecución de estos archivos, trayendo al instante la vista de los nuevos cambios realizados, como servidor de prueba para desarrollos web, Resin presenta gran beneficio al tiempo de ver Cambios.

        Características del Servidor RESIN
        • Compilación y recompilación automática
        • Se puede utilizar como un servidor completamente autónomo, independiente, obteniendo un mejor rendimiento.
        • El trafico de datos para el email es el adecuado.
        • Resin permite especificar el autenticador para su aplicación web
          en web.xml.
        • Una de sus versiones permite tener soporte personal como apoyo al servicio. La cuenta de licencia de pago es a un costo muy económica.
        • Su estructura interna de directorios y archivos es ordenada.

        CONTEXTO
        Resin es una aplicación servidor web de alto rendimiento y de código abierto desarrollado por la compañía caucho tecnología, esta escrito en lenguaje java, sus extensiones de archivos son .jsp, esto lo hace ser mas accesible a modificaciones por parte de desarrolladores JAVA.
        Una de las necesidades básicas en el desarrollo de aplicaciones web es poder llevar a cabo actualizaciones criticas en linea de la manera mas rápida y eficiente. En los servidores Resin esta tecnología es puesta en marcha.
        1. Donde Encontrar RESIN
        Resin se puede descargar directamente desde su sitio web www.caucho.com allí se encuentra mucha información sobre el proyecto y las versiones que existen actualmente. Al Igual existe documentación sobre como gestionar un buen servicio con RESIN, existen versiones de paga a muy bajo costo que beneficia a empresas inclinadas al desarrollo de aplicaciones web.
        1. Como Instalarlo.
        Resin se instala en cualquier sistema operativo, es cuestión de descargar la versión que se ajuste al S.O. de la maquina en la web oficial del resin http://www.caucho.com
            1. En Linux.
        - Para instalar RESIN en Linux basta con llevar el directorio completo del resin y pegarlo en alguna parte del sistema.
        cp /Escritorio/resin/ /usr/local/share/resin/ -R -v
        - Luego se ejecuta, es decir se arranca el demonio con el siguiente comando.
        sudo java -jar resin/lib/resin.jar
        Este comando invoca un .jar principal que contiene los archivos de arranque del servidor y ya esta.
            1. En Windows.
        - La versión para windows de Resin es un poco mas fácil de instalar, de igual manera que en Linux, se debe ubicar la carpeta del Resin en un lugar seguro del sistema.
        - En la carpeta raiz se encuentra un archivo ejecutable llamado httpd.exe, se ejecuta y listo ya esta el servidor instalado y en servicio.
        !Que fácil.

        sábado, 2 de febrero de 2008

        Formulario HTML dentro de una JSP

        Html es el lenguaje primario de la web sin ninguna duda. su contenido nos permite crear componentes como botones para acciones, áreas de texto para la entrada de datos, campos de texto, menús de selección, listas etc, básicos para la elaboración de formularios.

        Pretendo realizar un script resultado de una combinación de jsp y html.
        Componentes html que envían datos a un script jsp.
        Dividiere este proceso en dos pasos empezare desde la lógica del script jsp hasta llegar a la simplicidad en un formulario html Dinámico.

        • Empezaremos por Crear un archivo con extensión.jsp de nombre formulario.jsp. la extensión .jsp es propia de la web pues es reconocida por servidores web-java y es enviada al navegador web en etiquetas html.
        • El siguiente paso es crear un script jsp dentro de nuestra pagina.jsp condiciones para poder recibir de manera dinamica de un evento de action de form ejecutado por un submit, parámetros de componentes html que crearemos paso siguiente a este.
        • Ahora diseñaremos el formulario y lo dejaremos listo para copilar y enviar los datos a través del evento post del action que retorna a la misma pagina.

        • Presentacion visual del formulario.