Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • ¿ Servlet = controlador ?

    (Puntos:4, Interesante)
    por Grohl (16098) el Miércoles, 13 Agosto de 2008, 16:10h (#1072498)
    ( http://barrapunto.com/~Grohl/bitacora | Última bitácora: Lunes, 09 Marzo de 2015, 09:07h )
    Te comento cómo lo veo yo:

    Quizá deberías usar un framework como Struts pero en cualquier caso, el patron MVC está basado en acciones.

    Si tienes un servlet que hace las veces de controlador, le enviarias como URL algo que sirve para mapear una accion.
    Este mapeo se hace mediante ficheros de configuracion.

    Esa accion no es más que un bean que realiza la lógica de negocio.

    Una vez procesado, se redirige a la presentacion, esto es, se redirige a una pagina JSP ( que no es más que servlet ).

    --
    "En teoría no hay diferencia entre teoría y práctica. En la práctica, sí la hay."
  • Depende del enfoque

    (Puntos:2)
    por Inconexo (20311) el Miércoles, 13 Agosto de 2008, 18:30h (#1072542)
    ( http://press.asqueados.net/ | Última bitácora: Jueves, 06 Marzo de 2014, 11:47h )
    Un servlet puede ser igualmente una vista (puede escribir directamente) y un jsp puede hacer operaciones de negocio.

    Es más, igual de fácilmente se puede acceder a un servlet por la URL que a un jsp.

    Cuando trabajes con un marco de trabajo podrás ocultar estas direcciones, pero vas a seguir sin poder evitar el acceso directo a la URL.

    Solución: debes asumir que te lo pueden hacer y preparar tu programa para ello.
    --
    Asqueados [asqueados.net]: mas politica, informatica y payasadas que nunca
  • modelo 1, modelo 2 y MVC

    (Puntos:3, Informativo)
    por sammael (16347) el Jueves, 14 Agosto de 2008, 09:23h (#1072678)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
    Buenas, ya te han contestado bastante bien, pero te doy mi opinion y los consejos que se me ocurren que puedes necesitar.

    Primero, un par de notas para la gente que no sepa de que va la cosa (y para aclarar conceptos):

    - Los jsp se traducen en el servidor a servlets y luego se compilan, asi que puedes ver una pagina jsp como una forma de "simplificar" los servlets.
    - Se dice que un jsp es "modelo 1" cuando tiene codigo java incrustado (a traves de los scriplets: <% %>)
    - Se dice que un jsp es "modelo 2" cuando toda la logica esta metida en tags, custom tags y demas (es decir, a simple vista, es html con tags especiales y sin logica)
    - El MVC [wikipedia.org] es un patron de disenio que no tiene nada que ver con todo esto pero se puede aplicar, por supuesto.

    Al ser MVC un patron de disenio, no hay un estandar estricto que te diga "los beans son el modelo, los servlets el controlador y los jsp las vistas". Esta es la estructura mas normal, pero nada te impide usar jsps de controlador, de modelos o de lo que sea, depende de tu aplicacion.

    Tal y como lo planteas, efectivamente los beans serian el modelo, deberias definir servlets que serian las acciones y los jsps que serviran de vistas, asi que un par de consejos:

    - Haz que los servlets sean los unicos que puedan modificar (y crear, destruir y demas) datos.
    - Las beans deberian ser, en principio, simples contenedores de variables (es decir, solo tener metodos get/set), recuerda que una de las convenciones de los Beans es que tienen que ser serializables, si metes en ellos logica de acceso a base de datos, hazlo con mucho cuidado (yo te recomiendo poner toda esa logica fuera de los beans, mirate los DTO [wikipedia.org] y DAO [wikipedia.org], en este caso usarias las beans como DTOs)
    - Los jsp se encargan UNICAMENTE de generar la vista accediendo a los metodos get del modelo. Si te encuentras con necesidad de usar un set o muchos otros objetos de java, replanteate ese jsp.
    - Haz una comprobacion al principio de cada jsp para comprobar que el bean mandado desde el controlador existe (en el scope request), si no es asi, significara que el usuario ha ido al jsp a pelo y puedes decidir hacer varias cosas, por ejemplo mandarle a una pagina de error, mandarle a la pagina principal o hacer que cada vista sepa a que accion pertenece y redirigirle a la accion (te recomiendo alguna de las dos primeras, la tercera puede ser util en determinados casos pero tambien puede darte muchos dolores de cabeza).

    Con esto tendrias un MVC basico en que cada servlet seria un controlador, no es perfecto pero ya vale. Si quieres mejorar muchisimo el modelo, convierte los servlets en simples clases java que implementen un interfaz que hayas definido[1], haz un servlet al que le lleguen todos los request, redirija a la accion adecuada y, cuando esa accion termine, cree la vista.

    Si a eso le aniades un xml donde definas que url va a que accion y que vista debe devolver tienes la esencia de lo que es Struts.

    En cuanto a esto, creeme, una vez entiendes el modelo MVC, struts es rapidisimo de aprender, configurar y usar. Para una practica de la universidad creo que deberias programartelo todo tu, pero si quieres usar struts y necesitas ayuda, dimelo.

    En cuanto al resto de tus preguntas, si en una aplicacion accedes directamente al jsp, generalmente es una aplicacion antigua que se hizo antes de la moda del MVC, demasiado pequenia como para que mereciera la pena o cuyos creadores ni se preocuparon en ello.

    [1] Lo mas simple es que definas un interfaz con un solo metodo, execute() por ejemplo, al que le pasas los datos necesarios (al menos el HttpServletRequest y el HttpServletResponse) y que devuelva un Map.
    --

    Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
  • 3 respuestas por debajo de tu umbral de lectura actual.