<file_sep>/*
 * 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 ControladorServlet;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import servicios.DtUsuario;
import servicios.PublicadorAltaPropuesta;
import servicios.PublicadorAltaPropuestaService;

/**
 *
 * @author Martin
 */
@WebServlet(name = "ServletAltaPropuest", urlPatterns = {"/ServletAltaPropuesta"})
@MultipartConfig
public class ServletAltaPropuesta extends HttpServlet {

    public static final String MENSAJE_ERROR = "mensaje_error";
    public static final String MENSAJE_EXITO = "mensaje_exito";
    private String MENSAJE;
    private PublicadorAltaPropuesta port;
    private RegistroSitio RS = new RegistroSitio();

    /**
     * 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
     */
    @Override
    public void init() throws ServletException {

    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        configuracion conf = new configuracion();
        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();

        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sAltaPropuesta", ruta));
        PublicadorAltaPropuestaService webService = new PublicadorAltaPropuestaService(url);
        this.port = webService.getPublicadorAltaPropuestaPort();

        DtUsuario usuLogeado = (DtUsuario) request.getSession().getAttribute("usuario_logueado");
        if (usuLogeado == null) {
            request.getRequestDispatcher("iniciar-sesion").forward(request, response);
        } else {
            if (usuLogeado.isEsproponente()) {
                SimpleDateFormat fechaA = new SimpleDateFormat("yyyy-MM-dd");
                String fActual = fechaA.format(new Date());
                request.setAttribute("FechaActual", fActual);

                List<String> listCat = this.port.listarCategorias().getListCategoria();
                request.setAttribute("listCat", listCat);
                String browserDetails = request.getHeader("User-Agent");
                String IP;
                try (final DatagramSocket socket = new DatagramSocket()) {
                    socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
                    IP = socket.getLocalAddress().getHostAddress();
                }
                String URL = "http://" + RS.obtenerIP() + "/CulturarteWeb/ServletAltaPropuesta";
                RS.ObtenerRegistro(browserDetails, IP, URL);
                request.getRequestDispatcher("Vistas/AltaPropuesta.jsp").forward(request, response);
            } else {
                request.setAttribute("mensaje", "Usted no tiene permiso para crear una propuesta");
                request.getRequestDispatcher("Vistas/Mensaje_Recibido.jsp").forward(request, response);
            }
        }
    }

    // <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);
    }

    /**
     * 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 {

        String titulo = request.getParameter("TituloP");
        String lugar = request.getParameter("LugarP");
        String desc = request.getParameter("Descripcion");
        String cat = request.getParameter("Categoria");
        String tipoR = request.getParameter("TipoR");
        float montoT = Float.parseFloat(request.getParameter("MontoT"));
        float montoE = Float.parseFloat(request.getParameter("MontoE"));
        String fechaR = (request.getParameter("FechaR") == null ? "" : request.getParameter("FechaR"));

        final Part partImagen = request.getPart("imagen");
        byte[] bytes = null;
        if (partImagen.getSize() != 0) {
            InputStream data = partImagen.getInputStream();
            final String fileName = Utils.getFileName(partImagen);
            String nombreArchivo = titulo;
            String extensionArchivo = Utils.extensionArchivo(fileName);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int reads = data.read();
            while (reads != -1) {
                baos.write(reads);
                reads = data.read();
            }
            bytes = baos.toByteArray();
        }

        try {
            DtUsuario dtLogeado = (DtUsuario) request.getSession().getAttribute("usuario_logueado");
            boolean encontrado = port.seleccionarUC(dtLogeado.getNickname(), cat);
            if (!encontrado) {
                boolean ok = false;
                if (bytes != null) {
                    ok = port.crearPropuesta(titulo, desc, lugar, fechaR, montoE, montoT, tipoR);
                } else {
                    ok = port.crearPropuesta(titulo, desc, lugar, fechaR, montoE, montoT, tipoR);
                }
                if (ok) {
                    MENSAJE = "Se registro exitosamente";
                    request.setAttribute("mensaje", MENSAJE);
                } else {
                    MENSAJE = "No se pudo registrar";
                    request.setAttribute("mensaje", MENSAJE);
                }
                request.getRequestDispatcher("/Vistas/FuncionamientoCorrecto.jsp").forward(request, response);
            }
        } catch (ExceptionInInitializerError | Exception a) {
            String mensajeError = "La propuesta no pudo ser dada de alta";
            request.setAttribute("mensaje", a.getMessage());
            request.getRequestDispatcher("/Vistas/FuncionamientoCorrecto.jsp").forward(request, response);
        }

    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
<file_sep>===============================SCRIPT APLICACION WEB====================================
1- Pegar script en carpeta de proyecto
2- archivo config.properties copiar en carpeta web del proyecto
========================================================================================<file_sep>function validarPropuesta() {
    var correcto = true;
    var titulo = $('#TituloP').val();

    if (titulo.length < 4) {
        $('#error_TituloP').show();
        correcto = false;
    } else
        $('#error_TituloP').hide();
    var lugar = $('#LugarP').val();

    if (lugar.length < 4) {
        $('#error_LugarP').show();
        correcto = false;
    } else {
        $('#error_LugarP').hide();
    }

    var montoT = $('#MontoT').val();
    if (montoT === '') {
        $('#error_MontoT').show();
        correcto = false;
    } else {
        $('#error_MontoT').hide();
    }

    var montoE = $('#MontoE').val();
    if (montoE === '') {
        $('#error_MontoE').show();
        correcto = false;
    } else {
        $('#error_MontoE').hide();
    }

    return correcto;
}
<file_sep>/*
 * 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 ControladorServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.URL;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import servicios.DtUsuario;
import servicios.PublicadorConsultarUsuario;
import servicios.PublicadorConsultarUsuarioService;

/**
 *
 * @author PabloDesk
 */
