Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package co.com.powersoft.lab.databaselab.controller; import co.com.powersoft.bean.Usuario; import co.com.powersoft.lab.bean.LineaGeneral; import co.com.powersoft.lab.bean.MaquinaGeneral; import co.com.powersoft.lab.bean.PlantaGeneral; import co.com.powersoft.lab.databaselab.util.ServiceFactory; import co.com.powersoft.logger.CustomLogger; import co.com.powersoft.logger.ErrorUtil; import co.com.powersoft.logger.constants.OperationConstants; import co.com.powersoft.util.HashEncripter; import co.com.powersoft.util.Utilidades; import co.com.powersoft.util.UtilidadesProperties; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import javax.naming.NamingException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * @since 2016-02-26 * @author Leonardo Solano */ @WebServlet(name = "MaquinaGeneral", urlPatterns = { "/MaquinaGeneral" }) public class MaquinaGeneralServlet extends HttpServlet { private CustomLogger logger = new CustomLogger(this.getClass()); private static Properties propiedades = UtilidadesProperties.getInstance().getPropertiesParametros(); HttpSession session; Usuario usuario; private static final String INFO_ADICIONAL = "SERVLET_MAQUINA_GENERAL"; private static final String MODULO = "MAQUINA_GENERAL"; private static final String RUTA_MODULO_INICIAL = "/modulos-web"; private static final String RUTA_MODULO = RUTA_MODULO_INICIAL + "/maquina-general"; private static final String RESPUESTA = "/resp-maquina-general.jsp"; private static final String INDEX = "/maquina-general.jsp"; private static final String ACCESO_RESTRINGIDO = "/WEB-INF/Errorpages/AccesoRestringido.jsp"; // MAXIMO NMERO DE ELEMENTOS POR P?GINA private final Integer MAX_REGISTROS_PAGINA = Integer.parseInt(propiedades.getProperty("MAX_REGISTROS_PAGINA")); // MAXIMO NUMERO DE PAGINAS A MOSTRAR private final Integer MAX_NUMERO_PAGINAS_MOSTRAR = Integer .parseInt(propiedades.getProperty("MAX_NUMERO_PAGINAS_MOSTRAR")); //Constantes por defecto public final String TIPO_DOCUMENTO_DEFECTO = propiedades.getProperty("TIPO_DOCUMENTO_DEFECTO"); public final String PAIS_DEFECTO = propiedades.getProperty("PAIS_DEFECTO"); public final String ID_DEPARTAMENTO_DEFECTO = propiedades.getProperty("ID_DEPARTAMENTO_DEFECTO"); public final String DEPARTAMENTO_DEFECTO = propiedades.getProperty("DEPARTAMENTO_DEFECTO"); public final String ID_CIUDAD_DEFECTO = propiedades.getProperty("ID_CIUDAD_DEFECTO"); public final String CIUDAD_DEFECTO = propiedades.getProperty("CIUDAD_DEFECTO"); //Del 1 al 10 Metodos de validacion //Del 11 al 20 Metodos basicos public static final int AGREGAR_MAQUINA_GENERAL = 11; public static final int ELIMINAR_MAQUINA_GENERAL = 12; public static final int MODIFICAR_MAQUINA = 13; //Del 21 al 30 Metodos de carga public static final int MOSTRAR_PANTALLA_1 = 21; public static final int MOSTRAR_PANTALLA_2 = 22; public static final int CARGAR_PLANTAS = 23; public static final int OBTENER_MAQUINAS_GENERAL_X_PLANTA = 24; public static final int CARGAR_SELECCIONAR_PLANTA_GENERAL = 25; public static final int CARGAR_SELECCIONAR_LINEA_GENERAL_IDS_OMITIDOS = 26; //Del 31 en adelante Metodos generales public static final int MOSTRAR_MODAL_VER_MAQUINA_GENERAL = 31; public static final int MOSTRAR_MODAL_AGREGAR_MAQUINA_GENERAL = 32; public static final int MOSTRAR_MODAL_MODIFICAR_MAQUINA_GENERAL = 33; public static final int MOSTRAR_SECCION_ASOCIAR_NUEVA_LINEA_GENERAL = 34; public static final int MOSTRAR_MODAL_SELECCIONAR_PLANTA_GENERAL = 35; public static final int MOSTRAR_MODAL_SELECCIONAR_LINEA_GENERAL = 36; protected void processRequest(HttpServletRequest request, HttpServletResponse response, String tipo) { //Nombre de la operacin String OPERACION = OperationConstants.SERVLET_INICIAL; try { session = request.getSession(); usuario = (Usuario) session.getAttribute("usuario"); //Validamos si tenemos acceso al modulo if (Utilidades.getInstance().validarAccesoModulo(usuario.getListaRoles(), MODULO)) { //Obtenemos los roles usuario.setListaRoles(ServiceFactory.getInstance().getServiceBeanGeneral() .obtenerRolesUsuarioModulo(usuario, MODULO)); session.setAttribute("usuario", usuario); int op = Integer.parseInt(request.getParameter("op") == null ? "-1" : request.getParameter("op")); System.out.println("MaquinaGeneralController OP: " + op); request.setAttribute("button", "btn-primary"); request.setAttribute("color", "color-blue"); request.setAttribute("iconColor", "color-black"); request.setAttribute("title", "color-white"); request.setAttribute("background", "background-blue"); request.setAttribute("background2", "background-gray"); request.setAttribute("border", "border-blue"); request.setAttribute("border2", "border-gray"); request.setAttribute("thead", "thead-blue"); if (op != -1) { switch (op) { case AGREGAR_MAQUINA_GENERAL://11 agregarMaquinaGeneral(request, response); break; case ELIMINAR_MAQUINA_GENERAL://12 eliminarMaquinaGeneral(request, response); break; case MODIFICAR_MAQUINA://13 modificarMaquinaGeneral(request, response); break; case MOSTRAR_PANTALLA_1://21 mostrarPantalla1(request, response, op); break; case MOSTRAR_PANTALLA_2://22 mostrarPantalla2(request, response, op); break; case CARGAR_PLANTAS://23 cargarPlantas(request, response, op); break; case OBTENER_MAQUINAS_GENERAL_X_PLANTA://24 obtenerMaquinasPorPlanta(request, response, op); break; case CARGAR_SELECCIONAR_PLANTA_GENERAL://25 cargarSeleccionarPlantaGeneral(request, response, op); break; case CARGAR_SELECCIONAR_LINEA_GENERAL_IDS_OMITIDOS://26 cargarSeleccionarLineaGeneralIdsOmitidos(request, response, op); break; case MOSTRAR_MODAL_VER_MAQUINA_GENERAL://31 mostrarModalVerMaquinaGeneral(request, response, op); break; case MOSTRAR_MODAL_AGREGAR_MAQUINA_GENERAL://32 mostrarModalAgregarMaquinaGeneral(request, response, op); break; case MOSTRAR_MODAL_MODIFICAR_MAQUINA_GENERAL://33 mostrarModalModificarMaquinaGeneral(request, response, op); break; case MOSTRAR_SECCION_ASOCIAR_NUEVA_LINEA_GENERAL://34 mostrarSeccionAsociarNuevaLineaGeneral(request, response, op); break; case MOSTRAR_MODAL_SELECCIONAR_PLANTA_GENERAL://35 mostrarModalSeleccionarPlantaGeneral(request, response, op); break; case MOSTRAR_MODAL_SELECCIONAR_LINEA_GENERAL://36 mostrarModalSeleccionarLineaGeneral(request, response, op); break; } } else { //Redireccionamos getServletContext().getRequestDispatcher(RUTA_MODULO + INDEX).forward(request, response); } } else { //Mostramos la pagina de Error getServletContext().getRequestDispatcher(ACCESO_RESTRINGIDO).forward(request, response); } } catch (NumberFormatException | IOException | ServletException | NamingException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite insertar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso, 2 si ya existe o 0 si no fue * exitoso * @exception IOException */ public void agregarMaquinaGeneral(HttpServletRequest request, HttpServletResponse response) throws IOException { //Nombre de la operacin String OPERACION = OperationConstants.AGREGAR_MAQUINA_GENERAL; int resp = 0; try { //Objetos JSON String jsonElementos = request.getParameter("jsonElementos") == null ? "{}" : request.getParameter("jsonElementos"); //Validamos que no sea vacio if (jsonElementos != null && !jsonElementos.equals("{}")) { Gson gson = new Gson(); JsonObject result = gson.fromJson(jsonElementos, JsonElement.class).getAsJsonObject(); //Nombre del prefijo del formulario String prefijo = "maquina_"; String idPlanta = request.getParameter("idPlanta") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idPlanta")); //Validamos que exista un idPlanta if (!idPlanta.equals("0")) { JsonArray arrayCodigo = (JsonArray) result.get(prefijo + "codigo"); JsonArray arrayNombre = (JsonArray) result.get(prefijo + "nombre"); JsonArray arrayReferencia = (JsonArray) result.get(prefijo + "referencia"); JsonArray arrayIdsLineaGeneral = (JsonArray) result.get("idNewLineaGeneral"); //Organizamos el objeto a agregar MaquinaGeneral maquinaGeneral = new MaquinaGeneral(); for (int i = 0; i < arrayCodigo.size(); i++) { maquinaGeneral.setCodigo( arrayCodigo.get(i).getAsString().isEmpty() ? "" : arrayCodigo.get(i).getAsString()); maquinaGeneral.setNombre( arrayNombre.get(i).getAsString().isEmpty() ? "" : arrayNombre.get(i).getAsString()); maquinaGeneral.setReferencia(arrayReferencia.get(i).getAsString().isEmpty() ? "" : arrayReferencia.get(i).getAsString()); //Planta General PlantaGeneral plantaGeneral = new PlantaGeneral(); plantaGeneral.setId(Integer.parseInt(idPlanta)); maquinaGeneral.setPlantaGeneral(plantaGeneral); //LineaGeneral asociadas List<LineaGeneral> listaLineaGeneral = new ArrayList<>(); if (arrayIdsLineaGeneral != null) { for (JsonElement idLineaGeneral : arrayIdsLineaGeneral) { //Validamos si el codigo es valido if (!idLineaGeneral.getAsString().isEmpty()) { String id = HashEncripter.getInstance() .desencrypterKey(idLineaGeneral.getAsString()); LineaGeneral lineaGeneral = new LineaGeneral(Integer.parseInt(id)); listaLineaGeneral.add(lineaGeneral); } } } maquinaGeneral.setListaLineasGeneral(listaLineaGeneral); } //Agregamos el objeto a la BD resp = ServiceFactory.getInstance().getServiceBeanLab().agregarMaquinaGeneral(usuario, maquinaGeneral); } } //Retornamos la respuesta al JSP respuestaServer(response, resp); } catch (NumberFormatException | JsonSyntaxException | NamingException e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite eliminar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @exception IOException */ public void eliminarMaquinaGeneral(HttpServletRequest request, HttpServletResponse response) throws IOException { //Nombre de la operacin String OPERACION = OperationConstants.ELIMINAR_MAQUINA_GENERAL; int resp = 0; try { //Obtenemos el id de la planta String idMaquina = request.getParameter("id") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("id")); //Eliminamos la planta resp = ServiceFactory.getInstance().getServiceBeanLab().eliminarMaquinaGeneral(usuario, Integer.parseInt(idMaquina)); //Retornamos la respuesta al JSP respuestaServer(response, resp); } catch (NumberFormatException | NamingException e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite modificar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @exception IOException */ public void modificarMaquinaGeneral(HttpServletRequest request, HttpServletResponse response) throws IOException { //Nombre de la operacin String OPERACION = OperationConstants.MODIFICAR_MAQUINA_GENERAL; int resp = 0; try { //Objetos JSON String jsonElementos = request.getParameter("jsonElementos") == null ? "{}" : request.getParameter("jsonElementos"); //Validamos que no sea vacio if (jsonElementos != null && !jsonElementos.equals("{}")) { Gson gson = new Gson(); JsonObject result = gson.fromJson(jsonElementos, JsonElement.class).getAsJsonObject(); //Nombre del prefijo del formulario String prefijo = "maquina_"; JsonArray arrayIdMaquina = (JsonArray) result.get(prefijo + "idMaquina"); JsonArray arrayCodigo = (JsonArray) result.get(prefijo + "codigo"); JsonArray arrayNombre = (JsonArray) result.get(prefijo + "nombre"); JsonArray arrayReferencia = (JsonArray) result.get(prefijo + "referencia"); JsonArray arrayIdPlantaGeneral = (JsonArray) result.get(prefijo + "idPlantaNew"); JsonArray arrayIdsLineaGeneral = (JsonArray) result.get("idNewLineaGeneral"); //Organizamos el objeto a agregar MaquinaGeneral maquinaGeneral = new MaquinaGeneral(); for (int i = 0; i < arrayIdMaquina.size(); i++) { maquinaGeneral.setId(Integer.parseInt( HashEncripter.getInstance().desencrypterKey(arrayIdMaquina.get(i).getAsString()))); maquinaGeneral.setCodigo( arrayCodigo.get(i).getAsString().isEmpty() ? "" : arrayCodigo.get(i).getAsString()); maquinaGeneral.setNombre( arrayNombre.get(i).getAsString().isEmpty() ? "" : arrayNombre.get(i).getAsString()); maquinaGeneral.setReferencia(arrayReferencia.get(i).getAsString().isEmpty() ? "" : arrayReferencia.get(i).getAsString()); //Planta General PlantaGeneral plantaGeneral = new PlantaGeneral(); plantaGeneral.setId(Integer.parseInt(HashEncripter.getInstance() .desencrypterKey(arrayIdPlantaGeneral.get(i).getAsString()))); maquinaGeneral.setPlantaGeneral(plantaGeneral); //LineaGeneral asociadas List<LineaGeneral> listaLineaGeneral = new ArrayList<>(); if (arrayIdsLineaGeneral != null) { for (JsonElement idLineaGeneral : arrayIdsLineaGeneral) { //Validamos si el codigo es valido if (!idLineaGeneral.getAsString().isEmpty()) { String id = HashEncripter.getInstance() .desencrypterKey(idLineaGeneral.getAsString()); LineaGeneral lineaGeneral = new LineaGeneral(Integer.parseInt(id)); listaLineaGeneral.add(lineaGeneral); } } } maquinaGeneral.setListaLineasGeneral(listaLineaGeneral); } //Modificamos el objeto a la BD resp = ServiceFactory.getInstance().getServiceBeanLab().modificarMaquinaGeneral(usuario, maquinaGeneral); } //Retornamos la respuesta al JSP respuestaServer(response, resp); } catch (NumberFormatException | JsonSyntaxException | NamingException e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { //Retornamos la respuesta al JSP respuestaServer(response, resp); logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar una SECCION * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarPantalla1(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MOSTRAR_SECCION; try { request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar una SECCION * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarPantalla2(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MOSTRAR_SECCION; try { request.setAttribute("op", op); request.setAttribute("nombrePlanta", request.getParameter("nombrePlanta")); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite obtener todas las personas existentes PAGINADAS * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void cargarPlantas(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.CARGAR_PLANTAS; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadPlantas(idEmpresaGeneral, buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<PlantaGeneral> listaPlantas = ServiceFactory.getInstance().getServiceBeanLab() .cargarPlantas(idEmpresaGeneral, buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("op", op); request.setAttribute("listaPlantas", listaPlantas); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); // nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite obtener todas las personas existentes PAGINADAS * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void obtenerMaquinasPorPlanta(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.OBTENER_MAQUINAS_GENERAL_X_PLANTA; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Obtenemos el id de la planta String idPlanta = request.getParameter("idPlanta") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idPlanta")); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadMaquinas(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<MaquinaGeneral> listaMaquinas = ServiceFactory.getInstance().getServiceBeanLab() .obtenerMaquinasPorPlanta(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("op", op); request.setAttribute("listaMaquinas", listaMaquinas); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); // nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite buscar una planta general existente PAGINADAS * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void cargarSeleccionarPlantaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.CARGAR_SELECCIONAR_PLANTA_GENERAL; try { //Obtenemos el Personal x Cargo de la planta int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadPlantas(idEmpresaGeneral, buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<PlantaGeneral> listaPlantaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .cargarPlantas(idEmpresaGeneral, buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("listaPlantas", listaPlantaGeneral); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite CARGAR objetos LineaGeneral existente PAGINADAS * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void cargarSeleccionarLineaGeneralIdsOmitidos(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.CARGAR_SELECCIONAR_LINEAS_GENERAL_X_PLANTA_IDS_OMITIDOS; try { //Obtenemos el Personal x Cargo de la planta int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Obtenemos el id de la planta String idPlanta = request.getParameter("idPlanta") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idPlanta")); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos los ids ya seleccionados en Objetos JSON String jsonIds = request.getParameter("jsonIds") == null ? "{}" : request.getParameter("jsonIds"); String ids = ""; //Validamos que no sea vacio if (jsonIds != null && !jsonIds.equals("{}")) { Gson gson = new Gson(); JsonObject result = gson.fromJson(jsonIds, JsonElement.class).getAsJsonObject(); JsonArray arrayIds = (JsonArray) result.get("id"); for (int i = 0; i < arrayIds.size(); i++) { if (i < arrayIds.size() - 1) { ids += (arrayIds.get(i).getAsString().isEmpty() ? "0" : HashEncripter.getInstance().desencrypterKey(arrayIds.get(i).getAsString())) + ","; } else { ids += arrayIds.get(i).getAsString().isEmpty() ? "0" : HashEncripter.getInstance().desencrypterKey(arrayIds.get(i).getAsString()); } } } //Obtenemos la cantidad de registros totales en la tabla int cantRegistros; if (!ids.isEmpty()) { cantRegistros = ServiceFactory.getInstance().getServiceBeanLab().obtenerCantidadLineasIdsOmitidos( idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, ids); } else { cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadLineas(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar); } //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<LineaGeneral> listaLineaGeneral; if (!ids.equals("")) { listaLineaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .obtenerLineasPorPlantaIdsOmitidos(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, ids, offset, MAX_REGISTROS_PAGINA); } else { listaLineaGeneral = ServiceFactory.getInstance().getServiceBeanLab().obtenerLineasPorPlanta( idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, offset, MAX_REGISTROS_PAGINA); } request.setAttribute("listaLineaGeneral", listaLineaGeneral); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para VER * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalVerMaquinaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_VER; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Planta General String idMaquina = request.getParameter("idMaquina") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idMaquina")); MaquinaGeneral maquinaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .obtenerMaquinaGeneral(idEmpresaGeneral, Integer.parseInt(idMaquina)); request.setAttribute("maquinaGeneral", maquinaGeneral); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para AGREGAR * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalAgregarMaquinaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_AGREGAR; try { request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para modificar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalModificarMaquinaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_MODIFICAR; try { //Obtenemos la empresa general int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Planta General String idMaquina = request.getParameter("idMaquina") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idMaquina")); MaquinaGeneral maquinaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .obtenerMaquinaGeneral(idEmpresaGeneral, Integer.parseInt(idMaquina)); request.setAttribute("maquinaGeneral", maquinaGeneral); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para modificar * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarSeccionAsociarNuevaLineaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MOSTRAR_SECCION; try { //Obtenemos la cantidad de lineas String posicion = request.getParameter("posicion") == null ? "0" : request.getParameter("posicion"); request.setAttribute("posicion", posicion); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para seleccionar una planta * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalSeleccionarPlantaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_SELECCIONAR; try { //Obtenemos el Personal x Cargo de la planta int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos la cantidad de registros totales en la tabla int cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadPlantas(idEmpresaGeneral, buscar); //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<PlantaGeneral> listaPlantaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .cargarPlantas(idEmpresaGeneral, buscar, offset, MAX_REGISTROS_PAGINA); request.setAttribute("listaPlantas", listaPlantaGeneral); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } /** * Metodo que permite mostrar un MODAL para seleccionar una linea * * @autor Leonardo Solano * @param request contiene los datos pasados por AJAX * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param op es la opcion escogida por el usuario */ public void mostrarModalSeleccionarLineaGeneral(HttpServletRequest request, HttpServletResponse response, int op) { //Nombre de la operacin String OPERACION = OperationConstants.MODAL_SELECCIONAR; try { //Obtenemos el Personal x Cargo de la planta int idEmpresaGeneral = usuario.getEmpresaGeneral().getId(); //Obtenemos el id de la planta String idPlanta = request.getParameter("idPlanta") == null ? "0" : HashEncripter.getInstance().desencrypterKey(request.getParameter("idPlanta")); //Palabra a buscar String buscar = request.getParameter("buscar") == null ? "" : request.getParameter("buscar"); //Obtenemos los ids ya seleccionados en Objetos JSON String jsonIds = request.getParameter("jsonIds") == null ? "{}" : request.getParameter("jsonIds"); String ids = ""; //Validamos que no sea vacio if (jsonIds != null && !jsonIds.equals("{}")) { Gson gson = new Gson(); JsonObject result = gson.fromJson(jsonIds, JsonElement.class).getAsJsonObject(); JsonArray arrayIds = (JsonArray) result.get("id"); for (int i = 0; i < arrayIds.size(); i++) { if (i < arrayIds.size() - 1) { ids += (arrayIds.get(i).getAsString().isEmpty() ? "0" : HashEncripter.getInstance().desencrypterKey(arrayIds.get(i).getAsString())) + ","; } else { ids += arrayIds.get(i).getAsString().isEmpty() ? "0" : HashEncripter.getInstance().desencrypterKey(arrayIds.get(i).getAsString()); } } } //Obtenemos la cantidad de registros totales en la tabla int cantRegistros; if (!ids.isEmpty()) { cantRegistros = ServiceFactory.getInstance().getServiceBeanLab().obtenerCantidadLineasIdsOmitidos( idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, ids); } else { cantRegistros = ServiceFactory.getInstance().getServiceBeanLab() .obtenerCantidadLineas(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar); } //Cantidad de Paginas a mostrar int cantPaginas = (int) Math.ceil((double) cantRegistros / MAX_REGISTROS_PAGINA); cantPaginas = cantPaginas == 0 ? 1 : cantPaginas; //Obtenemos la pagina actual int pagActual = Integer .parseInt(request.getParameter("pag") == null ? "1" : request.getParameter("pag")); //Obtenemos el valor inicial a mostrar registros int offset = Math.abs((pagActual - 1) * MAX_REGISTROS_PAGINA); //PAGINAMOS int mitad; int comenzar; int finalizar; if (MAX_NUMERO_PAGINAS_MOSTRAR < cantPaginas) { //Validamos si es PAR o IMPAR if (MAX_NUMERO_PAGINAS_MOSTRAR % 2 == 0) { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } else { //Obtnemos la mitad mitad = MAX_NUMERO_PAGINAS_MOSTRAR / 2 + 1; comenzar = pagActual - (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); finalizar = pagActual + (MAX_NUMERO_PAGINAS_MOSTRAR - mitad); } //Validamos que la primera pagina no sea menor que la pagina 1 if (comenzar < 1) { finalizar = finalizar + (1 - comenzar); comenzar = 1; } //Validamos que la ultima pagina no pase la el total de paginas if (finalizar > cantPaginas) { comenzar = comenzar - (finalizar - cantPaginas); finalizar = cantPaginas; } } else { comenzar = 1; finalizar = cantPaginas; } List<LineaGeneral> listaLineaGeneral; if (!ids.equals("")) { listaLineaGeneral = ServiceFactory.getInstance().getServiceBeanLab() .obtenerLineasPorPlantaIdsOmitidos(idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, ids, offset, MAX_REGISTROS_PAGINA); } else { listaLineaGeneral = ServiceFactory.getInstance().getServiceBeanLab().obtenerLineasPorPlanta( idEmpresaGeneral, Integer.parseInt(idPlanta), buscar, offset, MAX_REGISTROS_PAGINA); } request.setAttribute("listaLineaGeneral", listaLineaGeneral); request.setAttribute("offset", offset); request.setAttribute("pagina", pagActual); request.setAttribute("cantPaginas", cantPaginas); request.setAttribute("cantRegistros", cantRegistros); request.setAttribute("comenzar", comenzar); request.setAttribute("finalizar", finalizar); request.setAttribute("maxPaginas", MAX_NUMERO_PAGINAS_MOSTRAR); request.setAttribute("op", op); //Nos vamos a la vista getServletContext().getRequestDispatcher(RUTA_MODULO + RESPUESTA).forward(request, response); } catch (ServletException | NumberFormatException | NamingException | IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } catch (Exception ex) { Logger.getLogger(MaquinaGeneralServlet.class.getName()).log(Level.SEVERE, null, ex); } } /** * Metodo que permite setear la respuesta a un HttpServletResponse * * @autor Leonardo Solano * @param response contiene 1 si fue exitoso o 0 si no lo fue * @param resp (int) respuesta de la operacion */ public void respuestaServer(HttpServletResponse response, int resp) { //Nombre de la operacin String OPERACION = OperationConstants.RESPUESTA_SERVLET; ServletOutputStream outStream = null; try { String respJSON = "{\"resp\":\"" + resp + "\"}"; response.setContentType("application/json;charset=UTF-8"); outStream = response.getOutputStream(); outStream.print(respJSON); } catch (Exception e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } finally { try { if (outStream != null) { outStream.flush(); outStream.close(); } } catch (IOException e) { logger.error(ErrorUtil.getInstance().getErrorData(e, OPERACION, INFO_ADICIONAL), e); } } } // <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. * * @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 doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response, "GET"); } /** * 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, "POST"); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }