Como mostrar Exception con PrintWriter?
Publicado por alejandro (6 intervenciones) el 28/08/2009 23:07:15
Estoy haciendo este servlet para validar los datos de un login, pero no sé que debo hacer para mostrar mis mensajes de excepciones en la pantalla:
He declarado PrintWriter al principio de la clase, y en el metodo BooleanLogin quiero ocupar out.println para mostrar mis mensajes de error, al ejecutar los datos en el login no muestra nada y no sé si estoy conectado a la BDD o si ocurrio alguna cosa.
Como puedo solucionar el problema para mostrar los mensajes de error formulados por excepciones en pantalla y el mensaje si estoy conectado a la BDD?
gracias
------------------------------------------------------------------------------------------------------------------------------------
codigo
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
public class LoginServletSql extends HttpServlet
{
PrintWriter out; //printWriter declarado
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
sendLoginForm(response,false);
}//fin doGet
private void sendLoginForm(HttpServletResponse response, boolean withErrorMessage)
throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out= response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Login</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<CENTER>");
if(withErrorMessage)
out.println("Login failed. Please try again.<BR>");
out.println("<BR>");
out.println("<BR><H2>Login Page</H2>");
out.println("<BR>");
out.println("<BR>Please enter your user name and password.");
out.println("<BR>");
out.println("<BR><FORM METHOD=POST>");
out.println("<TABLE>");
out.println("<TR>");
out.println("<TD>User Name:</TD>");
out.println("<TD><INPUT TYPE=TEXT NAME=userName></TD>");
out.println("</TR>");
out.println("<TR>");
out.println("<TD>Password:</TD>");
out.println("<TD><INPUT TYPE=PASSWORD NAME=password></TD>");
out.println("</TR>");
out.println("<TR>");
out.println("<TD ALIGN=RIGHT COLSPAN=2>");
out.println("<INPUT TYPE=SUBMIT VALUE=Login></TD>");
out.println("</TR>");
out.println("</TABLE>");
out.println("</FORM>");
out.println("</CENTER>");
out.println("</BODY>");
out.println("</HTML>");
}//fin sendLoginForm
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException
{
String userName= request.getParameter("UserName");
String password =request.getParameter("password");
if(login(userName,password))
{
RequestDispatcher rd=request.getRequestDispatcher("mensaje/Mensaje");
rd.forward(request,response);
}//fin if
else
{
sendLoginForm(response,true);
}//fin else
}//fin doPost
//metodo de conexion
Boolean login(String userName,String password)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/prueba","root","");
out.println("got connection");
Statement s = con.createStatement();
String sql ="SELECT UserName FROM Users"+ "WHERE UserName'"+userName+"'"+ "AND Password='"+password+"'";
ResultSet rs = s.executeQuery(sql);
if(rs.next())
{
rs.close();
s.close();
con.close();
return true;
}//fin if
rs.close();
s.close();
con.close();
} //fin try
catch(ClassNotFoundException e)
{
out.println("Exception:"+e.toString());
}//fin primer catch
catch(SQLException e)
{
out.println("Exception:"+e.toString());
}//fin segundo catch
catch(Exception e)
{
out.println("Exception:"+e.toString());
}//fin tercer catch
return false;
}//fin Boolean login
}//fin clase
He declarado PrintWriter al principio de la clase, y en el metodo BooleanLogin quiero ocupar out.println para mostrar mis mensajes de error, al ejecutar los datos en el login no muestra nada y no sé si estoy conectado a la BDD o si ocurrio alguna cosa.
Como puedo solucionar el problema para mostrar los mensajes de error formulados por excepciones en pantalla y el mensaje si estoy conectado a la BDD?
gracias
------------------------------------------------------------------------------------------------------------------------------------
codigo
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;
public class LoginServletSql extends HttpServlet
{
PrintWriter out; //printWriter declarado
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
sendLoginForm(response,false);
}//fin doGet
private void sendLoginForm(HttpServletResponse response, boolean withErrorMessage)
throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out= response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Login</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<CENTER>");
if(withErrorMessage)
out.println("Login failed. Please try again.<BR>");
out.println("<BR>");
out.println("<BR><H2>Login Page</H2>");
out.println("<BR>");
out.println("<BR>Please enter your user name and password.");
out.println("<BR>");
out.println("<BR><FORM METHOD=POST>");
out.println("<TABLE>");
out.println("<TR>");
out.println("<TD>User Name:</TD>");
out.println("<TD><INPUT TYPE=TEXT NAME=userName></TD>");
out.println("</TR>");
out.println("<TR>");
out.println("<TD>Password:</TD>");
out.println("<TD><INPUT TYPE=PASSWORD NAME=password></TD>");
out.println("</TR>");
out.println("<TR>");
out.println("<TD ALIGN=RIGHT COLSPAN=2>");
out.println("<INPUT TYPE=SUBMIT VALUE=Login></TD>");
out.println("</TR>");
out.println("</TABLE>");
out.println("</FORM>");
out.println("</CENTER>");
out.println("</BODY>");
out.println("</HTML>");
}//fin sendLoginForm
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException
{
String userName= request.getParameter("UserName");
String password =request.getParameter("password");
if(login(userName,password))
{
RequestDispatcher rd=request.getRequestDispatcher("mensaje/Mensaje");
rd.forward(request,response);
}//fin if
else
{
sendLoginForm(response,true);
}//fin else
}//fin doPost
//metodo de conexion
Boolean login(String userName,String password)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/prueba","root","");
out.println("got connection");
Statement s = con.createStatement();
String sql ="SELECT UserName FROM Users"+ "WHERE UserName'"+userName+"'"+ "AND Password='"+password+"'";
ResultSet rs = s.executeQuery(sql);
if(rs.next())
{
rs.close();
s.close();
con.close();
return true;
}//fin if
rs.close();
s.close();
con.close();
} //fin try
catch(ClassNotFoundException e)
{
out.println("Exception:"+e.toString());
}//fin primer catch
catch(SQLException e)
{
out.println("Exception:"+e.toString());
}//fin segundo catch
catch(Exception e)
{
out.println("Exception:"+e.toString());
}//fin tercer catch
return false;
}//fin Boolean login
}//fin clase
Valora esta pregunta


0