@WebServlet(name = "RankingUsuarios", urlPatterns = {"/RankingUsuarios"})
public class RankingUsuarios extends HttpServlet {

    private PublicadorConsultarUsuario port;
    private static final long serialVersionUID = 1L;
    private RegistroSitio RS = new RegistroSitio();

    /**
     * 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 {
        RS = new RegistroSitio();
        response.setContentType("text/html;charset=UTF-8");
        configuracion conf = new configuracion();
        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();
        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sConsultaUsuario", ruta));
        PublicadorConsultarUsuarioService webService = new PublicadorConsultarUsuarioService(url);
        this.port = webService.getPublicadorConsultarUsuarioPort();

        List<DtUsuario> lista = this.port.listarUsuariosRanking().getLista();
        request.setAttribute("UsuariosRanking", lista);
        String browserDetails = request.getHeader("User-Agent");
        String IP;
        try (final DatagramSocket socket = new DatagramSocket()) {
            socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
            IP = socket.getLocalAddress().getHostAddress();
        }
        String URL = "http://" + RS.obtenerIP() + "/CulturarteWeb/RankingUsuarios";
        RS.ObtenerRegistro(browserDetails, IP, URL);
        request.getRequestDispatcher("Vistas/RankingUsuarios.jsp").forward(request, response);

    }

    // <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);
    }

    /**
     * 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.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
<file_sep>package ControladorServlet;

/*
 * 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.
 */
import java.io.IOException;
import java.net.DatagramSocket;
import java.net.URL;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import servicios.DtColaboraciones;
import servicios.DtUsuario;
import servicios.DtinfoColaborador;
import servicios.DtinfoPropuesta;
import servicios.PublicadorConsultarUsuario;
import servicios.PublicadorConsultarUsuarioService;
import java.net.InetAddress;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import servicios.Exception_Exception;
import servicios.PublicadorInicio;

/**
 *
 * @author gabri
 */
@WebServlet("/ServletConsultarUsuario")
public class ServletConsultarUsuario extends HttpServlet {

    private PublicadorConsultarUsuario port = null;
    private PublicadorInicio port2;
    private RegistroSitio RS = new RegistroSitio();
    configuracion conf = new configuracion();

