2011-04-28 15 views
18

¿Cuáles son las ventajas de mantener la lógica de negocios fuera de JSP, ya que las JSP están destinadas principalmente a la presentación? Seguimos viendo la lógica empresarial escrita dentro del JSP, así que necesitaba saber qué beneficio obtendríamos al sacar la lógica comercial de JSP.¿por qué la lógica de negocio debe ser eliminada de JSP?

+1

Relacionados: http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – BalusC

Respuesta

14

El principal beneficio de MVC es que puede tener vista múltiple y limpios y separados arquitectura & Simplicity


Re usabilidad

mañana Supongamos que necesita misma aplicación que se ejecuta en una aplicación de escritorio. entonces solo puedes cambiar la vista.


Comprobabilidad

Usted unidad puede probar sus métodos de servicio, pero no se puede simplemente prueba de unidad lógica a la vista.


mantenibilidad

Es fácil de entender el código de los métodos de servicios, también podemos cambiarlo/servicio API de liberación y mantener fácilmente


capacidad Versión

Puede dar versión a su API y mantener el estándar documentos relacionados con temas/actualizaciones si se utiliza la API de servicio en lugar de ver la lógica


Véase también

2
  1. Se convierte reutilizable (tanto para otras aplicaciones, y para diferentes puntos de vista (por ejemplo, una API JSON))
  2. lo lleva lejos de los diseñadores (por lo que no se interpone en su camino, y don 't accidentalmente romperlo)
1

estoy No estoy seguro, pero este puede ser el razón:

Es para reutilización propósito.

JSP debe ser utilizado para el propósito presentación y nuestro diseñador html, que más tarde diseñar la página no es consciente de codificación Java no será cómodo. y escribir toda la lógica de funcionamiento en servlet permite el código reutilizable.y para escribir la lógica de buiseness en la página jsp allí son de alguna otra manera como usar scriplets.so por qué hacer el trabajo con menos ganancias y trabajo adicional.

Ahora bien, si estamos utilizando la página JSP para la lógica de negocio, entonces scriplet será más dentro de la página JSP que conduce a maintaince pesada cost.The declaración separada de servlet para la unidad de negocio se evitar todo arriba.

9

Es una aplicación típica del principio de diseño Separation of Concerns.

Al separar las preocupaciones, es decir, al crear unidades lógicas separadas (principalmente clases) para cada una de ellas, se reduce el número de razones para cambiar una unidad en particular.

Otro beneficio de SoC es la reducción del tamaño promedio y la complejidad de estas unidades. Esto a su vez hace que su software sea más fácil de entender y de cambiar.

Además, contar con unidades lógicas pequeñas hace que sean mucho más fáciles de probar por unidad, más fáciles de simular en las pruebas de integración y más fáciles de corregir las pruebas después de los cambios en la implementación.

+4

y prueba más fácil de la unidad. – Codemwnci

+0

@Codemwnci +1 definitivamente – kostja

+0

@Codemwnci ¿Te importa si incorporo tu comentario en la respuesta? – kostja

3

Agregaré un motivo más a todos los muy buenos que se publican aquí.

La tecnología del cliente está cambiando todo el tiempo. Los usuarios no desean ingresar a través de una computadora de escritorio, navegador o aplicación móvil; quieren usarlos todos, todo el tiempo. Entonces, si incorpora la lógica comercial en un tipo de tecnología de interfaz de usuario, probablemente tendrá que duplicarla en todas las demás. Eso es malo para el mantenimiento, la reutilización y para agregar nueva lógica comercial.

No desea tener que volver a escribir su aplicación simplemente porque decide cambiar la tecnología de interfaz de usuario.

También es mejor para la seguridad. Si la lógica de negocios desciende al navegador, existe la posibilidad de que los usuarios vean el código y descubran lo que está haciendo.

Así que es mejor que mantenga la lógica de negocios en el lado del servidor.

0

Solo para sumarse a las buenas razones publicadas por otros colegas y particularmente con respecto a "la lógica de negocios debe ser eliminada de JSP".

En pocas palabras, en el trabajo teníamos muchos JSP donde la lógica de negocio había terminado y era bastante desordenado mirarlo. Había lógica para obtener objetos de la sesión/solicitud y realizar ciertas comprobaciones. Un ejemplo simple es la construcción de diferentes títulos de página dependiendo de ciertas condiciones, todo en el JSP.

Cómo se movió esta lógica en nuestro extremo fue introducir un objeto Constructor de página/Compositor que toma todos los detalles necesarios para construir una página en particular y comprueba y establece todos los campos correctos en el objeto de bean de página. Este objeto de frijol de página se establece a petición de, p. Esto significa que toda la lógica anterior que tendría en el JSP ahora se mueve al objeto constructor/compositor de páginas y lo más importante es que puede escribir pruebas de unidad en las pruebas. si los valores correctos están establecidos en el bean de página.

final SimplePageBuilder pageBuilder = new SimplePageBuilder(object1); 
request.setAttribute("TestBean", pageBuilder.buildPage()); 

El método buildPage devolverá el objeto de página de frijol y en el jsp un simple getTitle ejemplo podría simplemente volver el título (fácil de leer como la lógica es abstraído).

0

Es mejor reutilizar y mantener la aplicación web si la lógica empresarial está separada de la lógica de presentación.

Supongamos que tengo 3 páginas JSP, cada una de ellas requiere de una lógica comercial común. Si pongo la lógica comercial dentro de las páginas JSP, habrá una duplicación del código.

Cuestiones relacionadas