se me acaba de plantear una duda mientras desarrollaba mi pagina web.
Supongamos que tenemos un boton "Ver articulo" en la web, yo hasta ahora lo que hacia era en mi dispatcher-servlet.xml asociar la URL que quería mostrar con un controlador de tal manera que se ejecutaba el controlador con el siguiente código
Código JAVA:
Ver original
public class ArticuloController implements Controller { protected final Log logger = LogFactory.getLog(getClass()); private models.Operaciones operaciones = new models.Operaciones(); @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) return new ModelAndView("/WEB-INF/jsp/articulo.jsp", "articulo", articulo); } }
desde el controlador llamo al Modelo para obtener el Articulo y posteriormente llamo al archivo JSP donde lo muestro....
Ahora bien en este caso... llamo a un controlador porque solo tengo que realizar una petición al Modelo sin realizar ninguna operación más
Sin embargo si quiero por ejemplo insertar un nuevo Articulo mediante un Formulario, no llamo a un controlador, sino que llamo a un Servlet donde hago todas las operaciones comunicandome con el modelo y luego al final redirecciono a un JSP de la siguiente manera por ejemplo:
Código JAVA:
Ver original
public class InsertarArticuloServlet extends HttpServlet { @Override @SuppressWarnings("empty-statement") protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { AQUI REALIZO LAS OPERACIONES QUE HAGAN FALTA COMUNICANDOME CON EL MODELO } catch (FileUploadException ex) { Logger.getLogger(InsertarNoticiaServlet.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(InsertarNoticiaServlet.class.getName()).log(Level.SEVERE, null, ex); } request.setAttribute("mensaje", "¡EL ARTICULO SE HA CREADO CORRECTAMENE, A LA ESPERA DE SER CONFIRMADO!"); getServletContext().getRequestDispatcher("/WEB-INF/jsp/mensaje.jsp").forward(request, response); }
Entonces al final en algunos casos llamo a Controladores y en otros casos llamo a Servlets, y no me queda muy claro si intentando basarme en el patrón de diseño MVC esto está bien hecho, o si debería usar solo Servlets o solo Controladores, o puedo tener un paquete con Controladores y Servlets mezclados...
Alguien puede orientarme un poco??En teoría ambos cumplen la misma función pero me estoy liando jaja!!