    /**
     * 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
     */
    @Override
    public void init() throws ServletException {
    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();
        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sConsultaUsuario", ruta));
        PublicadorConsultarUsuarioService webService = new PublicadorConsultarUsuarioService(url);
        this.port = webService.getPublicadorConsultarUsuarioPort();
        response.setContentType("text/html;charset=UTF-8");
        if (port.listarUsuarios().getLista().isEmpty()) {
            request.setAttribute("mensaje", "No existen usuarios en el sistema");
            request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);
        }
        List<DtUsuario> usuarios = this.port.listarUsuarios().getLista();
        request.setAttribute("Usuarios", usuarios);
        String browserDetails = request.getHeader("User-Agent");
        String IP;
        try (final DatagramSocket socket = new DatagramSocket()) {
            socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
            IP = socket.getLocalAddress().getHostAddress();
        }
        String a = RS.obtenerIP();
        String URL = "http://" + RS.obtenerIP() + "/CulturarteWeb/ServletConsultarUsuario";
        RS.ObtenerRegistro(browserDetails, IP, URL);
        request.getRequestDispatcher("Vistas/ConsultarPerfilUsuario.jsp").forward(request, response);

    }

    // <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);
    }

    /**
     * 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 {
        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();
        String accion = (String) request.getParameter("accion");

        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sConsultaUsuario", ruta));
        PublicadorConsultarUsuarioService webService = new PublicadorConsultarUsuarioService(url);
        this.port = webService.getPublicadorConsultarUsuarioPort();
        //****************************************************************
        if (accion != null) {
            String nombre = (String) request.getParameter("nombre");
            String correo = (String) request.getParameter("correo");
            try {
                System.out.print(nombre);
                if (nombre != null) {
                    nombre = nombre.replace(" ", "");
                    boolean esta = port.existeNombreUser(nombre);
                    if (esta) {
                        response.setContentType("text/plain");
                        response.setCharacterEncoding("UTF-8");
                        response.getWriter().write("esta");
                        return;
                    } else {
                        response.setContentType("text/plain");
                        response.setCharacterEncoding("UTF-8");
                        response.getWriter().write("noesta");
                        return;
                    }
                } else if (correo != null) {
                    correo = correo.replace(" ", "");
                    boolean esta = port.existeCorreoUser(correo);
                    if (esta) {
                        response.setContentType("text/plain");
                        response.setCharacterEncoding("UTF-8");
                        response.getWriter().write("esta");
                        return;
                    } else {
                        response.setContentType("text/plain");
                        response.setCharacterEncoding("UTF-8");
                        response.getWriter().write("noesta");
                        return;
                    }
                }
            } catch (Exception_Exception ex) {
                Logger.getLogger(ServletConsultarUsuario.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        //****************************************************************
        try {
            String nickname = request.getParameter("nick");

            DtUsuario dtu = this.port.obtenerDtUsuario(nickname);
            List<DtUsuario> seguidos = this.port.obtenerSeguidos(nickname).getLista();
            List<DtUsuario> seguidores = this.port.obtenerSeguidores(nickname).getLista();
            List<DtinfoPropuesta> favoritas = this.port.obtenerFavoritas(nickname).getLista();
            request.setAttribute("Seguidos", seguidos);
            request.setAttribute("Seguidores", seguidores);
            request.setAttribute("Usuario", dtu);
            request.setAttribute("Favoritas", favoritas);

            DtUsuario nick = (DtUsuario) request.getSession().getAttribute("usuario_logueado");

            if (dtu.isEsproponente()) {
                List<DtinfoPropuesta> propuestas = this.port.listarPropuestasNoIngresadas(nickname).getLista();
                request.setAttribute("Propuestas", propuestas);
                if (nick != null) {
                    if (dtu.getNickname().equals(nick.getNickname())) {
                        List<DtinfoPropuesta> propuestasing = this.port.listarPropuestasDeProponenteX(nickname).getLista();
                        request.setAttribute("Propuestas2", propuestasing);
                    }
                }
            } else {
                List<DtinfoPropuesta> colaboraciones = this.port.verPropuestas(nickname).getLista();
                DtinfoColaborador dtc = this.port.getDtColaborador(nickname);
                List<DtColaboraciones> monto = this.port.getMontoColaboracion(dtc.getNickname()).getLista();
                request.setAttribute("Colaborador", monto);
                request.setAttribute("Colaboraciones", colaboraciones);
            }
        } catch (ExceptionInInitializerError | Exception a) {
            String mensajeError = "No se puede visualizar la informacion";
            request.setAttribute("mensaje", mensajeError);
            request.getRequestDispatcher("Vistas/ConsultarPerfilUsuario2.jsp").forward(request, response);
        }
        request.getRequestDispatcher("Vistas/ConsultarPerfilUsuario2.jsp").forward(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
<file_sep>/*
 * 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 ControladorServlet;

import static java.lang.Math.log;
import java.net.MalformedURLException;
import java.net.URL;
import servicios.DtListConsultaPropuesta;
import servicios.DtListPropuestaWeb;
import servicios.Exception_Exception;
import servicios.PublicadorInicio;
import servicios.PublicadorInicioService;

/**
 *
 * @author gabri
 */
