Bueno intentare explicarme lo mejor posible para ver si me entienden.
Lo funcion de este servlet es mostrar los datos de un usuario que yo ingreso mediante html, que es este.
Mas concretamente busca la cuenta de un usuario que esta en mi tabla "usuarios" dentro de la base de datos "mailperu" (esta hecho en mysql 5.0).Código:<html> <head> <title>Buscar Usuario</title> </head> <body bgcolor="salmon"> <h1>Buscar Usuario</h1> <form action="http://localhost:8084/correosandro/BuscaUsuarioMuestra" method="post"> Ingrese la Cuenta<input type="text" name="cuenta" size="20"> <input type="submit" value="Buscar"> </form> </body> </html>
Este es el codigo java del servlet espero lo entiendan.(ya que como soy algo novato a veces se me pasan cosas)
Bueno pero tengo un problema y no he podido resolverlo, cuando ingreso un cuenta de un usuario por ejemplo "asecino" el servlet no ejecuta y en el log del Bundled Tomcat tengo este mensaje(Error en la actualización Unknown column 'asecino in 'where clause'), pero si por ejemplo busco el usuario "123456" si lo encuentra y me muestra los datos que le pido. Lo que no entiendo es porque cuando ingreso usuario con letras no me da lo que quiero y con numeros si.Código:package Servlets; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class BuscaUsuarioMuestra extends HttpServlet { Connection conn; //Objeto de la conexion Statement stm; static String login = "root"; static String password = "admin"; static String url = "jdbc:mysql://localhost/mailperu"; public void init(ServletConfig cf) throws ServletException { super.init(cf); //Se intenta cargar el driver de puente JDBC-ODBC try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("Imposible encontrar el driver:" + e.getMessage()); } //Se intenta realizar la conexión a la base de datos ejemplo try { conn = DriverManager.getConnection(url,login,password); }catch (SQLException e) { System.out.println("horror2"); System.out.println("Imposible crear conexion:" + e.getMessage()); } }// fin init() public void destroy() { super.destroy(); try { conn.close(); } catch (SQLException e) { System.out.println("Imposible cerrar conexion:" +e.getMessage()); } }//fin destroy() //Redefinimos el metodo doPost ya que las peticiones se realizaran por ese metodo public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException { String cuenta; PrintWriter out=null; //Obtenemos los valores de los parámetros cuenta = request.getParameter("cuenta"); System.out.println(cuenta); //Comprobamos si esta vacio //Si es asi enviamos una pagina informando del error y si no //consultamos la BD e informamos de los resultados if (cuenta == null ) { try { out = response.getWriter(); }catch (IOException e){ System.out.println("Error en el canal de salida: "+e.toString()); } //Devolvemos una pagina de error out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>Error en la actualización de datos</TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println("<H1>Usuario no Valido</H1>"); out.println("</BODY>"); out.println("</HTML>"); out.flush(); out.close(); } else { // no hay errores try { //Creamos una sentencia para la recuperación de valores stm = conn.createStatement(); ResultSet rs = stm.executeQuery("SELECT * FROM usuarios WHERE cuenta ="+cuenta); try{ out = response.getWriter(); } catch(IOException e){}; //Devolvemos una pagina de exito de operación out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>Datos de la persona solicitada</TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println("<TABLE BORDER=3 WIDTH=75%>"); out.println("<TR>"); out.println("<td width=33%><font color=\"#FF0000\">Cuenta</font> </td>"); out.println("<td width=33%><font color=\"#FF0000\">Clave</font> </td>"); out.println("<td width=\"33%\"><font color=\"#FF0000\">Nombres</font></td>"); out.println("<td width=\"33%\"><font color=\"#FF0000\">Apellidos</font></td>"); out.println("</TR>"); while(rs.next()) { out.println("<tr>"); out.println("<td width=\"33%\">"+ rs.getString("cuenta")+"</td>"); out.println("<td width=\"33%\">"+ rs.getString("clave")+"</td>"); out.println("<td width=\"33%\">"+ rs.getString("nombres")+"</td>"); out.println("<td width=\"33%\">"+ rs.getString("apellidos")+"</td>"); out.println("</tr>"); } out.println("</TABLE>"); out.println("</BODY>"); out.println("</HTML>"); out.flush(); out.close(); }catch (Exception e) { System.out.println("Error en la actualización " + e.getMessage()); }finally { try { stm.close(); }catch(SQLException e){ } }//fin finally }//fin else }//fin doPost() }//fin servlet
Espero que me ayuden muchas gracias por adelantado.