Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2013, 05:38
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Duda Servlet-Controllers-JSP

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 original
  1. public class ArticuloController implements Controller {
  2.    
  3.     protected final Log logger = LogFactory.getLog(getClass());
  4.     private models.Operaciones operaciones = new models.Operaciones();
  5.     @Override
  6.     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
  7.             throws ServletException, IOException, SQLException {    
  8.        
  9.         Articulo articulo = operaciones.getArticulo(Integer.parseInt(request.getParameter("idArticulo")));      
  10.        
  11.         return new ModelAndView("/WEB-INF/jsp/articulo.jsp", "articulo", articulo);
  12.     }
  13. }

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
  1. public class InsertarArticuloServlet extends HttpServlet {
  2.  
  3.     @Override
  4.     @SuppressWarnings("empty-statement")
  5.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  6.         try {
  7.            
  8.             AQUI REALIZO LAS OPERACIONES QUE HAGAN FALTA COMUNICANDOME CON EL MODELO
  9.  
  10.         } catch (FileUploadException ex) {
  11.             Logger.getLogger(InsertarNoticiaServlet.class.getName()).log(Level.SEVERE, null, ex);
  12.         } catch (Exception ex) {
  13.             Logger.getLogger(InsertarNoticiaServlet.class.getName()).log(Level.SEVERE, null, ex);
  14.         }
  15.        
  16.         request.setAttribute("mensaje", "¡EL ARTICULO SE HA CREADO CORRECTAMENE, A LA ESPERA DE SER CONFIRMADO!");
  17.         getServletContext().getRequestDispatcher("/WEB-INF/jsp/mensaje.jsp").forward(request, response);
  18.     }

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!!