public class RegistroSitio {

    private String ip;
    private String navegador;
    private String sitio;
    private String SO;
    private PublicadorInicioService PI;
    private PublicadorInicio port;

    public RegistroSitio() {
        this.SO = "";
        this.navegador = "";
        this.sitio = "";
        this.ip = "";
        PI = new PublicadorInicioService();
        port = PI.getPublicadorInicioPort();
    }

    public String getIp() {
        return ip;
    }

    public String getNave() {
        return navegador;
    }

    public String getSitio() {
        return sitio;
    }

    public String getSO() {
        return SO;
    }

    public void ObtenerRegistro(String browserDetails, String IP, String URL) {
        this.ip = IP;
        this.sitio = URL;
        String userAgent = browserDetails;
        String user = userAgent.toLowerCase();

        String os = "";
        String browser = "";

        if (userAgent.toLowerCase().indexOf("windows") >= 0) {
            os = "Windows";
        } else if (userAgent.toLowerCase().indexOf("mac") >= 0) {
            os = "Mac";
        } else if (userAgent.toLowerCase().indexOf("x11") >= 0) {
            os = "Unix";
        } else if (userAgent.toLowerCase().indexOf("android") >= 0) {
            os = "Android";
        } else if (userAgent.toLowerCase().indexOf("iphone") >= 0) {
            os = "IPhone";
        } else {
            os = "desconocido";
        }
        //===============Browser===========================
        if (user.contains("msie")) {
            String substring = userAgent.substring(userAgent.indexOf("MSIE")).split(";")[0];
            browser = substring.split(" ")[0].replace("MSIE", "IE") + "-" + substring.split(" ")[1];
        } else if (user.contains("safari") && user.contains("version")) {
            browser = "Safari";
        } else if (user.contains("opr") || user.contains("opera")) {
            if (user.contains("opera")) {
                browser = "Opera";
            } else if (user.contains("opr")) {
                browser = ((userAgent.substring(userAgent.indexOf("OPR")).split(" ")[0]).replace("/", "-")).replace("OPR", "Opera");
            }
        } else if (user.contains("chrome")) {
            browser = "Google Chrome";
        } else if (user.contains("firefox")) {
            browser = "Mozilla Firefox";
        } else if (user.contains("rv")) {
            browser = "Internet Explorer";
        } else {
            browser = "desconocido";
        }
        this.SO = os;
        this.navegador = browser;

        port.agregarRegistro(ip, navegador, sitio, SO);

    }

    public String obtenerIP() throws MalformedURLException {
        return port.leerPropiedades("Ip");
    }
}
<file_sep>/*
 * 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 ControladorServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import servicios.DtinfoPropuesta;
import servicios.PublicadorAltaPropuesta;
import servicios.PublicadorAltaPropuestaService;
import servicios.PublicadorConsultarPropuesta;
import servicios.PublicadorConsultarPropuestaService;

/**
 *
 * @author gabri
 */
@WebServlet(name = "ServletPropuestaCategoria", urlPatterns = {"/ServletPropuestaCategoria"})
public class ServletPropuestaCategoria extends HttpServlet {

    private PublicadorConsultarPropuesta port;
    private PublicadorAltaPropuesta portCat;
    private RegistroSitio RS = new RegistroSitio();
    configuracion conf = new configuracion();

