Ayuda con programación Java EE (Servlets/JSP)

Publicado en 'Programación' por theluigy13etv, 28 May 2015.





  1. theluigy13etv

    theluigy13etv Miembro frecuente

    Registro:
    11 Nov 2014
    Mensajes:
    62
    Likes:
    3




    Hola, ando aprendiendo y practicando por mi cuenta en lo que respecta a servlets y jsp. Estoy en la parte donde se envían datos desde un jsp a un servlet y desde ese servlet hasta el jsp. Desde mi index.jsp recibo unos datos en un formulario y los envía a un Servlet. En dicho Servlet encapsulo los datos en un Bean Persona y lo envío a un archivo salida.jsp mediante:

    String nombres = request.getParameter("nombres");
    String apellidos = request.getParameter("apellidos");
    String direccion = request.getParameter("direccion");
    String pais = request.getParameter("pais");
    Integer edad = Integer.valueOf(request.getParameter("edad"));
    String telefono = request.getParameter("telefono");

    Persona persona = new Persona(nombres, apellidos, direccion, pais,
    edad, telefono);

    // Lo envíamos a salida.jsp
    request.setAttribute("persona", persona);
    request.getRequestDispatcher("salida2.jsp").forward(request, response);

    [​IMG]

    Ahora, cuando recibo dicho bean en mi jsp salida.jsp, hasta ahora he encontrado dos formas de mostrarlo. Quisiera saber si cualquiera de las dos formas está bien o me conviene usar una más que otra. A mí me parece más cómodo la primera forma pero por allí me dijeron que es mejor usar la segunda y estoy confundido

    Gracias :)
     


  2. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    792
    Likes:
    252
    El uso de scriptlets, el primero de tus ejemplos, se dejo de usar desde hace mas de 10 años aunque por ahi todavia se ve , y se dejo debido a los nuevos taglibs(JSTL/EL) osea tu segundo ejemplo, que te permite : reusabilidad, esta mas orientado a objetos, facil depuracion y de por si mejor mantenimiento. Cuando pases de JSP a JSF y de ahi a ADF lo vas a ver por todos lados.
     
    A Opfer le gustó este mensaje.
  3. dajoh

    dajoh Miembro frecuente

    Registro:
    2 Abr 2013
    Mensajes:
    98
    Likes:
    19
    Usa la segunda forma, como dice gnox dificilmente se ve a alguien usando scriplets
     
  4. bichoflyer

    bichoflyer Miembro nuevo

    Registro:
    13 May 2012
    Mensajes:
    33
    Likes:
    8
    La segunda forma, no hay duda al respecto. Los scriplets puede ser algo introductorio para un estudiante. Pero de ahí, se evoluciona a la otra forma, que -como djeron- va mejor orientada a objetos.
    :hi:
     
  5. debugger

    debugger Miembro nuevo

    Registro:
    13 Jun 2014
    Mensajes:
    38
    Likes:
    6
    La ultima vez que use sriptlets fue hace 2 años y solo fue 3 meses por lo que solo use servlets y no beans, de ahí entre con jsf, y me gusto mas.
    Una vez que ya tengas buenas bases en jsp prueba con jsf, busca en torrents cursos de algaworks, estan en portugues pero son entendibles.:yeah:
     
  6. GGarsaky

    GGarsaky Miembro nuevo

    Registro:
    4 Jun 2015
    Mensajes:
    6
    Likes:
    2
    Los Scriptlets son totalmente desaconsejados, porque no se cumplen los principios de software como SPR, DRY, etc. Siempre se aconseja usar el patrón de diseño MVC, delegando así correctamente responsabilidades. En tu caso, la segunda forma está bien. Puedes simular una BBDD haciendo una NavigableMap:

    Código:
    public interface PersonDAO {
        public Person create(Person p);
        public Person find(Integer id);
        public Person update(Person p);
        public void remove(Person p);
        public List<Person> findAll();
    }
    Código:
    public class PersonDAOIml implements PersonDAO {
        private final static NavigableMap<Integer, Person> bd = new TreeMap<>();
    
        @Override
        public Person create(Person p) {
            Integer id = bd.isEmpty() ? 1 : bd.lastKey() + 1;
            p.setId(id);
            bd.put(p);
            return p;
        }
        @Override
        public Person find(Integer id) {
            return bd.get(id);
        }
        @Override
        public Person update(Person p) {
            bd.replace(p.getId(), p);
            return p;
        }
        @Override
        public void remove(Person p) {
            bd.remove(p.getId());
        }
        @Override
        public List<Person> findAll() {
            return bd.values().stream().collect(Collectors.toList());
        }
    }
     
    Última edición: 4 Jun 2015
  7. theluigy13etv

    theluigy13etv Miembro frecuente

    Registro:
    11 Nov 2014
    Mensajes:
    62
    Likes:
    3
    No entendí a qué te referías con "simular BBDD haciendo una NavigableMap" , tampoco entiendo tu código adjunto :( .

    Muchas gracias por contestar. Ahora tengo entendido que ya no debo usar scriptlets sino etiquetas JSP. No había contestado porque estaba en clases y no tenía mucho tiempo para seguir practicando. Ahora que estoy en vacaciones estoy retomando mi aprendizaje sobre Java web.

    Estoy siguiendo un tutorial de internet de Jesús Conde () en donde primero enseña a utilizar JSP y luego Servlet. Y en una parte hace un ejemplo donde dice que aplicará el patrón de arquitectura MVC para separar la vista de la lógica de negocios de la aplicación. Y según entendí, la vista se implementaría con JSP y el controlador con un Servlet, a parte el componente modelo se haría mediante un JavaBean.

    La primera página JSP llamada index.jsp sería el componente VISTA del MVC. Este JSP tiene un formulario donde se ingresan una serie de datos: El nombre en un cuadro de texto y 4 casillas de verificación para seleccionar. El código es el siguiente:
    [​IMG]

    Dicho JSP enviará los datos a un Servlet llamado ServletController que hará de CONTROLADOR.

    [​IMG]

    Este Servlet lo que hace es encapsular los datos obtenidos de la vista dentro de un objeto de la clase DatosEncuesta. Luego, este objeto datosEncuesta se envía a un JSP de salida llamado salida.jsp (La clase DatosEncuesta vendría formar parte del componente MODELO de MVC)

    Por último, el archivo JSP salida.jsp que se encargaría de mostrar los resultados tiene el siguiente código:
    [​IMG]

    Así es el código como queda en el tutorial.

    En los dos primeros rectángulos de color rojo he marcado las partes donde se han utilizado etiquetas JSP para importar el bean datosEncuesta y para obtener el nombreCompleto. En el tercer cuadro veo que hay un scriptlet. Y según sus comentarios, ya no se usa scriptlet hace mucho tiempo. Entonces ¿Cuál sería la forma correcta de mostrar el arreglo de String? Osea, una forma alternativa y correcta de hacer lo del tercer cuadro seleccionado de color rojo en la última imagen. Gracias :hi:
     
    A bichoflyer le gustó este mensaje.
  8. dajoh

    dajoh Miembro frecuente

    Registro:
    2 Abr 2013
    Mensajes:
    98
    Likes:
    19
    Interesante, pero sabes algo man? JSP es un framework un tanto obsoleta, te recomiendo usar JSF, es la tendencia, si quieres aprender desde cero, te recomiendo una página: http://marchesejuanmanuel.blogspot.com/search/label/vídeo java ee
    empieza con el video 01 obviamente, de paso aprendes a comprender el código de Ggarsaky.
    A ver me comentas luego como te vá.
    Saludos
     
    A bichoflyer le gustó este mensaje.
  9. theluigy13etv

    theluigy13etv Miembro frecuente

    Registro:
    11 Nov 2014
    Mensajes:
    62
    Likes:
    3
    Gracis :) , voy a revisar sus videos
     
  10. Jmm

    Jmm Miembro frecuente

    Registro:
    14 Set 2011
    Mensajes:
    67
    Likes:
    6
    JSF ?, Aprende Spring antes de perder el tiempo con JSF o JSP.

    Saludos.
     
  11. theluigy13etv

    theluigy13etv Miembro frecuente

    Registro:
    11 Nov 2014
    Mensajes:
    62
    Likes:
    3
    Por qué me recomiendas aprender primero Spring antes que JSF :paz:
     
  12. Jmm

    Jmm Miembro frecuente

    Registro:
    14 Set 2011
    Mensajes:
    67
    Likes:
    6
    No confundir Spring es un Framework que contiene varios módulos, especialmente se usa para desarrollar aplicaciones web para lo cual se puede usar Spring MVC, Struts, JSF, Primeface o Thymeleaf como parte visual. Spring es uno de los Framework mas usados en el mundo de Java, además de ser muy cotizado.
     
  13. Luisjim

    Luisjim Miembro frecuente

    Registro:
    11 Abr 2015
    Mensajes:
    195
    Likes:
    30
    Las dos formas estan bien, pero si quieres en un futuro dar mantenimiento te combiene mas la segunda forma que esta oriantada a objetos.