package st;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;

public class Servlet1 extends HttpServlet {
    //private static final String CONTENT_TYPE = "text/html";
    static Statement stmt;
    static Connection con;
    ResultSet rs;
    static String Url="";
    /**Inicializar variables globales*/
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }


    /**Procesar una petición HTTP Get*/
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
       /** response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<font color=\"green\">");
        out.println("<p>El servlet ha recibido un GET. Esta es la respuesta.</p>");
        out.println("</font>");*/
        PrintWriter p=new java.io.PrintWriter(res.getOutputStream());
        p.println("<HTML>");
        p.println("<body>");
        p.println("<form method='post' action='http://localhost:8080/webapps/Cronos/Servlet1'>");
        p.println("<table align='center' border=0>");
        p.println("<tr><colspan=2><h2>Consulta Clientes</h2><p></td></tr>");
        p.println("<tr>");
        p.println("     <td><b>Seleccione la Provincia del Cliente&nbsp;</b></td>");
        p.println("     <td><input type='text' name='pprovincia' value='></td>");
        p.println("</tr>");
        p.println("<tr><td align='center' colspan=2>");
        p.println("         <input type='submit' name='Listar' value='Listar'>");
        p.println("</td></tr>");
        p.println("</table>");
        p.println("</form></body></HTML>");
        p.flush();
        p.close();

    }
    /**Procesar una petición HTTP Post*/
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        /**response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>Servlet1</title></head>");
        out.println("<body BGCOLOR=\"#ffc800\">");
        out.println("<p>El servlet ha recibido un POST. Esta es la respuesta.</p>");
        out.println("</body></html>");*/
        ConectarDB();
        PrintWriter p=new java.io.PrintWriter(res.getOutputStream());
        String sprovincia=req.getParameterValues("pprovincia")[0];
        String ssql=new String("SELECT codCli,nombre,provincia FROM Clientes");
        ssql=ssql+"where provincia like '"+ sprovincia + "'%order by provincia,nombre";
        try{
            rs = stmt.executeQuery(ssql);
            int contador=0;
            p.println("<HTML><body><center>");
            while(rs.next()){
                if(contador ==0){
                    p.println("<h2><b>LISTADO DE CLIENTES</b></h2>");
                    p.println("<p>");
                    p.println("<table align='center' border=1>");
                    p.println("<tr>");
                    p.println("      <th align='center'>Nº</th>");
                    p.println("      <th align='center'>Nombre</th>");
                    p.println("      <th align='center'>Codigo</th>");
                    p.println("      <th align='center'>Provincia</th>");
                    p.println("</tr>");
                }
                contador++;
                int icod=rs.getInt("codCli");
                String snombre=rs.getString("provincia");
                sprovincia=rs.getString("provincia");
                p.println("<tr>");
                p.println("<td>"+contador+"</td>");
                p.println("     <td>"+snombre+"</td>");
                p.println("     <td>"+icod+"</td>");
                p.println("     <td>"+sprovincia+"</td>");
                p.println("</tr>");
                p.println("<tr>");
            }
                if(contador==0)
                    p.println("<font size=+1 align='center'>No existen clientes</h3>");
                else
                    p.println("</table>");
                rs.close();
                p.println("<a href='HTTP://localhost:8080/webapps/Cronos/Servlet1'>");
                p.println("Elegir otra provincia</a>");
                p.println("</center></body></HTML>");
                p.flush();
                p.close();
        }
        catch(SQLException ex){
            System.out.println("Error al seleccionar en BD: "+ex);
            DesconectarDB();
        }
        DesconectarDB();

    }
    /**Procesar una petición HTTP Put*/
    public void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    /**Procesar una petición HTTP Delete*/
    public void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    /**Limpiar recursos*/
    public void destroy() {
    }
    /**coneccion a DB------------------------------------------------------------*/
    public static void ConectarDB(){
     try {
      //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");para odbc
      Class.forName("org.gjt.mm.mysql.Driver");
		    }
      catch(java.lang.ClassNotFoundException ex) {
                 System.out.println("Error al intentar conectar con la Base de Datos: "+ex);
                 ex.printStackTrace();
		}
        try {
       con = DriverManager.getConnection(Url,"hefperez","hefesto");
       stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                       ResultSet.CONCUR_UPDATABLE);
		}  catch(SQLException ex) {
                 System.out.println("Error al intentar conectar con la Base de Datos: "+ex);
                 ex.printStackTrace();
		}
    }
    /**---------------------------------------------------------------------------*/

    /**desconeccion de la DB------------------------------------------------------*/
    public static void DesconectarDB(){
        try{
            stmt.close();
            con.close();
        }
        catch(Exception ex){
            System.out.println("Error al cerrar DB");
            ex.printStackTrace();
        }
    }
    /**---------------------------------------------------------------------------*/
}