    /**
     * 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
     */
    @Override
    public void init() throws ServletException {
    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();

        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sConsultaPropuesta", ruta));
        String browserDetails = request.getHeader("User-Agent");
        String IP;
        try (final DatagramSocket socket = new DatagramSocket()) {
            socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
            IP = socket.getLocalAddress().getHostAddress();
        }
        String URL = "http://" + RS.obtenerIP() + "/CulturarteWeb/ServletPropuestaCategoria";
        RS.ObtenerRegistro(browserDetails, IP, URL);
        PublicadorConsultarPropuestaService webService = new PublicadorConsultarPropuestaService(url);
        this.port = webService.getPublicadorConsultarPropuestaPort();

        URL urlP = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sAltaPropuesta", ruta));

        PublicadorAltaPropuestaService webServiceP = new PublicadorAltaPropuestaService(urlP);
        this.portCat = webServiceP.getPublicadorAltaPropuestaPort();

        response.setContentType("text/html;charset=UTF-8");
        List<String> categorias = this.portCat.listarCategorias().getListCategoria();
        request.setAttribute("Categorias", categorias);
        request.getRequestDispatcher("Vistas/PropuestaporCategoria.jsp").forward(request, response);;
    }

    // <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);
    }

    /**
     * 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 {
        String nombre = request.getParameter("cat");
        request.setAttribute("nombre", nombre);
        List<DtinfoPropuesta> propuestas = this.port.listarPropuestasCategoria(nombre).getLista();
        if (propuestas.isEmpty()) {
            request.setAttribute("mensaje", "No existen propuestas de esa categoria");
            request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);
        }
        request.setAttribute("Propuestas", propuestas);
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
<file_sep>/*
 * 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 ControladorServlet;

import java.io.IOException;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import servicios.DtUsuario;
import servicios.PublicadorConsultarUsuario;
import servicios.PublicadorConsultarUsuarioService;

/**
 *
 * @author PabloDesk
 */
@WebServlet(name = "SeguirUsuario", urlPatterns = {"/SeguirUsuario"})
public class SeguirUsuario extends HttpServlet {

    private PublicadorConsultarUsuario port;
    private static final long serialVersionUID = 1L;
    private RegistroSitio RS= new RegistroSitio();

