Erro No JSP ou BEAN?Onde?

3 respostas
J

Bom galera to fazendo um programinha bem simples, mas gostaria de trabalhar com jsp e javabeans mas sou novato nesta area! Gostaria de usar PreparedStatement pois ouvi falar que e mais seguro q os Statement.POis bem vamos a minha duvia:
Eu tenho pagina de apresentação(index) que começa com dois selects no banco para dar escolha aos usuarios, pois bem ateh ai tudo tranquilo o problema que não entendo é quando eu do um consultar ele da erro ou simplesmente não acessa o banco não entendo o que esta havendo.Bom vou deixar ai os jsp e o bean que faz os Statement se alguem ver algum erro e puder me ajudar eu ficaria miuto grato!!!

INDEX.JSP

<html>
<head>
<%@include file="WEB-INF/componentesHTML/titulo.html"%>
</head>
<body>
<%@include file="conecta/acesso.jsp"%>
<%@include file="WEB-INF/componentesHTML/cabecalho.html"%>
<br>
<form method="post" action="controlador.jsp" name="form1">
<hr>
	<table align="center">
		<tr>
			<td>
				<select name="cc_custo">
					<%
					ResultSet rs = stm.executeQuery("select cc_custo from custos order by cc_custo");
					while(rs.next())
						out.println("<option value='" + rs.getString("cc_custo") + "'>" + rs.getString("cc_custo") + "</option>");
					rs.close();
					%>
				</select>
			</td>
			<td>
				<select name="mes">
					<%
					rs = stm.executeQuery("select mes from custos order by mes");
					while(rs.next())
						out.println("<option value='" + rs.getInt("mes") + "'>" + rs.getInt("mes") + 	"</option>");
					rs.close();
					%>			
				</select>
			</td>
			<td>
				<input type="hidden" name="opcao" value="Consultar">
				<input type="submit" value="Consultar">
			</td>
		</tr>
		<tr>
			<td colspan="3">
				<input type="hidden" name="opcao" value="Importar">
				<input type="file" value="Importar">
			</td>
		</tr>
	</table>		
<hr>
<br>
</form>
</body>
</html>

CONSULTATODOS.JSP

<%@page import="java.sql.*"%>
<jsp:useBean id="DBase" class="beans.DBase" scope="session"/>

<%!ResultSet rs; %>
<% rs = DBase.getResultSet();%>

<%! String cc_custo; %>
<%! float valImpress, valCopias; %>
<%! int mes, impressoes, copias; %>

<html>
<head> 
<%@include file="WEB-INF/componentesHTML/titulo.html"%>
</head>
<body>
<center>
<%@include  file="WEB-INF/componentesHTML/cabecalho.html"%>
<table>
<tr>
	<td>
		<font face="Gergia" size="3"><strong>Centro Custo:</strong></font>	
	</td>
</tr>
<tr>
	<td>
		<%@include file="WEB-INF/componentesHTML/menuExibicao.html"%>
	</td>
</tr>
<%
while(rs.next())
{
	mes = rs.getInt("mes");
	impressoes = rs.getInt("impressoes");
	copias = rs.getInt("copias");
	valImpress = rs.getFloat("valImpress");
	valCopias = rs.getFloat("valCopias");
	%><tr>
	  	<td><%=mes%></td>
	  	<td><%=impressoes%></td>
	  	<td><%="R$" + valImpress%></td>
	  	<td><%=copias%></td>
	  	<td><%="R$" + valCopias%></td>
	  	<td><%=impressoes + copias%></td>
	  	<td><%="R$"+ valImpress + valCopias%></td>
	   </tr>
<% } %>
</table>
</center>
</body>
</html>

CONTROLADOR.JSP

<%@page import="java.sql.*" errorPage="bdInacessivel.jsp"%>
<jsp:useBean id="DBase" class="beans.DBase" scope="session"/>

<%! String opcao, proxPagina; %>
<%! boolean processou; %>

<%
proxPagina = "bdInacessivel.jsp";
DBase.crieConexao();
opcao = request.getParameter("opcao");
if(opcao.equals("Consultar"))
{
	processou = DBase.procureTodos();
	if(processou)
	{
		proxPagina = "consultaTodos.jsp";
	}
} 
%>

<jsp:forward page='<%=proxPagina%>'></jsp:forward>

BEAN:

DBase.class

package beans;

import java.sql.*;

public class DBase
{

	Connection con;
	PreparedStatement sttTodos, sttMes;
	String url, user, pass;
	ResultSet rs;

	public DBase()
	{
		con = null;
		url = "jdbc:mysql://localhost:3306/impressora";
		user = "root";
		pass = "mysql";
		rs = null;
	}

	public void crieConexao() throws Exception
	{
		if (con == null)
		{
			Class.forName("org.gjt.mm.mysql.Driver");
			con = DriverManager.getConnection(url, user, pass);
			sttTodos = con
					.prepareStatement("SELECT * FROM custos ORDER BY mes");
			/*sttMes = con
					.prepareStatement("SELECT * FROM  custos WHERE cc_custo = cc_custo AND mes = mes");*/
		}
	}

	public boolean procureTodos() throws Exception
	{
		return processeStatement(sttTodos);
	}
	
	protected boolean processeStatement(PreparedStatement s) throws Exception
	{
		boolean resultado;
		try
		{
			rs = null;
			resultado = s.execute();
			if (resultado)
				rs = s.getResultSet();
			return (resultado);
		} catch (Exception e)
		{
			con = null;
			throw e;
		}
	}

	public ResultSet getResultSet()
	{
		return (rs);
	}

}

bom galera ai esta se alguem quiser dar uma olhada para tentar me ajudar eu ja agradeço!!!
Valew!!!

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia:

3 Respostas

C

Poxa cara você bem que poderia mostrar o erro hein!!
Uma sugestão: coloca as variáveis de conexão com dentro de uma classe, seguindo um padrão MVC, acho que fica mais organizado

G

Dica: Leia sobre MVC. Não é uma boa prática colocar código de acesso a dados no JSP e código java junto ao HTML.

Tente separar sua aplicação em camadas para que seu JSP sirva apenas como uma camada de vizualização.

P

e o erro que eh bom nada neh…
acho que na index.jsp vc esqueceu de importar o java.sql, pelo menos eu nao encherguei ele la ou to ficando cego auhauahuhaha…testa ai pra ve se da certo ok…

t+++++++++++++++

-=O Filho teu não foge a luta=-

Criado 19 de junho de 2006
Ultima resposta 30 de jun. de 2006
Respostas 3
Participantes 4