You are on page 1of 4

Desarrollo JAVA WEB: MVC SERVLET FRONTAL DAO (Con EJB)

package action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public interface Action { public String execute(HttpServletRequest request, HttpServletResponse response); }

package action; import com.entidades.Producto; import com.servicios.ProductoFacade; import java.util.logging.Level; import java.util.logging.Logger; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class ProductoAction implements Action { ProductoFacade productoFacade = lookupProductoFacadeBean(); private String action = null; public ProductoAction(String action) { this.action = action; } @Override public String execute(HttpServletRequest request, HttpServletResponse response) { // ACCIONES: // ALTA // BAJA // LISTA // FILTRO //.... if (action.equals("ADD")) { return addProducto(request, response); } else if (action.equals("DELETE")) { return deleteProducto(request, response); } else if (action.equals("UPDATE")) { return updateProducto(request, response); } else if (action.equals("LISTAR")) { return listarProducto(request, response); } else if (action.equals("REPONER")) { return reponerProducto(request, response); } return ""; } private String listarProducto(HttpServletRequest request, HttpServletResponse response) { HttpSession sesion = request.getSession(); try { sesion.setAttribute("LISTA_PRODUCTOS", productoFacade.findAll()); request.setAttribute("MENSAJE", "El producto ha sido listado correctamente."); } catch (Exception e) { request.setAttribute("MENSAJE", "El producto no ha sido listado correctamente."); request.setAttribute("EXCEPTION", e.toString()); } return "/producto.jsp"; } // PASAR DE GET_PARAMETER A OBJETO private Producto parameterToBean(HttpServletRequest request) { Integer idProducto =

request.getParameter("ID_PRODUCTO")!=null ?Integer.parseInt(request.getParameter("ID_PRODUCTO")) :null; String cod = request.getParameter("COD")!=null ?request.getParameter("COD") :null; String nombre = request.getParameter("NOMBRE")!=null ?request.getParameter("NOMBRE") :null; Double precio = request.getParameter("PRECIO")!=null ?Double.parseDouble(request.getParameter("PRECIO")) :null; Integer cantidad = request.getParameter("CANTIDAD")!=null ?Integer.parseInt(request.getParameter("CANTIDAD")) :null; return new Producto(idProducto, cod, nombre, precio, cantidad); } // CASOS DE USO private String deleteProducto(HttpServletRequest request, HttpServletResponse response) { try { productoFacade.remove(parameterToBean(request)); request.setAttribute("MENSAJE", "El producto ha sido eliminado correctamente."); } catch (Exception e) { request.setAttribute("MENSAJE", "El producto no ha sido eliminado correctamente."); request.setAttribute("EXCEPTION", e.toString()); } return "/eliminar_producto.jsp"; } private String updateProducto(HttpServletRequest request, HttpServletResponse response) { try { productoFacade.edit(parameterToBean(request)); request.setAttribute("MENSAJE", "El producto ha sido eliminado correctamente."); } catch (Exception e) { request.setAttribute("MENSAJE", "El producto no ha sido eliminado correctamente."); request.setAttribute("EXCEPTION", e.toString()); } return "/eliminar_producto.jsp"; } private String reponerProducto(HttpServletRequest request, HttpServletResponse response) { try { productoFacade.edit(parameterToBean(request)); request.setAttribute("MENSAJE", "El producto ha sido eliminado correctamente."); } catch (Exception e) { request.setAttribute("MENSAJE", "El producto no ha sido eliminado correctamente."); request.setAttribute("EXCEPTION", e.toString()); } return "/eliminar_producto.jsp"; } private String addProducto(HttpServletRequest request, HttpServletResponse response) { try { productoFacade.create(parameterToBean(request)); request.setAttribute("MENSAJE", "El producto ha sido registrado correctamente."); } catch (Exception e) { request.setAttribute("MENSAJE", "El producto no ha sido registrado correctamente."); request.setAttribute("EXCEPTION", e.toString()); } return "/alta_producto.jsp";

} // EJB private ProductoFacade lookupProductoFacadeBean() { try { Context c = new InitialContext(); return (ProductoFacade) c.lookup("java:global/SunGlassesRetro/SunGlassesRetro-ejb/ ProductoFacade!com.servicios.ProductoFacade"); } catch (NamingException ne) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne); throw new RuntimeException(ne); } } } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); // Recoger parmetros //String accion = request.getServletPath(); //IControladorWeb controlador = mapaControladores.get(accion); String actionC = (String)request.getParameter("ACTION"); String[] action = actionC.split("\\."); //Ejemplos: // PRODUCTO.ALTA // PRODUCTO.BAJA - PRODUCTO.LISTA - PRODUCTO.FILTRO - PRODUCTO.INGRESAR PRODUCTO.RETIRAR if(action[0].equals("PRODUCTO")){ // Comprueba que quiere trabajar con "CUENTAS" try { // LE MANDO LA ACCIN QUE QUIERE REALIZAR SOBRE ACTION_CUENTAS String pagDestino = (new ProductoAction(action[1])).execute(request, response); sc.getRequestDispatcher(pagDestino).forward(request, response); } catch (Exception e) { } } }

You might also like