    /**
     * 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 {
        RS = new RegistroSitio();
        response.setContentType("text/html;charset=UTF-8");
        configuracion conf = new configuracion();
        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();

        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sConsultaUsuario", ruta));
        PublicadorConsultarUsuarioService webService = new PublicadorConsultarUsuarioService(url);
        this.port = webService.getPublicadorConsultarUsuarioPort();

        if (request.getSession().getAttribute("usuario_logueado") == null) {
            request.setAttribute("mensaje", "No existe una sesion en el sistema");
            request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);
        } else {
            List<DtUsuario> lista = this.port.listarUsuarios().getLista();
            request.setAttribute("usuarios", lista);
            String browserDetails = request.getHeader("User-Agent");
            String IP;  
            try(final DatagramSocket socket = new DatagramSocket()){
              socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
              IP = socket.getLocalAddress().getHostAddress();
            }            
            String URL = "http://" + RS.obtenerIP() + "/CulturarteWeb/SeguirUsuario";
            RS.ObtenerRegistro(browserDetails, IP, URL);
            request.getRequestDispatcher("Vistas/SeguirUsuario.jsp").forward(request, response);
        }
    }

    // <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);
    }

    /**
     * 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 {
        
        configuracion conf = new configuracion();
        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();

        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + "/servicioConsultaU");
        PublicadorConsultarUsuarioService webService = new PublicadorConsultarUsuarioService(url);
        this.port = webService.getPublicadorConsultarUsuarioPort();
        DtUsuario usuario = Login.getUsuarioSesion(request);

        if (usuario != null) {
            String seguidor = usuario.getNickname();
            String seguido = request.getParameter("seguido");
            String accion = request.getParameter("accion");

            if (accion != null) {
                if (accion.equals("seguir")) {
                    try {
                        this.port.seguirUsuario(seguidor, seguido);
                        usuario.getSeguidos().add(seguido);
                        request.setAttribute("solicitudseguir", "Usuario Seguido con Exito!!!");
                    } catch (Exception ex) {
                        Logger.getLogger(SeguirUsuario.class.getName()).log(Level.SEVERE, null, ex);
                        request.setAttribute("solicitudseguir", ex.getMessage());
                    }

                } else if (accion.equals("dejarseguir")) {
                    try {
                        this.port.dejarSeguirUsuario(seguidor, seguido);
                        usuario.getSeguidos().remove(seguido);
                        request.setAttribute("solicitudseguir", "Finalizacion de Seguimineto realizada con Exito!!!");
                    } catch (Exception ex) {
                        Logger.getLogger(SeguirUsuario.class.getName()).log(Level.SEVERE, null, ex);
                        request.setAttribute("solicitudseguir", ex.getMessage());
                    }

                }              
                processRequest(request, response);
                
            } else if (request.getParameter("BuscarUsu") != null) {
                List<DtUsuario> lista = this.port.listarUsuarios().getLista();
                ArrayList<DtUsuario> retorno = new ArrayList<>();
                for (int i = 0; i < lista.size(); i++) {
                    if (lista.get(i).getNickname().contains(request.getParameter("BuscarUsu"))) {
                        retorno.add(lista.get(i));
                    }
                }
                if (!retorno.isEmpty()) {
                    request.setAttribute("usuarios", retorno);
                    request.getRequestDispatcher("/Vistas/SeguirUsuario.jsp").forward(request, response);
                } else {
                    request.setAttribute("mensaje", "Ese Usuario no existe en el sistema");
                    request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);

                }
            }

        }

    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
<file_sep>/*
 * 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 ControladorServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import logica.Clases.DtUsuario;
import logica.Clases.TipoRetorno;
import logica.Fabrica;

/**
 *
 * @author Martin
 */
@WebServlet(name = "ServletAltaPropuest", urlPatterns = {"/ServletAltaPropuesta"})
public class ServletAltaPropuesta extends HttpServlet {

    public static final String MENSAJE_ERROR = "mensaje_error";
    public static final String MENSAJE_EXITO = "mensaje_exito";
    private String MENSAJE;

