diff --git a/UyTube_logica/src/Logica/Controladores/CUsuario.java b/UyTube_logica/src/Logica/Controladores/CUsuario.java
index 3080ca81d80447b1411790f77db4365cd771cfbc..b771176748ea2d428a61ee6956a5548161a7e52c 100644
--- a/UyTube_logica/src/Logica/Controladores/CUsuario.java
+++ b/UyTube_logica/src/Logica/Controladores/CUsuario.java
@@ -167,6 +167,9 @@ public class CUsuario implements IUsuario {
     @Override
     public void altaUsuarioCanal(DtUsuario usr, DtCanal canal) {
         // valida datos recibidos
+        if (sesionIniciada()){
+            throw new RuntimeException("Ya hay una sesión iniciada");
+        }
         if (usr == null){
             throw new RuntimeException("El DataType usuario no puede ser null");
         }
diff --git a/UyTube_web/libreria/UyTube_logica.jar b/UyTube_web/libreria/UyTube_logica.jar
index 9511600f64bdaca5d05f884b8a20b9f93a20e956..34ac517aa79d8807263020535e986c75c03aae4f 100644
Binary files a/UyTube_web/libreria/UyTube_logica.jar and b/UyTube_web/libreria/UyTube_logica.jar differ
diff --git a/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java b/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java
index 0752f09def31a8cec5757c256cd43ffeb9db4338..25b7aed1a18f55898f9b06aebc69073a03237118 100644
--- a/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java
+++ b/UyTube_web/src/java/com/uytube/AltaListaReproduccion.java
@@ -26,32 +26,6 @@ import javax.servlet.http.HttpServletResponse;
  */
 public class AltaListaReproduccion extends HttpServlet {
 
-    /**
-     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
-     * methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet AltaListaReproduccion</title>");
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet AltaListaReproduccion at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /**
      * Handles the HTTP <code>GET</code> method.
@@ -77,8 +51,11 @@ public class AltaListaReproduccion extends HttpServlet {
             rd = request.getRequestDispatcher("/AltaListaReproduccion.jsp");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -116,10 +93,13 @@ public class AltaListaReproduccion extends HttpServlet {
             response.sendRedirect("usuario-consultar?id="+ usu.getNickname() +"&ps=LISTAS");
             
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
+            System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
-            
         }
         
         
diff --git a/UyTube_web/src/java/com/uytube/AltaUsuario.java b/UyTube_web/src/java/com/uytube/AltaUsuario.java
index 627f392daad17ecabc97c8fad7c5f29b969e96e7..90452a082d029ffe97b0704a4fe983ef58265558 100644
--- a/UyTube_web/src/java/com/uytube/AltaUsuario.java
+++ b/UyTube_web/src/java/com/uytube/AltaUsuario.java
@@ -30,23 +30,6 @@ import javax.servlet.http.HttpServletResponse;
  */
 public class AltaUsuario extends HttpServlet {
 
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet AltaUsuario</title>");
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet AltaUsuario at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /**
      * Handles the HTTP <code>GET</code> method.
@@ -64,8 +47,11 @@ public class AltaUsuario extends HttpServlet {
             rd = request.getRequestDispatcher("/AltaUsuario.jsp");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -121,8 +107,11 @@ public class AltaUsuario extends HttpServlet {
             response.sendRedirect("/uytube/usuario-consultar?id=" + Usu.getNickname());
 
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
diff --git a/UyTube_web/src/java/com/uytube/AltaVideo.java b/UyTube_web/src/java/com/uytube/AltaVideo.java
index bbec279e7317ae80188f8a0ae65aef78843dcd72..b2cc5910974872a5a8ef29c85243e545531b207a 100644
--- a/UyTube_web/src/java/com/uytube/AltaVideo.java
+++ b/UyTube_web/src/java/com/uytube/AltaVideo.java
@@ -51,8 +51,11 @@ public class AltaVideo extends HttpServlet {
             rd = request.getRequestDispatcher("/AltaVideo.jsp");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -102,9 +105,12 @@ public class AltaVideo extends HttpServlet {
             response.sendRedirect("/uytube/buscar?texto=" + vid.getNombre());
 
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
-            rd = request.getRequestDispatcher("/Presentacion.jsp");
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
 
diff --git a/UyTube_web/src/java/com/uytube/BorrarUsuario.java b/UyTube_web/src/java/com/uytube/BorrarUsuario.java
index 5f096f7ad5b98a2d8a127d10aac1e030c6027136..4c1471468dc5596c3f59487a3a98a5882d10e908 100644
--- a/UyTube_web/src/java/com/uytube/BorrarUsuario.java
+++ b/UyTube_web/src/java/com/uytube/BorrarUsuario.java
@@ -40,9 +40,12 @@ public class BorrarUsuario extends HttpServlet {
             rd = request.getRequestDispatcher("/");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
-            rd = request.getRequestDispatcher("404.jsp");
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
     }
diff --git a/UyTube_web/src/java/com/uytube/Buscar.java b/UyTube_web/src/java/com/uytube/Buscar.java
index 2d236ab01c016526d2392042a7104a3943199d5b..37ee19b4eb18aa6800e71a0a6ca0a580e8e29224 100644
--- a/UyTube_web/src/java/com/uytube/Buscar.java
+++ b/UyTube_web/src/java/com/uytube/Buscar.java
@@ -98,8 +98,11 @@ public class Buscar extends HttpServlet {
             rd.forward(request, response);
             
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
diff --git a/UyTube_web/src/java/com/uytube/CerrarSesion.java b/UyTube_web/src/java/com/uytube/CerrarSesion.java
index 7f85a1ae4fc7d11d5a274ada7b30ad0445779077..e8cfdfe3aed144bcce8146d7a7efcc672d7e77c4 100644
--- a/UyTube_web/src/java/com/uytube/CerrarSesion.java
+++ b/UyTube_web/src/java/com/uytube/CerrarSesion.java
@@ -46,8 +46,11 @@ public class CerrarSesion extends HttpServlet {
             }
             response.sendRedirect("");
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
diff --git a/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java b/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java
index e558b4af9ae67957b7ddfbb7933506bfe1db9c0d..1ce8a3b2699e5f1a29736e8ab0e5518ce331768b 100644
--- a/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java
+++ b/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java
@@ -24,32 +24,6 @@ import javax.servlet.http.HttpServletResponse;
  */
 public class ConsultaListaReproducion extends HttpServlet {
 
-    /**
-     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
-     * methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet ConsultaListaReproducion</title>");
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet ConsultaListaReproducion at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /**
      * Handles the HTTP <code>GET</code> method.
@@ -93,28 +67,17 @@ public class ConsultaListaReproducion extends HttpServlet {
             rd.forward(request, response);
             
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
 
     }
 
-    /**
-     * Handles the HTTP <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
-
     /**
      * Returns a short description of the servlet.
      *
diff --git a/UyTube_web/src/java/com/uytube/ConsultaUsuario.java b/UyTube_web/src/java/com/uytube/ConsultaUsuario.java
index 98f2a0f908d818f9608164f275490bba746d4079..b6c9f0dfb397a4a63cc7983f6dffc8777f3d0405 100644
--- a/UyTube_web/src/java/com/uytube/ConsultaUsuario.java
+++ b/UyTube_web/src/java/com/uytube/ConsultaUsuario.java
@@ -72,8 +72,11 @@ public class ConsultaUsuario extends HttpServlet {
             rd.forward(request, response);
 
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
diff --git a/UyTube_web/src/java/com/uytube/ConsultaVideo.java b/UyTube_web/src/java/com/uytube/ConsultaVideo.java
index 771fff91975debccec9f43566bea09eaf8943bd9..335fb6a5a692227165c5ab2c90735e80ccdff2ab 100644
--- a/UyTube_web/src/java/com/uytube/ConsultaVideo.java
+++ b/UyTube_web/src/java/com/uytube/ConsultaVideo.java
@@ -64,8 +64,11 @@ public class ConsultaVideo extends HttpServlet {
             rd = request.getRequestDispatcher("/ConsultaVideo.jsp");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -162,9 +165,12 @@ public class ConsultaVideo extends HttpServlet {
             }
 
         } catch (IOException | NumberFormatException e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
-            rd = request.getRequestDispatcher("/");
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
     }
diff --git a/UyTube_web/src/java/com/uytube/IniciarSesion.java b/UyTube_web/src/java/com/uytube/IniciarSesion.java
index 81309ab3c912b2518c4474c218a5ea4b3a5c8fae..0449c0bb4f43c1453e9971b564278d2aec158d1b 100644
--- a/UyTube_web/src/java/com/uytube/IniciarSesion.java
+++ b/UyTube_web/src/java/com/uytube/IniciarSesion.java
@@ -71,8 +71,11 @@ public class IniciarSesion extends HttpServlet {
             rd = request.getRequestDispatcher("/IniciarSesion.jsp");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -113,10 +116,12 @@ public class IniciarSesion extends HttpServlet {
             }
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
-            response.sendRedirect("");
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
-            rd = request.getRequestDispatcher("/IniciarSesion.jsp");
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
     }
diff --git a/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java b/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java
index c30306c80e42dab2582003b18d85330c6c6fba58..86bb191d2c705fa071f2d16092c23b13d1a750ba 100644
--- a/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java
+++ b/UyTube_web/src/java/com/uytube/ModificarListaReproduccion.java
@@ -26,32 +26,6 @@ import javax.servlet.http.HttpServletResponse;
  */
 public class ModificarListaReproduccion extends HttpServlet {
 
-    /**
-     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
-     * methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet ModificarListaReproduccion</title>");
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet ModificarListaReproduccion at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /**
      * Handles the HTTP <code>GET</code> method.
@@ -87,8 +61,11 @@ public class ModificarListaReproduccion extends HttpServlet {
             rd.forward(request, response);
             
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -127,8 +104,11 @@ public class ModificarListaReproduccion extends HttpServlet {
             response.sendRedirect("usuario-consultar?id="+ usu.getNickname()+"&ps=LISTAS");
             
         } catch (Exception e) {
-             System.out.println(e.getMessage());
+            System.out.println("---- Exception ----");
+            System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
             
diff --git a/UyTube_web/src/java/com/uytube/ModificarUsuario.java b/UyTube_web/src/java/com/uytube/ModificarUsuario.java
index 4b7d68de59565334019a11a7a241ca0ab933de7e..6e489d062bfb07b9d9fbe65b3944bd26ac7650ed 100644
--- a/UyTube_web/src/java/com/uytube/ModificarUsuario.java
+++ b/UyTube_web/src/java/com/uytube/ModificarUsuario.java
@@ -28,32 +28,6 @@ import javax.servlet.http.HttpServletResponse;
  */
 public class ModificarUsuario extends HttpServlet {
 
-    /**
-     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
-     * methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet ModificarUsuario</title>");
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet ModificarUsuario at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /**
      * Handles the HTTP <code>GET</code> method.
@@ -90,8 +64,11 @@ public class ModificarUsuario extends HttpServlet {
             rd.forward(request, response);
 
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -149,9 +126,12 @@ public class ModificarUsuario extends HttpServlet {
             response.sendRedirect("/uytube/usuario-consultar?id=" + Usu.getNickname());
 
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
-            rd = request.getRequestDispatcher("/");
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
     }
diff --git a/UyTube_web/src/java/com/uytube/ModificarVideo.java b/UyTube_web/src/java/com/uytube/ModificarVideo.java
index c8637c15e0f9021961e54821659f7d2d931d8fc5..dfe66c2bb62711923c9222b8103247e314f6a000 100644
--- a/UyTube_web/src/java/com/uytube/ModificarVideo.java
+++ b/UyTube_web/src/java/com/uytube/ModificarVideo.java
@@ -55,8 +55,11 @@ public class ModificarVideo extends HttpServlet {
             rd = request.getRequestDispatcher("/ModificarVideo.jsp");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
@@ -108,9 +111,12 @@ public class ModificarVideo extends HttpServlet {
             sys.modificarVideo(vid);
             response.sendRedirect("buscar?texto=" + vid.getNombre());
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
-            rd = request.getRequestDispatcher("/");
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
     }
diff --git a/UyTube_web/src/java/com/uytube/PeticionAjax.java b/UyTube_web/src/java/com/uytube/PeticionAjax.java
index 92cbb1600872f6c5eb7bb55d98667ab5d84a11d3..8ad1683c5aa40ca4eda58e640be60d2f658df2f8 100644
--- a/UyTube_web/src/java/com/uytube/PeticionAjax.java
+++ b/UyTube_web/src/java/com/uytube/PeticionAjax.java
@@ -7,6 +7,7 @@ package com.uytube;
 
 import java.io.IOException;
 import java.io.PrintWriter;
+import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -18,32 +19,6 @@ import javax.servlet.http.HttpServletResponse;
  */
 public class PeticionAjax extends HttpServlet {
 
-    /**
-     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
-     * methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet PeticionAjax</title>");            
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet PeticionAjax at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /**
      * Handles the HTTP <code>GET</code> method.
@@ -56,35 +31,32 @@ public class PeticionAjax extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
-         /*
+         
+        try {
+            /*
          Aca debe recibir un parametor de nombre accion el cual define cual es la funcion
          que se debe ejecutar
-        */
-        String accion = request.getParameter("accion"); // obtiene lo enviado por AJAX
-        String txtUsuario = request.getParameter("nombre"); // obtiene lo enviado por AJAX
-        response.setContentType("text/plain");  //Set content type of the response so that jQuery knows what it can expect.
-        response.setCharacterEncoding("UTF-8"); //You want world domination, huh?
-        String respuesta;
-        if(txtUsuario.equals("pedro")){
-            respuesta = "Pedro ya existe";
-        }else{
-            respuesta = "El usuario está disponible";
+             */
+            String accion = request.getParameter("accion"); // obtiene lo enviado por AJAX
+            String txtUsuario = request.getParameter("nombre"); // obtiene lo enviado por AJAX
+            response.setContentType("text/plain");  //Set content type of the response so that jQuery knows what it can expect.
+            response.setCharacterEncoding("UTF-8"); //You want world domination, huh?
+            String respuesta;
+            if (txtUsuario.equals("pedro")) {
+                respuesta = "Pedro ya existe";
+            } else {
+                respuesta = "El usuario está disponible";
+            }
+            response.getWriter().write(respuesta);
+        } catch (Exception e) {
+            System.out.println("---- Exception ----");
+            System.out.println(e.getMessage());
+            System.out.println("-------------------");
+            RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
+            rd.forward(request, response);
         }
-        response.getWriter().write(respuesta);
-    }
-
-    /**
-     * Handles the HTTP <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
     }
 
     /**
diff --git a/UyTube_web/src/java/com/uytube/Presentacion.java b/UyTube_web/src/java/com/uytube/Presentacion.java
index f5487f65e79b03a7f4a2dfacd3ed28dbc1286ebb..a677db691c7c4318d8f7236096a247e5b99b0d4f 100644
--- a/UyTube_web/src/java/com/uytube/Presentacion.java
+++ b/UyTube_web/src/java/com/uytube/Presentacion.java
@@ -27,32 +27,6 @@ import javax.servlet.http.HttpServletResponse;
 @WebServlet(name = "Presentacion", urlPatterns = {"/"})
 public class Presentacion extends HttpServlet {
 
-    /**
-     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
-     * methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet Presentacion</title>");
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet Presentacion at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /**
      * Handles the HTTP <code>GET</code> method.
@@ -78,28 +52,17 @@ public class Presentacion extends HttpServlet {
             rd = request.getRequestDispatcher("/Presentacion.jsp");
             rd.forward(request, response);
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
 
     }
 
-    /**
-     * Handles the HTTP <code>POST</code> method.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    protected void doPost(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        processRequest(request, response);
-    }
-
     /**
      * Returns a short description of the servlet.
      *
diff --git a/UyTube_web/src/java/com/uytube/SeguirUsuario.java b/UyTube_web/src/java/com/uytube/SeguirUsuario.java
index e48275fcc292877509dfd58ea068ef20ee41fd76..ee77487db1fce60c5f0b8d14a626856f9622fd34 100644
--- a/UyTube_web/src/java/com/uytube/SeguirUsuario.java
+++ b/UyTube_web/src/java/com/uytube/SeguirUsuario.java
@@ -47,8 +47,11 @@ public class SeguirUsuario extends HttpServlet {
             response.sendRedirect("/uytube/usuario-consultar?id=" + nick);
             
         } catch (Exception e) {
+            System.out.println("---- Exception ----");
             System.out.println(e.getMessage());
+            System.out.println("-------------------");
             RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
             rd = request.getRequestDispatcher("/404.jsp");
             rd.forward(request, response);
         }
diff --git a/UyTube_web/web/404.jsp b/UyTube_web/web/404.jsp
index 3feb7b96486de8c56bd4fc63b1cc21bc94ab638e..38997583ea2e2da439da910c878fbd4bd002d636 100644
--- a/UyTube_web/web/404.jsp
+++ b/UyTube_web/web/404.jsp
@@ -14,7 +14,7 @@
         <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
         <link rel="stylesheet" type="text/css" href="iconos/style.css">
         <link rel="icon" type="image/png" href="imagenes/icono.png" />
-        <title>UyTube-404</title>
+        <title>UyTube - 404</title>
         
     <style>
         *
@@ -258,7 +258,26 @@
                     <div class="clip"><div class="shadow"><span class="digit firstDigit">4</span></div></div>
                     <div class="msg">Uy!<span class="triangle"></span></div>
                 </div>
-                <h2 class="h1">UyTube se cayó</h2>
+                <h2 class="h1">¡Uy!, no encontramos esta página</h2>
+                <%
+                    String mensajeError = (String) request.getAttribute("mensajeError");
+                    if (mensajeError != null){
+                        String msj = "";
+                        for (int idx = 0; idx < mensajeError.length(); idx++) {
+                            if (mensajeError.charAt(idx) == '\n'){
+                                break;
+                            }
+                            msj += mensajeError.charAt(idx);
+                        }
+                %>
+                <h2 class="h1" style="font-size: 20px;"><%= msj %></h2>
+                <%
+                    }
+                %>
+                
+                <h2 class="h1">
+                    <a href="/uytube/">Ir al inicio</a>
+                </h2>
             </div>
         </div>
     </div>
diff --git a/UyTube_web/web/500.jsp b/UyTube_web/web/500.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..f93e387ceeca3d9adf7b0488ea2d3de8e5703f3e
--- /dev/null
+++ b/UyTube_web/web/500.jsp
@@ -0,0 +1,270 @@
+<%-- 
+    Document   : 404_2
+    Created on : 12/10/2019, 04:17:57 AM
+    Author     : Carlos BM
+--%>
+
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<!DOCTYPE html>
+<html lang="es">
+    <head>
+        <meta charset="UTF-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+        <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
+        <link rel="stylesheet" type="text/css" href="iconos/style.css">
+        <link rel="icon" type="image/png" href="imagenes/icono.png" />
+        <title>UyTube - 500</title>
+        
+    <style>
+        *
+        {
+            font-family: 'PT Sans Caption', sans-serif, 'arial', 'Times New Roman';
+        }
+
+        /* Error Page */
+        .error .clip .shadow
+        {
+            height: 180px;  /*Contrall*/
+        }
+        .error .clip:nth-of-type(2) .shadow
+        {
+            width: 130px;   /*Contrall play with javascript*/ 
+        }
+        .error .clip:nth-of-type(1) .shadow, .error .clip:nth-of-type(3) .shadow
+        {
+            width: 250px; /*Contrall*/
+        }
+        .error .digit
+        {
+            width: 150px;   /*Contrall*/
+            height: 150px;  /*Contrall*/
+            line-height: 150px; /*Contrall*/
+            font-size: 120px;
+            font-weight: bold;
+        }
+        .error h2   /*Contrall*/
+        {
+            font-size: 32px;
+        }
+        .error .msg /*Contrall*/
+        {
+            top: -190px;
+            left: 30%;
+            width: 80px;
+            height: 80px;
+            line-height: 80px;
+            font-size: 32px;
+        }
+        .error span.triangle    /*Contrall*/
+        {
+            top: 70%;
+            right: 0%;
+            border-left: 20px solid #535353; /*triandulito del uy*/
+            border-top: 15px solid transparent;
+            border-bottom: 15px solid transparent;
+        }
+
+
+        .error .container-error-404
+        {
+            margin-top: 10%;
+            position: relative;
+            height: 250px;
+            padding-top: 40px;
+        }
+        .error .container-error-404 .clip
+        {
+            display: inline-block;
+            transform: skew(-45deg);
+        }
+        .error .clip .shadow
+        {
+
+            overflow: hidden;
+        }
+        .error .clip:nth-of-type(2) .shadow
+        {
+            overflow: hidden;
+            position: relative;
+            box-shadow: inset 20px 0px 20px -15px rgba(150, 150, 150,0.8), 20px 0px 20px -15px rgba(150, 150, 150,0.8);
+        }
+
+        .error .clip:nth-of-type(3) .shadow:after, .error .clip:nth-of-type(1) .shadow:after
+        {
+            content: "";
+            position: absolute;
+            right: -8px;
+            bottom: 0px;
+            z-index: 9999;
+            height: 100%;
+            width: 10px;
+            background: linear-gradient(90deg, transparent, rgba(173,173,173, 0.8), transparent);
+            border-radius: 50%;
+        }
+        .error .clip:nth-of-type(3) .shadow:after
+        {
+            left: -8px;
+        }
+        .error .digit
+        {
+            position: relative;
+            top: 8%;
+            color: white;
+            background: #9d24b6;  /* fondo de los circulos*/
+            border-radius: 50%;
+            display: inline-block;
+            transform: skew(45deg);
+        }
+        .error .clip:nth-of-type(2) .digit
+        {
+            left: -10%;
+        }
+        .error .clip:nth-of-type(1) .digit
+        {
+            right: -20%;
+        }.error .clip:nth-of-type(3) .digit
+        {
+            left: -20%;
+        }    
+        .error h2
+        {
+            color: #A2A2A2; /*uy tube se cayó*/
+            font-weight: bold;
+            padding-bottom: 20px;
+        }
+        .error .msg
+        {
+            position: relative;
+            z-index: 9999;
+            display: block;
+            background: #535353; /*logo*/
+            color: #A2A2A2; /*uy*/
+            border-radius: 50%;
+            font-style: italic;
+        }
+        .error .triangle
+        {
+            position: absolute;
+            z-index: 999;
+            transform: rotate(45deg);
+            content: "";
+            width: 0; 
+            height: 0; 
+        }
+
+        /* Error Page */
+        @media(max-width: 767px)
+        {
+            /* Error Page */
+            .error .clip .shadow
+            {
+                height: 100px;  /*Contrall*/
+            }
+            .error .clip:nth-of-type(2) .shadow
+            {
+                width: 80px;   /*Contrall play with javascript*/ 
+            }
+            .error .clip:nth-of-type(1) .shadow, .error .clip:nth-of-type(3) .shadow
+            {
+                width: 100px; /*Contrall*/
+            }
+            .error .digit
+            {
+                width: 80px;   /*Contrall*/
+                height: 80px;  /*Contrall*/
+                line-height: 80px; /*Contrall*/
+                font-size: 52px;
+            }
+            .error h2   /*Contrall*/
+            {
+                font-size: 24px;
+            }
+            .error .msg /*Contrall*/
+            {
+                top: -110px;
+                left: 15%;
+                width: 40px;
+                height: 40px;
+                line-height: 40px;
+                font-size: 18px;
+            }
+            .error span.triangle    /*Contrall*/
+            {
+                top: 70%;
+                right: -3%;
+                border-left: 10px solid #535353; /*no se*/
+                border-top: 8px solid transparent;
+                border-bottom: 8px solid transparent;
+            }
+            .error .container-error-404
+            {
+                height: 150px;
+            }
+            /* Error Page */
+        }
+
+        /*--------------------------------------------Framework --------------------------------*/
+
+        .overlay { position: relative; z-index: 20; } /*done*/
+        .ground-color { background: white; }  /*done*/
+        .item-bg-color { background: #EAEAEA } /*done*/
+
+        /* Padding Section*/
+        .padding-top { padding-top: 10px; } /*done*/
+        .padding-bottom { padding-bottom: 10px; }   /*done*/
+        .padding-vertical { padding-top: 10px; padding-bottom: 10px; }
+        .padding-horizontal { padding-left: 10px; padding-right: 10px; }
+        .padding-all { padding: 10px; }   /*done*/
+
+        .no-padding-left { padding-left: 0px; }    /*done*/
+        .no-padding-right { padding-right: 0px; }   /*done*/
+        .no-vertical-padding { padding-top: 0px; padding-bottom: 0px; }
+        .no-horizontal-padding { padding-left: 0px; padding-right: 0px; }
+        .no-padding { padding: 0px; }   /*done*/
+        /* Padding Section*/
+
+        /* Margin section */
+        .margin-top { margin-top: 10px; }   /*done*/
+        .margin-bottom { margin-bottom: 10px; } /*done*/
+        .margin-right { margin-right: 10px; } /*done*/
+        .margin-left { margin-left: 10px; } /*done*/
+        .margin-horizontal { margin-left: 10px; margin-right: 10px; } /*done*/
+        .margin-vertical { margin-top: 10px; margin-bottom: 10px; } /*done*/
+        .margin-all { margin: 10px; }   /*done*/
+        .no-margin { margin: 0px; }   /*done*/
+
+        .no-vertical-margin { margin-top: 0px; margin-bottom: 0px; }
+        .no-horizontal-margin { margin-left: 0px; margin-right: 0px; }
+
+        .inside-col-shrink { margin: 0px 20px; }    /*done - For the inside sections that has also Title section*/ 
+        /* Margin section */
+
+        hr
+        { margin: 0px; padding: 0px; border-top: 1px dashed #999; }
+        /*--------------------------------------------FrameWork------------------------*/
+    </style>
+</head>
+
+<body>
+
+    <!-- Error Page -->
+    <div class="error">
+        <div class="container-floud">
+            <div class="col-xs-12 ground-color text-center">
+                <div class="container-error-404">
+                    <div class="clip"><div class="shadow"><span class="digit thirdDigit">5</span></div></div>
+                    <div class="clip"><div class="shadow"><span class="digit secondDigit">0</span></div></div>
+                    <div class="clip"><div class="shadow"><span class="digit firstDigit">0</span></div></div>
+                    <div class="msg">Uy!<span class="triangle"></span></div>
+                </div>
+                <h2 class="h1">¡Uy!, parece que se nos cayó yerba en el servidor</h2>
+                <h2 class="h1">
+                    <a href="/uytube/">Ir al inicio</a>
+                </h2>
+            </div>
+        </div>
+    </div>
+    <!-- Error Page -->
+</body>
+</html>
\ No newline at end of file
diff --git a/UyTube_web/web/AltaListaReproduccion.jsp b/UyTube_web/web/AltaListaReproduccion.jsp
index 0d1781aa22dee7567434c4c260e866e61963c64f..af43c96e0963c6bf143bdcebf1abd068b29b48ac 100644
--- a/UyTube_web/web/AltaListaReproduccion.jsp
+++ b/UyTube_web/web/AltaListaReproduccion.jsp
@@ -9,7 +9,7 @@
 <!DOCTYPE html>
 <html lang="es">
     <%
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
         ArrayList<String> Categorias = (ArrayList) request.getAttribute("Categorias");
     %>
     <head>
diff --git a/UyTube_web/web/AltaUsuario.jsp b/UyTube_web/web/AltaUsuario.jsp
index 4e1225172c3c558fc0f801d73bffab1734dbd116..fe70bdb26edad58cebe78881e5224238ff0b9f3d 100644
--- a/UyTube_web/web/AltaUsuario.jsp
+++ b/UyTube_web/web/AltaUsuario.jsp
@@ -7,6 +7,9 @@
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html lang="es">
+    <%
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
+    %>
 
     <script>
         var check = function () {
@@ -47,7 +50,16 @@
         <div class="container-fluid">
             <div class="row">
                 <div class="col-12">
+                    <%
+                        if (sesionIniciada) {
+                    %>
+                    <%@ include file='include/header-usuario.jsp' %>
+                    <%                    } else {
+                    %>
                     <%@ include file='include/header-visitante.jsp' %>
+                    <%
+                        }
+                    %>
                 </div>
             </div>		
         </div>
@@ -61,8 +73,17 @@
         <div class="container-fluid">
             <div class="row">
                 <div class="col-12">
-                    <section class="principal">						
+                    <section class="principal">				
+                        <%
+                            if (sesionIniciada) {
+                        %>
+                        <%@ include file='include/menu-usuario.jsp' %>
+                        <%                        } else {
+                        %>
                         <%@ include file='include/menu-visitante.jsp' %>
+                        <%
+                            }
+                        %>
                         <div class="contenido">
                             <section class="contenido-flexible">
                                 <div class="principal d-flex flex-row justify-content-center">
diff --git a/UyTube_web/web/AltaVideo.jsp b/UyTube_web/web/AltaVideo.jsp
index bad6bad867bb266d3a1f4d6f6d1ff74913ff1fd4..7daf1f9aa7455806da973859eef73d907b726842 100644
--- a/UyTube_web/web/AltaVideo.jsp
+++ b/UyTube_web/web/AltaVideo.jsp
@@ -10,7 +10,7 @@
 
     <%
         ArrayList<String> Categorias = (ArrayList) request.getAttribute("Categorias");
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
     %>
 
     <head>
diff --git a/UyTube_web/web/Buscar.jsp b/UyTube_web/web/Buscar.jsp
index 0c24d010942a7845108a73d614eced03056a6077..bbcaf6cc790492cde0106fcbc2f913f58ebcf787 100644
--- a/UyTube_web/web/Buscar.jsp
+++ b/UyTube_web/web/Buscar.jsp
@@ -65,7 +65,6 @@
                 <div class="col-12">
                     <section class="principal">
                         
-
                         <%
                             if (sesionIniciada) {
                         %>
diff --git a/UyTube_web/web/ConsultaUsuario.jsp b/UyTube_web/web/ConsultaUsuario.jsp
index 62516127c82e5db07ee000352bfa409fe4ad6810..c114ffb8c9ad453cd88c5b99b36d1435e3686cbc 100644
--- a/UyTube_web/web/ConsultaUsuario.jsp
+++ b/UyTube_web/web/ConsultaUsuario.jsp
@@ -14,7 +14,7 @@
 <html lang="es">
     <%
         boolean propietario = (boolean) request.getAttribute("propietario");
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
         DtUsuario usuario = (DtUsuario) request.getAttribute("usuario");
         DtCanal canal = (DtCanal) request.getAttribute("canal");
         ArrayList<DtUsuario> seguidos = (ArrayList) request.getAttribute("seguidos");
diff --git a/UyTube_web/web/ConsultarListaReproduccion.jsp b/UyTube_web/web/ConsultarListaReproduccion.jsp
index e098e642842958c1a15c7b755b59d656564e8e90..6eff7383c1ef1b285a0a27656731133fd48c95fd 100644
--- a/UyTube_web/web/ConsultarListaReproduccion.jsp
+++ b/UyTube_web/web/ConsultarListaReproduccion.jsp
@@ -14,7 +14,7 @@
     <%
         DtListaDeReproduccion listasRep = (DtListaDeReproduccion) request.getAttribute("listas");
         String usuario = (String)request.getAttribute("usuario");
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
         boolean propietario = (boolean) request.getAttribute("propietario");
         ArrayList<DtVideo> videos = (ArrayList<DtVideo>) request.getAttribute("videos");
     %>
diff --git a/UyTube_web/web/IniciarSesion.jsp b/UyTube_web/web/IniciarSesion.jsp
index d0f28fb84367fb2efd7e8b82426146f2e6ae6696..b8e071c57c495555f0632082dd0e54c54eabefef 100644
--- a/UyTube_web/web/IniciarSesion.jsp
+++ b/UyTube_web/web/IniciarSesion.jsp
@@ -7,6 +7,9 @@
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html lang="es">
+    <%
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
+    %>
     <head>
         <meta charset="UTF-8">
         <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -27,7 +30,16 @@
         <div class="container-fluid">
             <div class="row">
                 <div class="col-12">
+                    <%
+                        if (sesionIniciada) {
+                    %>
+                    <%@ include file='include/header-usuario.jsp' %>
+                    <%                    } else {
+                    %>
                     <%@ include file='include/header-visitante.jsp' %>
+                    <%
+                        }
+                    %>
                 </div>
             </div>		
         </div>
@@ -41,8 +53,17 @@
         <div class="container-fluid">
             <div class="row">
                 <div class="col-12">
-                    <section class="principal">						
+                    <section class="principal">					
+                        <%
+                            if (sesionIniciada) {
+                        %>
+                        <%@ include file='include/menu-usuario.jsp' %>
+                        <%                        } else {
+                        %>
                         <%@ include file='include/menu-visitante.jsp' %>
+                        <%
+                            }
+                        %>
 
                         <div class="contenido">
                             <section class="contenido-flexible">
diff --git a/UyTube_web/web/ModificarListaReproduccion.jsp b/UyTube_web/web/ModificarListaReproduccion.jsp
index 7f77fc63fe5e5376140df1f6f7af98ab654862d7..c3247965cf7eeb3a16d68a0cbada474217576d0c 100644
--- a/UyTube_web/web/ModificarListaReproduccion.jsp
+++ b/UyTube_web/web/ModificarListaReproduccion.jsp
@@ -12,7 +12,7 @@
 <html lang="es">
     <%
         DtListaDeReproduccion listasRep = (DtListaDeReproduccion) request.getAttribute("listas");
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
         ArrayList<String> Categorias = (ArrayList) request.getAttribute("Categorias");
     %>
     <head>
diff --git a/UyTube_web/web/ModificarUsuario.jsp b/UyTube_web/web/ModificarUsuario.jsp
index 1a143e8256a267e7ebcb8e37675781a0f669b2f1..5be555f42f7bf0609cb0dd63baa0b5ef43b3b994 100644
--- a/UyTube_web/web/ModificarUsuario.jsp
+++ b/UyTube_web/web/ModificarUsuario.jsp
@@ -37,7 +37,7 @@
     <%
         DtUsuario usuario = (DtUsuario) request.getAttribute("usuario");
         DtCanal canal = (DtCanal) request.getAttribute("canal");
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
     %>
     <head>
         <meta charset="UTF-8">
diff --git a/UyTube_web/web/ModificarVideo.jsp b/UyTube_web/web/ModificarVideo.jsp
index a35d4d518fd713860cee846a2f5c54dbd482cd9a..b69faf9e6ae5f339d017ce52d247f975cee11466 100644
--- a/UyTube_web/web/ModificarVideo.jsp
+++ b/UyTube_web/web/ModificarVideo.jsp
@@ -15,7 +15,7 @@
     <%
         DtVideo video = (DtVideo) request.getAttribute("video");
         ArrayList<String> Categorias = (ArrayList) request.getAttribute("Categorias");
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
     %>
     <head>
         <meta charset="UTF-8">
diff --git a/UyTube_web/web/Presentacion.jsp b/UyTube_web/web/Presentacion.jsp
index 5b88c6147e6f7032d0fe6bde3d140e77c9c4956a..1be9ce92f4808398d1c748a578a5612e4baab86d 100644
--- a/UyTube_web/web/Presentacion.jsp
+++ b/UyTube_web/web/Presentacion.jsp
@@ -14,7 +14,7 @@
 <html lang="es">
     <%
         ArrayList<Object> video = (ArrayList) Fabrica.getInstancia().getIUsuario().buscar("", Filtrado.VIDEOS, Ordenacion.FECHA_DESCENDENTE);
-        boolean sesionIniciada = (boolean) request.getAttribute("sesionIniciada");
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
     %>
     <head>
         <meta charset="UTF-8">
diff --git a/UyTube_web/web/WEB-INF/web.xml b/UyTube_web/web/WEB-INF/web.xml
index d4f229d40822d964eb3a46ac3a6f86199dfb9704..b3886eb89aaa4f80cd9f0d3bb004e166d6ecaf26 100644
--- a/UyTube_web/web/WEB-INF/web.xml
+++ b/UyTube_web/web/WEB-INF/web.xml
@@ -173,4 +173,12 @@
             2
         </session-timeout>
     </session-config>
+    <error-page>
+        <error-code>404</error-code>
+        <location>/404.jsp</location>
+    </error-page>
+    <error-page>
+        <error-code>500</error-code>
+        <location>/500.jsp</location>
+    </error-page>
 </web-app>
diff --git a/UyTube_web/web/index.jsp b/UyTube_web/web/index.jsp
index 89d183f395224321528e8f51273a75e2f7aea536..46850dfad7c3fd40f98d5f3a7193a0ca457abce0 100644
--- a/UyTube_web/web/index.jsp
+++ b/UyTube_web/web/index.jsp
@@ -7,6 +7,9 @@
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html lang="es">
+    <%
+        boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
+    %>
     <head>
         <meta charset="UTF-8">
         <meta http-equiv="X-UA-Compatible" content="IE=edge">