Pregunta

Esta pregunta ya tiene una respuesta aquí:

Tengo una aplicación que envía el cliente a otro sitio para manejar los pagos.El otro sitio, fuera de el cliente, se llama a una página en nuestro servidor para hacernos saber lo que el estado es de pago.El llama a la página comprobaciones de los parámetros que están dadas por la aplicación de pago y comprueba si la transacción es conocido para nosotros.Que, a continuación, las actualizaciones de la base de datos para reflejar el estado.Todo esto se hace sin ningún tipo de interacción con el cliente.

Yo personalmente he elegido para implementar esta funcionalidad como una JSP, ya que es más fácil soltar un archivo en el sistema de archivos de compilar y empaquetar el archivo y, a continuación, añadir una entrada en un archivo de configuración.

Teniendo en cuenta la funcionalidad de la página me gustaría suponer que un servlet podría ser la opción preferida.La pregunta(s) son:

  • Es mi presunción es correcta?
  • Hay una verdadera razón para utilizar un servlet a través de una JSP?
  • ¿Cuáles son esas razones?
  • ¿Fue útil?

    Solución

    Un JSP se compila a un servlet la primera vez que se ejecuta.Eso significa que en realidad no hay tiempo de ejecución de diferencia entre ellos.

    Sin embargo, la mayoría tiene una tradición de uso de servlets para los controladores y Jsp para las vistas.Dado que los controladores son sólo las clases de java que usted puede conseguir la plena compatibilidad de la herramienta (finalización de código, etc.) de todos los IDEs.Que da una mejor calidad y más rápido los tiempos de desarrollo en comparación con Jsp.Algunos de los más avanzados del IDE (IntelliJ IDEA que viene a la mente) tienen un gran soporte de JSP, la representación argumento obsoletos.

    Si estás haciendo tu propio framework, o simplemente haciendo con simple Jsp, entonces usted debe sentirse libre para continuar el uso de Jsp.No hay diferencia de rendimiento, y si se siente Jsp son más fáciles de escribir, entonces por todos los medios continuar.

    Otros consejos

    Jsp:Para presentar los datos al usuario.Ninguna lógica de negocio debería estar aquí, y ciertamente no hay acceso a bases de datos.

    Servlets:Para controlar la entrada de un formulario o una dirección URL específica.Por lo general la gente va a usar una biblioteca como Struts/Spring en la parte superior de Servlets para borrar la programación.Independientemente de que el servlet sólo debe validar los datos que vienen en y, a continuación, pasar a un servidor de negocio de la capa de aplicación (que se puede codificar de los casos de prueba en contra).A continuación, debe poner los valores resultantes de la solicitud o de la sesión, y llamar a un JSP para mostrar ellos.

    Modelo:Un modelo de datos que contiene los datos estructurados de que el sitio maneja.El servlet puede tomar los argumentos, los puso en el modelo y, a continuación, llamar a la capa de negocio.El modelo puede entonces interfaz con el back-end DAOs (o Hibernación) para acceder a la base de datos.

    No trivial proyecto debe implementar una estructura MVC.Es, por supuesto, una exageración trivial de la funcionalidad.En tu caso, me gustaría poner en práctica un servlet que se llama un DAO para actualizar el estado, etc, o lo que sea necesario.

    Jsp debe ser utilizado en la capa de presentación, servlets para la lógica del negocio y el back-end (normalmente la capa de base de datos) código.

    Yo no conozco ninguna razón por qué usted no puede usar un JSP como usted describe (que se compila a un servlet por el containter de todos modos), pero tienes razón, el método preferido es hacer un servlet en el primer lugar.

    Jsp es un acceso directo para escribir un servlet.De hecho, son traducidos a un servlet de java de código antes de la compilación.(Se puede comprobar en algunas de tomcat subdir que no recuerdo el nombre).

    A elegir entre un servlet JSP yo uso una regla simple:si la página contiene más código html de código java, vaya para JSP, de lo contrario, acaba de escribir un servlet.En general, que equivale a:el uso de Jsp para la presentación de contenidos y servlets para el control, validación, etc.

    También, es más fácil organizar y estructurar el código dentro de un servlet, ya que utiliza la llanura de la clase java sintaxis.Jsp tienden a ser más monolítico, aunque su posible crear métodos en el interior, a continuación,.

    Hay 2 reglas muy sencillas:

    1. Cada vez que quiero escribir código Java (lógica de negocio), hacerlo en una clase de Java (por lo tanto, Servlet).
    2. Cada vez que quiero escribir HTML/CSS/JS código (ver/la lógica de plantilla), hacerlo en una JSP.

    Relacionadas con la pregunta:

    JSP son esencialmente marcado que automáticamente se compila a un servlet por el contenedor de servlets, por lo que el paso de compilación que va a ocurrir en ambas instancias.Esta es la razón por la que un contenedor de servlets que soporta JSP debe tener la plena JDK disponible en lugar de que sólo necesitan la JRE.

    Así que la razón principal para JSP es reducir la cantidad de código necesario para abrir una página.Si usted no tiene que renderizar una página, un servlet es mejor.

    Sé que esta no es la respuesta popular hoy en día, pero:Cuando estoy diseñando una aplicación desde cero, yo siempre uso Jsp.Cuando la lógica no es trivial, creo ordinario de clases de Java para hacer el trabajo pesado que me llaman de la JSP.Nunca he entendido el argumento de que se debe utilizar servlets, porque, como puro clases de Java, que son más fáciles de mantener.Un JSP puede llamar fácilmente a una pura clase de Java, y de curso ordinario de clase de Java es tan fácil de mantener como cualquier servlet.Es más fácil dar formato a una página en un JSP porque usted puede poner todas las marcas en línea en lugar de tener que escribir un montón de println la.Pero la mayor ventaja de Jsp es que sólo se pueden colocar en un directorio y que son directamente accesibles:no es necesario meterse con el establecimiento de relaciones entre la dirección y el archivo de clase.La seguridad es fácilmente manejado por tener cada JSP comenzar con un control de seguridad, que puede ser una sola instrucción de llamada, así que no hay necesidad de poner la seguridad en un despacho de la capa.

    La única razón por la que puede ver el uso de un servlet es que si usted necesita un complejo de correspondencia entre las direcciones Url y el resultado de la ejecución de la clase.Gusta, si quieres examinar la dirección URL y, a continuación, llamar a una de las muchas clases dependiendo del estado de la sesión o alguna de esas.Personalmente nunca he querido hacer esto, y las aplicaciones que he visto que hacen que tienden a ser difícil de mantener, ya incluso antes de que pueda comenzar a hacer un cambio, usted tiene que averiguar lo que el código está siendo ejecutado.

    La mayoría de las aplicaciones java en la actualidad se construyen en el patrón MVC...En el controlador de lado (servlet) implementar la lógica de negocio.El servlet controlador generalmente reenviar la solicitud a un jsp que va a generar el código html real de respuesta (la Vista en MVC).El objetivo es separar las preocupaciones...Miles de libros se han escrito sobre el tema.

    En una arquitectura MVC, servlets se utiliza como controlador y Jsp como la vista.Pero ambos son técnicamente es la misma.JSP se traduce en un servlet, ya sea en tiempo de compilación (como en JDeveloper) o cuando se accede por primera vez (como en Tomcat).Por lo que la diferencia real está en la facilidad de uso.Estoy bastante seguro de que usted tendrá un tiempo difícil de representación página HTML utilizando servlets;pero contrario al sentido común, que en realidad va a encontrar que sea bastante fácil de código incluso un bastante compleja lógica de todo, dentro de JSP (con la ayuda de algunos preparados de ayudante de clase tal vez).PHP chicos hacen esto todo el tiempo.Y así caen en la trampa de la creación de espaguetis códigos.Así que mi solución a su problema:si usted encuentra que es más fácil de código en JSP y no implican demasiados código, siéntase libre de código JSP.De lo contrario, el uso de servlets.

    De acuerdo con todos los puntos anteriores acerca de las diferencias entre Jsp y Servlets, pero aquí hay un par de consideraciones adicionales.Usted escribe:

    Tengo una aplicación que envía el cliente a otro sitio para manejar el pagos.El otro sitio, fuera de el cliente llama a una página de nuestro servidor para hacernos saber cuál es el estado es de pago.El llamado de la página comprueba los parámetros que se dan por la aplicación de pago y cheques a ver si la transacción es conoce a nosotros.Luego se actualiza el base de datos para reflejar el estado.Este se lleva a cabo sin ningún tipo de interacción con el cliente.

    Su aplicación está consumiendo el servicio de pago de otra aplicación.Su solución es frágil porque si el servicio de pago en los otros cambios de la aplicación, que rompe su página JSP.O si desea cambiar su aplicación de las políticas de pago, entonces la página se tiene que cambiar.La respuesta corta es que su aplicación debe consumir de la solicitud de pago del servicio a través de un servicio web.Ni un servlet ni una página JSP es el lugar apropiado para poner su consumo de lógica.

    Segundo, a lo largo de esas líneas, la mayoría de los usos de servlets/JSP páginas en los últimos años se han puesto dentro del contexto de un framework como Spring o Struts.Yo recomendaría la Primavera, ya que ofrece la pila completa de lo que usted necesita desde el servidor de páginas web servicio de puerta de enlace de la lógica de DAOs.Si usted quiere entender las tuercas y los pernos de la Primavera, yo recomendaría La primavera en Acción.Si usted necesita para comprender mejor cómo a nivel de una arquitectura empresarial escrita en un lenguaje como Java o C#), yo recomendaría Fowler Los patrones de Arquitectura de Aplicaciones Empresariales.

    Sí, esto debe ser un servlet.Un JSP puede ser más fácil de desarrollar, pero un servlet será más fácil de mantener.Imagínense tener que corregir algunos al azar error en 6 meses y tratando de recordar cómo funcionaba.

    En java servlet las etiquetas HTML están incrustadas en java codificación.En la JSP de java codificaciones están incrustadas en las etiquetas de HTML.

    Para una gran aplicación para gran problema el servlet es complejo,de leer, de entender,de depuración,etc debido a la ilegibilidad de integrar más etiquetas html dentro de la java codificación..Así que el uso de jsp.En jsp es fácil de entender,depuración,etc.

    Gracias & Saludos, Sivakumar.j

    creo que su hasta usted?porque JSP de Java dentro de HTML y Servlet de Java que puede hacer el HTML dentro de

    hmmm...servlet es más sercure de jsp, porque si usted se somete a un Servlet y adelante a otro JSP no es la extensión de archivo aparecen y también usted no puede ver lo que la Página es..

    pero la ventaja de JSP se puede codificar fácilmente.

    Licenciado bajo: CC-BY-SA con atribución
    No afiliado a StackOverflow
    scroll top