    /**
     * 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 {
        List<String> listCat = Fabrica.getInstance().getControladorPropCat().ListarCategorias();
        request.setAttribute("listCat", listCat);
        
        request.getRequestDispatcher("Vistas/AltaPropuesta.jsp").forward(request, response);
    }

    // <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);
    }

    /**
     * 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 {

        String opcion = "1";  //request.getParameter("opcion");
        switch (opcion) {
            case "1":
                String titulo = request.getParameter("TituloP");
                String lugar = request.getParameter("LugarP");
                String desc = request.getParameter("Descripcion");
                float montoT = Float.parseFloat(request.getParameter("MontoT"));
                float montoE = Float.parseFloat(request.getParameter("MontoE"));
                String fechaR = (request.getParameter("FechaR") == null ? "" : request.getParameter("FechaR"));
                String cat = request.getParameter("Categoria");

                Calendar fecha = new GregorianCalendar();
                DateFormat formato = new SimpleDateFormat("yyyy/mm/dd");

                try {
                    //DtUsuario dtLogeado = (DtUsuario) request.getSession().getAttribute("usuario_logeado");
                    DtUsuario dtLogeado = new DtUsuario("mbusca", "", "", "", fecha, "","",false);

                    boolean encontrado = Fabrica.getInstance().getControladorPropCat().seleccionarUC(dtLogeado.getNickName(), cat);

                    if (!encontrado) {
                        boolean ok = Fabrica.getInstance().getControladorPropCat().crearPropuesta(titulo, desc, lugar, cat, fecha, montoE, montoT, TipoRetorno.EntGan);
                        MENSAJE = "Se registro exitosamente";
                        request.setAttribute("mensaje", MENSAJE);
                        request.getRequestDispatcher("/Vistas/FuncionamientoCorrecto.jsp").forward(request, response);
                    }

                } catch (ExceptionInInitializerError | Exception a) {
                    String mensajeError = "La propuesta no pudo ser dada de alta";
                    request.setAttribute("mensaje", mensajeError);
                    request.getRequestDispatcher("/Vistas/FuncionamientoCorrecto.jsp").forward(request, response);
                }

                break;
        }
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
<file_sep>/* 
 * 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.
 */

$('#filtro-estado').click(function () {
    var tipo = "estado";
    var busqueda = $("#busqueda").val();
    $.ajax({
        url: "/CulturarteWeb/servletBuscador",
        // la información a enviar
        // (también es posible utilizar una cadena de datos)
        data: {"filtro": tipo,
            "busqueda": busqueda},
        // especifica si será una petición POST o GET
        type: 'GET',
        success: function (data) {
            for (var i = 0; i < data.length; i++) {
                document.querySelector("#elemento" + i + " .Titulo").innerHTML = data[i].Titulo;
                document.querySelector("#elemento" + i + " .Lugar").innerHTML = data[i].Lugar;
                document.querySelector("#elemento" + i + " .Descripcion").innerHTML = data[i].Descripcion;
                document.querySelector("#elemento" + i + " .Estado").innerHTML = data[i].estado;                
            }
        }
    });
});
$('#filtro-fecha').click(function () {
    var tipo = "fecha";
    var busqueda = $('#busqueda').val();
    $.ajax({
        url: "/CulturarteWeb/servletBuscador",
        // la información a enviar
        // (también es posible utilizar una cadena de datos)
        data: {"filtro": tipo,
            "busqueda": busqueda},
        // especifica si será una petición POST o GET
        type: 'GET',
        success: function (data) {
            for (var i = 0; i < data.length; i++) {
                document.querySelector("#elemento" + i + " .Titulo").innerHTML = data[i].Titulo;
                document.querySelector("#elemento" + i + " .Lugar").innerHTML = data[i].Lugar;
                document.querySelector("#elemento" + i + " .Descripcion").innerHTML = data[i].Descripcion;
                document.querySelector("#elemento" + i + " .Estado").innerHTML = data[i].estado;
            }
        }
    });
});
$('#filtro-alfa').click(function () {
    var tipo = "alfa";
    var busqueda = $('#busqueda').val();
    var cantidad = $("#cantidad").val();
    $.ajax({
        url: "/CulturarteWeb/servletBuscador",
        // la información a enviar
        // (también es posible utilizar una cadena de datos)
        data: {
            "filtro": tipo,
            "busqueda": busqueda},
// especifica si será una petición POST o GET
        type: 'GET',
        success: function (data) {
            for (var i = 0; i < data.length; i++) {
                document.querySelector("#elemento" + i + " .Titulo").innerHTML = data[i].Titulo;
                document.querySelector("#elemento" + i + " .Lugar").innerHTML = data[i].Lugar;
                document.querySelector("#elemento" + i + " .Descripcion").innerHTML = data[i].Descripcion;
                document.querySelector("#elemento" + i + " .Estado").innerHTML = data[i].estado;
            }
        },
        error: function (error) {
            console.log(error);
        }

    });
});

<file_sep>/*
 * 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 ControladorServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import servicios.DtNickTitProp;
import servicios.DtUsuario;
import servicios.PublicadorConsultarPropuesta;
import servicios.PublicadorConsultarPropuestaService;

/**
 *
 * @author Santiago.S
 */
@WebServlet(name = "ServletExtenderFinanciacion", urlPatterns = {"/ServletExtenderFinanciacion"})
public class ServletExtenderFinanciacion extends HttpServlet {

    private PublicadorConsultarPropuesta port;
    private RegistroSitio RS = new RegistroSitio();
    configuracion conf = new configuracion();

