Vamos a crear la estructura del proyecto en Eclipse para que cumpla con las capas que propone la arquitectura JEE de java.
Contenido
Crear paquetes
Para crear los paquetes en el proyecto, nos posicionamos en appWeb -> Java Resources -> src/main/java, clic con el botón derecho del mouse ->New -> Package. Escribir Name: y clic en Finish.
Los nombres de los paquetes deben estar en minúsculas.
Crear carpetas
Para crear las carpetas en el proyecto, nos posicionamos en appWeb -> src -> main -> webapp. clic con el botón derecho del mouse ->New -> Folder. Escribir Folder name: y clic en Finish.
Capa de datos
Parte del back-end
Paquete com.aor.test.entity
- Modela las tablas de la Base de Datos en objetos Java.
- Contiene todos los entity de las tablas.
- Apoyo para el API jpa.
Paquete com.aor.test.entityinterface
- Expone los métodos para la comunicación con otras capas.
- Cada una de las capas solo se debe de comunicar por interfaces.
Paquete com.aor.test.dao
- Todos los métodos para persistir la información.
- Toda interacción con la Base de Datos.
- Interactúan directamente con los entitys..
Paquete com.aor.test.daointerface
- Expone los métodos para la comunicación con otras capas.
- Cada una de las capas solo se debe de comunicar por interfaces.
Capa de negocio
Parte del back-end
Paquete com.aor.test.ejb
- Se agrega toda la lógica de negocio.
- Todos los métodos transaccionales.
Paquete com.aor.test.ejbinterface
- Expone los métodos para la comunicación con otras capas.
- Cada una de las capas solo se debe de comunicar por interfaces.
Capa de dominio
Parte del back-end
Paquete com.aor.test.jb
- JavaBean
- Se ocupa para enviar objetos hacia las vistas
- Modela una tabla para enviarla a la capa de presentación, por que los entitys son exclusivos para la capa de datos. Esto para evitar problemas de seguridad.
Capa de otros
Parte del back-end
Paquete com.aor.test.appWeb
- Tiene el nombre de la aplicación.
- Se ocupa para métodos auxiliares o genéricos que se ocuparan en toda la aplicación.
- Por ejemplo la encriptación de la contraseña de los usuarios.
Capa de presentación
A excepción del paquete de servlet que es parte del back-end, las carpetas son parte del front-end.
Paquete com.aor.test.servlet
- Es el controller
- Solo envían y reciben información.
- No debe haber ninguna lógica de negocio.
Carpeta por cada tabla de la Base de Datos
- El nombre de la carpeta es igual al nombre de la tabla en minúsculas.
- Por cada tabla crear una carpeta
- En nuestro caso crearíamos las carpetas users y logins_users.
- En estas agregaremos todas las acciones, por ejemplo insert, update, delete y select.
Carpeta js/controllers
- Para cumplir con el MVC.
- Acciones sobre el formulario.
- Todos los eventos relacionados con el formulario.
Carpeta js/models
- Para cumplir con el MVC.
- Modelan un formulario.
- Es una analogía de un JavaBean.
Carpeta css
- Hojas de estilos particulares.
Carpeta img
- Cualquier imagen que se utilice en la aplicación.
Carpeta library
- Plug-ins, librerías externas o framework para la vista. Por ejemplo bootstrap.
Resultado
El resultado final es.
Para los paquetes:
Para las carpetas:
NOTAS
- La capa de presentación es el conjunto de Servlet’s y JSP’s.
- La arquitectura de JEE propone JavaServer Faces, pero tiene los siguiente inconvenientes:
- Se pierden las ventajas del HTML5.
- El diseñador no puede trabajar de forma paralela, ya que es código del lado del servidor.
- No es posible enfocarse cada quien en una capa.
- Por esta razón se propone trabajar con Servlet’s y JSP’s.
- En el caso de que se necesitara agregar servicios para ser consumidos por otros sistemas, se puede agregar una nueva capa de servicios por encima de la capa EJB. La capa de servicios interactuara con la capa de EJB. Este caso se vera posteriormente.