Bom dia Pessoal! sou iniciante em java…
estou desenvolvendo uma aplicação de login… criei 3 classes USUARIO, LOGON, CONEXAO.Segue abaixo o código de cada uma:
CONEXAO:
package Controle;
import java.sql.*;
public class Conexao {
protected String pDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
protected String StrConexao = "jdbc:odbc:Veterinaria";
protected String StrUser = "";
protected String StrSenha = "";
Connection Conn = null;
protected ResultSet rs;
public Conexao(){
}
public void Create(){
try {
Class.forName(pDriver);
Conn = DriverManager.getConnection(StrConexao, StrUser, StrSenha);
}
catch(ClassNotFoundException Erro){
Erro.printStackTrace();
}
catch(SQLException Erro){
System.out.println("Erro criando Conexao!");
Erro.printStackTrace();
}
}
public void Close(){
try{
Conn.close();
}
catch(SQLException ErroClose){
System.out.println("Erro fechando Conexao!");
ErroClose.printStackTrace();
}
}
public void Update(String pSQL){
try{
Statement Stm = Conn.createStatement();
Stm.executeUpdate(pSQL);
}
catch(SQLException ErroClose){
System.out.println("Erro criando STM!");
ErroClose.printStackTrace();
}
}
public void Select(String pSQL){
try{
Statement Stm = Conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = Stm.executeQuery(pSQL);
}
catch(SQLException ErroClose){
System.out.println("Erro criando STM!");
ErroClose.printStackTrace();
}
}
public void Mostrar(){
try{
while (rs.next()){
System.out.println(rs.getString("Login"));
System.out.println(rs.getString("Senha"));
}
}
catch(Exception E){
E.printStackTrace();
}
}
public ResultSet getRs(){
return rs;
}
}
USUARIO:
package Controle;
import java.util.Date;
public class Usuario {
protected String Login;
protected String Senha;
protected String Perfil;
protected Date Acesso;
public void setLogin(String pLogin){
Login = pLogin;
}
public void setSenha(String pSenha){
Senha = pSenha;
}
public void setPerfil(String pPerfil){
Perfil = pPerfil;
}
public String getLogin(){
return Login;
}
public String getSenha(){
return Senha;
}
public String getPerfil(){
return Perfil;
}
}
LOGON:
package Controle;
import java.sql.*;
public class Logon extends Usuario {
protected Conexao CXN;
protected boolean Flag = false;
protected ResultSet pRs;
protected String Login;
protected String Senha;
protected String Perfil;
String t;
public Logon(){
CXN = new Conexao();
}
public boolean Validar(String pLogin, String pSenha){
try{
CXN.Create();
String pSQL = "SELECT * FROM Usuarios WHERE (Login='" + pLogin + "') And (Senha='" + pSenha + "')";
CXN.Select(pSQL);
if (CXN.rs.first()== true) {
Flag = true;
super.setLogin(CXN.rs.getString("Login"));
super.setPerfil(CXN.rs.getString("Perfil"));
}
else
{
Flag = false;
}
}
catch(Exception erro){
erro.printStackTrace();
}
CXN.Close();
return Flag;
}
public void SetPalavra(String pStr){
t = pStr;
}
public String getPalavra(){
return t;
}
}
o problema é o seguinte…criei uma classe de teste…e implementei um método Main para testar minhas classes…tudo funcionou normal!! quando coloquei as classes em uma pasta no Tomcat(C:\Tomcat 5.5\webapps\veterinaria\WEB-INF\classes\Controle) e criei um jsp para testar os objetos…nao funciona…ta dando erro. Segue abaixo o código JSP e a página de erro…
JSP(Login.jsp):
<%@ page import="Controle.*"%>
<%
Logon Login = new Logon();
boolean b = Login.Validar("Rodrigo", "casa");
if (b == true){
out.print("<p>Logado</p>");
}
else{
out.println("<p>Não Logado</p>");
}
%>
ERRO(Tomcat):
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /Login.jsp:10
7:
8: Logon Login = new Logon();
9:
10: boolean b = Login.Validar("Rodrigo", "casa");
11:
12: if (b == true){
13:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
Controle.Conexao.Close(Conexao.java:33)
Controle.Logon.Validar(Logon.java:36)
org.apache.jsp.Login_jsp._jspService(Login_jsp.java:52)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
obrigadoo…