提问人:Drogo 提问时间:11/17/2023 最后编辑:Drogo 更新时间:11/17/2023 访问量:36
doGet Java Servlet 中的空对象 [重复]
Empty Object in doGet Java Servlet [duplicate]
问:
我正在使用一种方法从数据库中获取一些信息并返回包含该数据的 Object。 当我在 Servlet doGet 上使用此方法时,Object 为空。当我在主干上做同样的事情时,它会正确地填充数据。请问有谁知道我做错了什么?
指纹:
在 doGet 中:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
// TODO Auto-generated method stub
Conta conta = ContaDAO.GetConta(2);
double entrada = conta.getEntrada();
request.setAttribute("entrada", entrada);
request.getRequestDispatcher("dashboard.jsp").forward(request, response);
}
主要:
public static void main(String[] Args) {
Conta conta = new Conta();
conta = ContaDAO.GetConta(2);
double entrada = conta.getEntrada();
System.out.println(conta.getEntrada());
System.out.println(entrada);
这是我正在使用的 Conta 构造函数模型:
public class Conta{
//Atributos
protected int id;
protected String nomeDaConta;
protected double saldo;
protected double gasto;
protected double entrada;
/*protected ArrayList<String> categoriaDeGasto = new ArrayList<String>();
protected ArrayList<String> categoriaDeEntrada = new ArrayList<String>();*/
public Conta() {
super();
}
这是我正在使用的 ContaDao 方法:
public class ContaDAO {
public ContaDAO() {
super();
}
public static Conta GetConta(int id){
//Connection conexao = null;
PreparedStatement ps = null;
ResultSet rs = null;
Conta conta = new Conta();
Connection conexao;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
// Com o driver do Oracle já inserido pegando a variavel conexao e passando as credenciais do Oracle
conexao = DriverManager.getConnection(
"jdbc:oracle:thin:@oracle.fiap.com.br:1521:ORCL", "RM552501", "270697");
String sqlGetConta = "SELECT DISTINCT CD_CONTA, NR_TOTAL_ENTRADA, NR_TOTAL_SAIDA FROM T_FINEASY_CONTA WHERE CD_CONTA = ? ORDER BY CD_CONTA";
ps = conexao.prepareStatement(sqlGetConta);
ps.setInt(1, id);
rs = ps.executeQuery();
while(rs.next()) {
conta.setId(rs.getInt("CD_CONTA"));
//System.out.println(conta.getId());
conta.setEntrada(rs.getInt("NR_TOTAL_ENTRADA"));
//System.out.println(conta.getEntrada());
conta.setGasto(rs.getInt("NR_TOTAL_SAIDA"));
//System.out.println(conta.getGasto());
}
DBConnection.closeconexao(conexao);
DBConnection.closeconexaoPS(ps);
DBConnection.closeconexaoRS(rs);
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}
return conta;
}
答:
0赞
Drogo
11/17/2023
#1
这是驱动程序问题。基本上,我的oracle.jdbc驱动程序被“安装”在错误的文件夹结构中。我创建了一个文件夹,将驱动程序文件传输到此文件夹中,并将其添加到构建路径中。
PS:我正在做一个动态的网络项目。 正确的做法是将驱动程序文件传输到文件夹:“WebContent/WEB-INF/lib”,具体取决于我使用的文件结构。
我的教授说,雄猫的问题只能以这种方式看到驾驶员。
谢谢。
评论
0赞
BalusC
11/17/2023
不。这不是与 Tomcat 相关的问题。见上面链接的副本。
评论
e.printStackTrace()