Objeto criado dentro de JSP sempre fica nulo!

Olá, pesquisei bastante aqui no fórum e internet mas realmente não consegui encontrar nenhuma solução. Eu tento criar um objeto dentro de um código JSP mas quando envio ele como parâmetro para uma DAO, simplesmente ele aparece como nulo, já debuguei varias vezes e realmente não sei o que está acontecendo!

O JSP em que o objeto é criado:

<%@page import="java.io.IOException"%>
<%@page import="Persistencia.Business.Cliente_BO"%>
<%@page import="Persistencia.Transfer.Cliente_TO"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>

<%
    try
    {
        Cliente_TO ClienteTO = new Cliente_TO();
        ClienteTO.setCnpj(request.getParameter("cnpj").toString());
        ClienteTO.setRazaosocial(request.getParameter("razaosocial").toString());
        
        new Cliente_BO().Save(ClienteTO);
    }
    catch(Exception E)
    {
        E.printStackTrace();
        out.println("Error: "+E);
    }
    
    
%>

A classe de Negócios para onde ele é enviado:

package Persistencia.Business;

import Persistencia.DAO.Cliente_DAO;
import Persistencia.Transfer.Cliente_TO;
import java.sql.SQLException;

public class Cliente_BO 
{
    
    public Cliente_TO Save(Cliente_TO ClienteTO) throws SQLException
    {
        
        return new Cliente_DAO().Save(ClienteTO);
    }
}

A DAO:

package Persistencia.DAO;
import Persistencia.Transfer.Cliente_TO;
import java.sql.SQLException;

public class Cliente_DAO extends ConexaoDB.ConexaoDB
{
    
    public Cliente_TO Save(Cliente_TO ClienteTO) throws SQLException 
    {
        
        Comando = Conexao.prepareStatement("INSERT INTO cliente (cnpj,razaosocial) values (?,?)");
        Comando.setString(1, ClienteTO.getCnpj());
        Comando.setString(2, ClienteTO.getRazaosocial());
        Comando.execute();
        Comando.close();
        return ClienteTO;
    }
}

Uma coisa estranha que notei ao debugar foi quando eu entrava no método que ia para a classe de negocio ( new Cliente_BO().Save(ClienteTO)) não entrava nele e sim na classe e depois voltava. Achei estranho pois podia entrar de novo e ai sim entrava na DAO e dava o erro. Desde já agradeço a atenção.

EDIT: Uma informação importante: Quando debuguei e passava o mouse sobre o objeto dizia que “não é uma variável conhecida no contexto atual”

Amigos, aparentemente resolvi o problema.

Como podem ter percebido, a classe DAO herda uma classe de conexão, eis ela:

public class ConexaoDB {

    protected  Connection Conexao;
    protected  PreparedStatement Comando;
    protected  Statement cmd;
    protected  ResultSet Dados;
    protected  List Query;
    
    public void ConexaoDB() throws ClassNotFoundException, SQLException
    {
        Class.forName("org.postgresql.Driver");
        Conexao = DriverManager.getConnection("jdbc:postgresql://localhost:5432/construtora","postgres","pass");
    }
}

Eu desfiz essa classe e botei a conexão direto na classe DAO e ela ficou assim:

package Persistencia.DAO;
import Persistencia.Transfer.Cliente_TO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 *
 * @author Túlio
 */
public class Cliente_DAO
{
    private  Connection Conexao;
    private  PreparedStatement Comando;
    
    public void Connect() throws ClassNotFoundException, SQLException
    {
        Class.forName("org.postgresql.Driver");
        Conexao = DriverManager.getConnection("jdbc:postgresql://localhost:5432/construtora","postgres","zeldaspeed");
    }
    
    public Cliente_TO Save(Cliente_TO ClienteTO) throws SQLException, ClassNotFoundException 
    {
        Connect();
        Comando = Conexao.prepareStatement("INSERT INTO cliente (cnpj,razaosocial) values (?,?)");
        Comando.setString(1, ClienteTO.getCnpj());
        Comando.setString(2, ClienteTO.getRazaosocial());
        Comando.execute();
        Comando.close();
        return ClienteTO;
    }
}

Resolveu meu problema? Sim, mas confeso que da maneira que o código está escrito não me agrada, pois terei varias classes DAO e queria que todas elas herdassem a conexão em comun… Se alguem souber o por que dessa herança não estar funcionando, eu ficaria agradecido !!!

EDIT: Consegui fazer passar por herança, é que o metodo construtor tinha que ser chamado no código…

  public Cliente_TO Save(Cliente_TO ClienteTO) throws SQLException, ClassNotFoundException 
    {
        //Connect();
        super.ConexaoDB();
        Comando = Conexao.prepareStatement("INSERT INTO cliente (cnpj,razaosocial) values (?,?)");
        Comando.setString(1, ClienteTO.getCnpj());
        Comando.setString(2, ClienteTO.getRazaosocial());
        Comando.execute();
        Comando.close();
        return ClienteTO;
    }
}