Conceptos básicos sobre J2EE y algunos frameworks

Jsp

Las páginas jsp, son páginas dónde además de html, css y scripts, también se puede programar en java, para traducir los resultados de una servlet por ejemplo. Podríamos compararlo a una página de php, o asp antiguo, dónde mezclamos controles web, con código, comúnmente llamado spagheti code, aunque un poquitín más organizado.

Cookie y Session

En las cookies y sessions se guarda información sobre la página que estamos visitando, la diferencia es que la cookie se guarda cómo un fichero en el ordenador cliente y se maneja con javascript desde el navegador y tiene una fecha de caducidad, y la session se usa en el servidor, corre en memoria, para guardar datos mas delicados, cómo por ejemplo el id de sesion de un usuario logeado y que perdura hasta que cerremos el navegador, o le demos click a salir de la cuenta (en caso de ser una sesion de login, claro) o cuando ese usuario ha pasado un cierto tiempo de inactividad en una página. Las cookies pueden guardar nuestras preferencias, sobre que páginas nos gusta navegar y los temas, pudiendo ser usados mas tarde por otras aplicaciones para enviarnos anuncios relacionados con esos temas.

Servlets

Como su nombre indica, los servlets son ficheros de código que se ejecutan en el servidor, conjuntamente con páginas jsp que que envian solicitudes al servlet y este les responde enviando la información solicitada. También puede enviarse una página html entera desde el servlet al navegador cliente. En Asp.Net, se podria comparar al Code behind de la pagina aspx. http servlet request y http servlet response.

Filtros o Interceptors

Son Listeners, que se colocan entre el Servlet y la página jsp, y que pueden filtrar tanto la información de entrada cómo de salida. Pueden haber varios hasta llegar al final del hilo, y estos pueden ser tanto de validación de campos, comprobación de usuarios, login, lo que un usuario específico puede ver en una página, etc, etc. En el caso del login, se comprobaria el nombre del usuario, el password y el rol de este en un filtro, creando una sesion y guardando el id de esta para la autentificación de este usuario automáticamente en un próximo request al servidor. Otro filtro por ejemplo, podria leer las preferencias del usuario de sus cookies y recoger de la base de datos los anuncios que querámos que el usuario vea.

Hibernate

Aqui no voy a explayarme explicando cómo funciona hibernate, sólamente lo que es.

Hibernate es un framework de persistencia de datos, que nos permite tener un acceso a datos mucho mas fácil de manejar ya que el lenguaje de Sql es interpretado y traducido por el este framework, por otro lenguaje mucho mas corto de implementar. Se mapean las tablas de una base de datos con los pojos o javabeans que tenemos en nuestro código y reducimos un porcentaje muy elevado de lineas de código a la hora de interactuar con estos objetos. Al estar las tablas de la base de datos relacionadas con otras tablas, un update de un objeto por ejemplo, nos actualizará todas las tablas en una sola linea de código, pasándole solamente el objeto en question, pojo y no teniendo que parsear todos los campos de de cada tabla y hacer los mas que aburridos inner joins de sql. A buen entendedor, pocas palabras bastan ;)

Struts2

MVC

Model View Controller. La manera en que funciona Struts es un poco diferente a la que lo hace jsp con los Servlets. En un archivo xml de configuración del Struts, parseamos la acción requerida por la jsp, y la mapeamos a un archivo war, que se encargará de buscar el método especificado para esa acción en el xml de configuración, y podrá devolver diferentes resultados, también especificados en el xml que nos mostrarán una cosa u otra. En las páginas jsp, podemos poner tags específicos de Struts, llamnado directamente a las variables que habremos predefinido en el archivo war de las acciones, y pudiendo llamar a todas sus propiedades directamente si este es un objeto. Desde los eventos del formulario y botones, links etc, llamaremos a la acción que queremos usar y vualá, nos devuelve el resultado, sin tener que escribir tanto cómo en una jsp normal.

Spring

Capa de Negocio, también tiene módulos para MVC y Persistencia de datos, implementando interiormente el framework de Hibernate.

Testeos Unitarios

JUnit

Los testeos unitarios, en Netbeans se hacen con JUnit, que crea automáticamente las clases que queremos testear en clases y en un paquete específico de test, sólamente haciendo click en un fichero java, o en una carpeta, o en todo el proyecto, lo que nos creará test de todas las funciones de nuestra aplicación. Los testeos unitarios no están relacionados con J2EE. Podemos crearlos en aplicaciones de escritorio o en aplicaciones de linea de comandos, etc, etc. Allí dónde tengamos cógigo Java. Los testeos que nos crea, están incompletos, y tenemos que acabar las funciones manualmente para ver si estas funciones devuelven, o hacen realmente para lo que están pensadas, devolviéndonos un fallo si no lo hacen. Con los tests unitarios, se reduce muy considerablemente el tiempo de desarrollo y de depuración del código.