Tienes razón, el problema viene de haber programado todo y ahora hacer el UML a la inversa, lo cual ha resultado siendo una estupidez. Pero a estas alturas y con prisas de entregar el proyecto, no me queda otra que intentar hacer funcionar la chapuza.
Tengo un diagrama de clases, pero en él sólo he puesto las entidades, no los servlets puesto que no sabía cómo relacionar estos con las entidades.
Es decir, aparte de estas clases, tengo 20 más llamadas: RegistroServlet, LoginServlet, ModificarCuentaServlet, AnadirArticuloServlet, RealizarPedidoServlet, etc. Estas clases son todas muy similares, y lo único que hacen es recoger la información que el usuario pasa por medio de un formulario y pasarsela al controlador. Por ejemplo, este es el código de RegistroServlet:
Código:
@WebServlet("/registro")
public class RegistroServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
HttpSession sesion = request.getSession(true);
Usuario usuario = (Usuario) sesion.getAttribute("usuario");
if (usuario == null) {
Validador validador = new Validador();
boolean dniValido = validador.validarDNI(request.getParameter("dni"),
request.getParameter("letra"));
boolean existeUsuario = validador.buscarUsuario(request.getParameter("dni")+
request.getParameter("letra"),request.getParameter("email"));
if (existeUsuario) {
response.sendRedirect("error.jsp?tipo=registro");
} else if (!dniValido) {
response.sendRedirect("error.jsp?tipo=dni");
} else {
Usuario nuevoUsuario = new Usuario();
nuevoUsuario.registrar(request);
response.sendRedirect("exito.jsp?tipo=registro");
}
} else {
response.sendRedirect("error.jsp?tipo=restringido");
}
}
}
El resto de servlet son todos muy similares a este. Primero se comprueba la sesión (en este caso comprueba que ningún usuario ha iniciado sesión ya, pero en otros servlets comprueba que el nivel de acceso del administrador es válido, etc), luego se verifican parámetros introducidos por el usuario en caso de que sea necesario, y si todo está bien se crea un objeto de la entidad que actuará de controlador (en este caso el objeto nuevoUsuario, que llama el método registrar() que inserta la información del registro en base de datos). En general siempre paso el objeto
request al método del controlador.
Es decir, la relación entre servlet y entidades es que el servlet crea un objeto y emplea sus métodos para atacar la base de datos. Pero cómo expreso la creación del servlet en el diagrama de secuencia? Puesto que el servlet ha sido llamado mediante un formulario HTML en un documento HTML o JSP, y los objetos request y response que entran como parámetros han sido creados en el momento de esa llamada. Si no me equivoco...
Joer qué puto lío.
Gracias por tu tiempo.
Un saludo.