    @Override
    public void init() throws ServletException {
    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        ServletContext context;
        context = request.getServletContext();
        String ruta = context.getResource("").getPath();

        URL url = new URL("http://" + conf.obtenerServer("servidor", ruta) + conf.leerProp("sConsultaPropuesta", ruta));

        PublicadorConsultarPropuestaService webService = new PublicadorConsultarPropuestaService(url);
        this.port = webService.getPublicadorConsultarPropuestaPort();

        if (request.getSession().getAttribute("usuario_logueado") == null) {
            request.setAttribute("mensaje", "No existe una sesión en el sistema");
            request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);
        } else {
            if (((DtUsuario) request.getSession().getAttribute("usuario_logueado")).isEsproponente() == true) {

                List<DtNickTitProp> lista = this.port.listarPropuestasXDeProponenteX(((DtUsuario) request.getSession().getAttribute("usuario_logueado")).getNickname()).getListPropuestas();
                if (lista.isEmpty()) {
                    request.setAttribute("mensaje", "No existen propuestas para extender");
                    request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);
                } else {
                    request.setAttribute("lista_propuestas", lista);
                    String browserDetails = request.getHeader("User-Agent");
                    String IP;
                    try (final DatagramSocket socket = new DatagramSocket()) {
                        socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
                        IP = socket.getLocalAddress().getHostAddress();
                    }
                    String URL = "http://" + RS.obtenerIP() + "/CulturarteWeb/ServletExtenderFinanciacion";
                    RS.ObtenerRegistro(browserDetails, IP, URL);
                    request.getRequestDispatcher("/Vistas/ExtenderFinanciacion.jsp").forward(request, response);
                }
            } else {
                request.setAttribute("mensaje", "Solo los proponentes pueden entrar");
                request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);
            }
        }
    }

    // <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);
    }

    /**
     * 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 {
        if (request.getParameter("TituloP") != null) {
            String viene = request.getParameter("TituloP");
            String Opcion = new String(viene.getBytes("ISO-8859-1"), "UTF-8");
            this.port.extenderFinanciacion(((String) request.getParameter("TituloP")));
            request.setAttribute("mensaje", "Se extendio la fecha de la propuesta");
            request.getRequestDispatcher("/Vistas/Mensaje_Recibido.jsp").forward(request, response);
        }
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
<file_sep>/* 
 * 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.
 */
function habilitar(document) {
    document.getElementsByName("otros").style.display = "";
}

function desabilitar(document) {
    document.getElementsByName("otros").style.display = "none";
}

function verificarNombre() {

    var nombre = $("#nick").val().toString().trim();
    if (nombre === "") {
        document.getElementById("checkout").style.display = "none";
        document.getElementById("check").style.display = "none";
        return;
    }
    $.ajax({
        url: "/CulturarteWeb/ServletConsultarUsuario",
        type: 'POST',
        data: {
            accion: "verificar",
            nombre: nombre
        },
        success: function (msg) {
            if (msg === "esta") {
                document.getElementById("checkout").style.display = "block";
                document.getElementById("check").style.display = "none";
            } else {
                document.getElementById("check").style.display = "block";
                document.getElementById("checkout").style.display = "none";
            }
        }
    });
}


function verificarCorreo() {
    var correo = $("#correo").val().toString().trim();
    if (correo === "") {
        document.getElementById("checkoutE").style.display = "none";
        document.getElementById("checkE").style.display = "none";
        return;
    }
    $.ajax({
        url: "/CulturarteWeb/ServletConsultarUsuario",
        type: 'POST',
        data: {
            accion: "verificar",
            correo: correo
        },
        success: function (msg) {
            if (msg === "esta") {
                document.getElementById("checkoutE").style.display = "block";
                document.getElementById("checkE").style.display = "none";
            } else {
                document.getElementById("checkE").style.display = "block";
                document.getElementById("checkoutE").style.display = "none";
            }
        }
    });
}
function calcularEdad(fecha) {
    var hoy = new Date();
    var cumpleanos = new Date(fecha);
    var edad = hoy.getFullYear() - cumpleanos.getFullYear();
    var m = hoy.getMonth() - cumpleanos.getMonth();

    if (m < 0 || (m === 0 && hoy.getDate() < cumpleanos.getDate())) {
        edad--;
    }

    return edad;
}
function validarEdad() {
    var fecha = document.getElementById("fecha").value;
    var edad = calcularEdad(fecha);

    if (edad >= 18) {
        document.getElementById('crear').disabled = false;
        document.getElementById("mensajeEdad").style.display = "none";
    } else {
        document.getElementById('crear').disabled = true;
        document.getElementById("mensajeEdad").style.display = "block";
    }

}