package com.FitBank.web.servlet; import com.FitBank.web.util.EjecutarEventos; import com.fitbank.util.Debug; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Clase que maneja lo básico en los servlets. * * @author FitBank */ public abstract class BaseServlets extends HttpServlet implements Cloneable { private boolean aceptarGet = false; private boolean aceptarPost = false; private boolean verificarSesion = false; /** Pedido. */ protected HttpServletRequest pedido; /** Respuesta. */ protected HttpServletResponse respuesta; /** Sesion. */ protected HttpSession sesion; /** Objeto EjecutarEventos en la sesión. */ protected EjecutarEventos evento; /** Objeto usado para escribir en el navegador. */ protected PrintWriter writer; protected OutputStream outputStream; private void inicializar(HttpServletRequest pedido, HttpServletResponse respuesta) throws ServletException, IOException { this.pedido = pedido; this.respuesta = respuesta; System.setErr(System.out); sesion = pedido.getSession(); evento = (EjecutarEventos) sesion.getAttribute("FBOS"); respuesta.setContentType("text/html; charset=iso-8859-1"); if (verificarSesion && evento == null) { getServletConfig().getServletContext().getRequestDispatcher("/FBSCS"). forward(pedido, respuesta); } else { inicializar(); } } protected void doGet(HttpServletRequest pedido, HttpServletResponse respuesta) throws ServletException, IOException { try { BaseServlets bs = (BaseServlets) clone(); bs.inicializar(pedido, respuesta); if (bs.aceptarGet) { bs.procesarPedido(); } bs.sesion.setAttribute("FBOS", bs.evento); } catch (Exception e) { Debug.error(e); } } protected void doPost(HttpServletRequest pedido, HttpServletResponse respuesta) throws ServletException, IOException { try { BaseServlets bs = (BaseServlets) clone(); bs.inicializar(pedido, respuesta); if (bs.aceptarPost) { bs.procesarPedido(); } bs.sesion.setAttribute("FBOS", bs.evento); } catch (Exception e) { Debug.error(e); } } protected void aceptarGet() { aceptarGet = true; } protected void aceptarPost() { aceptarPost = true; } protected void verificarSesion() { verificarSesion = true; } protected void obtenerWriter() { try { writer = respuesta.getWriter(); } catch (IOException e) { Debug.error(e); } } protected void obtenerOutputStream() { try { outputStream = respuesta.getOutputStream(); } catch (IOException e) { Debug.error(e); } } protected void obtenerOutputStream(String contenttype) { try { respuesta.setContentType(contenttype); outputStream = respuesta.getOutputStream(); } catch (IOException e) { Debug.error(e); } } protected abstract void inicializar(); protected abstract void procesarPedido(); }