2010-03-19 20 views
12

A menudo me encuentro con esta pregunta de por qué tenemos muchos frameworks web que abordan los mismos inconvenientes o similares.Servlets vs MVC frameworks

Cuando miro profundamente, también he pensado en por qué JSP/Servlets no se está utilizando después de que los otros marcos web (como Struts, Spring MVC, etc.) hayan demostrado su existencia.

¿Es porque, marcos de la última web

  1. hace la mayor parte de las cosas por sí mismo?
  2. proporciona características extensas que no están disponibles con Servlet/JSP?
  3. o el Servlet/JSP es impotente para entregar lo que el último marco hace?

Cualquier ayuda en forma de respuestas o recursos es muy apreciada.

Respuesta

7

Voy a compartir algunos de mis pensamientos sobre esto.

  1. Como se dijo anteriormente estos marcos se desarrollan en la parte superior de Servlet/JSP.
  2. Están destinados a evitar la duplicación del código (DRY).
  3. El marco se basa en Patrones de diseño - solución general reutilizable para problemas comunes.
  4. Ayudan a a comunicar las cosas fácilmente en el equipo y los hacen productivos y se centran en el problema de nivel empresarial que están tratando de resolver que estas tareas comunes.
  5. Ayudan en que acelera el desarrollo proporcionando la solución general a los problemas comúnmente conocidos. (Por ejemplo, validación de formulario, RESTO, prueba, inyección de dependencia, etc.)

Cuando está desarrollando una aplicación empresarial a gran escala y tiene varios desarrolladores trabajando en ella, definitivamente necesita cierta uniformidad en el proyecto/código/estructura de cada desarrollador esta escribiendo. Las ejecuciones forzadas externamente no son confiables, pero cuando se construyen, ayuda a que el proyecto sea fácil de mantener, escalable y fácil para que las nuevas personas sean productivas dentro de poco tiempo.

Creo que esta regla se aplica no solo para servlet-jsp sino también para JavaScript. Solo el JavaScript nativo o incluso las API/bibliotecas de JavaScript de bajo nivel no son suficientes para crear una interfaz de usuario de escala empresarial. Adopte el mejor marco disponible o resuma la naturaleza común y conviértalo en un marco (no en una biblioteca).

2

Spring MVC sigue funcionando con JSP y en su núcleo no es más que un simple servlet de distribución que utiliza los mecanismos proporcionados por Spring MVC framework (donde registra sus controladores en etc.). Yo diría que se trata de conveniencia y de hacer las cosas mucho más fáciles de escribir y mantener. Además, puede reaccionar más fácilmente a los desarrollos actuales (por ejemplo, servicios RESTful ... tendría que codificar todo a mano en un servlet). Al final, para eso están los marcos.