Buenas,
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 originalpublic 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)
Articulo articulo
= operaciones.
getArticulo(Integer.
parseInt(request.
getParameter("idArticulo")));
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 originalpublic 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!!