Olá pessoal, sou novato em java, to aprendendo agora. Fiz um programinha usando JSP + Servlet para listar o conteúdo de uma tabela no banco de dados. Mas está retornando um erro que eu não estou sabendo resolver. Se alguém poder me ajudar eu agradeço.
JSP:
<%@page import="javax.servlet.*"%>
<%@page import="javax.servlet.http.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="conexao.ConexaoBD"%>
<html>
<head>
<title>Teste</title>
<body>
<%
ConexaoBD con = null;
try {
con = new ConexaoBD();
String sql="select * from Email";
ResultSet rs = con.executeQuery(sql);
while (rs.next()){
out.println(rs.getString("Email"));
}
} catch(SQLException e){
out.println("Erro no SQL!"+e.getMessage());
return;
}
finally {
if (con!=null)
con.fecharConexao();
con=null;
}
%>
</body>
</html>
Servlet:
package conexao;
import java.sql.*;
public class ConexaoBD {
private Connection connection;
private Statement statement;
public ConexaoBD(){
try{
String Hd=System.getProperty("user.dir");
Hd+="\\emails.mdb";
String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driverName);
//connection = DriverManager.getConnection("jdbc:odbc:Driver=" +"{Microsoft Access Driver (*.mdb)};" + "DBQ="+Hd ,"",""); //usando acesso direto ao arquivo
connection = DriverManager.getConnection("jdbc:odbc:teste","",""); //usando o obdc
}catch(ClassNotFoundException ex){
System.out.println("Não foi possível encontrar o driver");
}catch(SQLException ex){
System.out.println("Não foi possível conectar ao servidor");
}
try {
statement = connection.createStatement();
}catch(SQLException ex){
System.out.println("Não foi possível conectar ao servidor");
}
}
public synchronized void executeUpdate(String update)throws SQLException {
try{
statement.executeUpdate(update);
}catch(SQLException ex){
System.out.println("Não foi possível executar o update");
}
}
public synchronized ResultSet executeQuery(String query)throws SQLException {
try{
return statement.executeQuery(query);
}catch(SQLException ex){
System.out.println("Não foi possível executar a query");
throw ex;
}
}
public void fecharConexao(){
try{
statement.close();
}catch(SQLException ex){
ex.printStackTrace();
}
}
}
Erro:
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
conexao.ConexaoBD.<init>(conexaobd.java:25)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:63)
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:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)