Retorno da Servlet

4 respostas
L

Srs, estou com problemas neste método (abaixo), pois preciso que o resultado do mesmo retorne a consulta completa (cerca de 6 linhas), no entanto ela estava retornando apenas a 1ª linha…era por causa do if na linha …if aQuery.next(), então coloquei o while, mas o agora esta aparecendo um erro “missing return statement” no fechamento da chave do método, que não me deixa eu concluir o código. Alguem poderia me auxiliar? Uso NetBeans 5 + Mobility Pack. Agradeço desde já a atenção de todos.

<blockquote> private String consulta(String login, String senha){

try

{

Class.forName(“org.firebirdsql.jdbc.FBDriver”);

Connection con = DriverManager.getConnection(“jdbc:firebirdsql:localhost:

+c:/java/j2me/said/dados.fdb,SYSDBA,masterkey);

Statement Stm = con.createStatement();

String sql=“select codigo, login from USUARIOS where login =” + login +

“and senha = '” + senha + “’”;

ResultSet aQuery = Stm.executeQuery(sql);
while (aQuery.next()){
    return aQuery.getString("produto") + " - " + aQuery.getString("preco");
}
if ((aQuery.next() == false))
    return null;
}
catch (Exception e){
    return e.toString();
}

}

4 Respostas

M

Ola Lourival, tenta fazer o seguinte:
Coloque o seu while dessa maneira:

String retorno = "";

while (aQuery.next()){ 
retorno += aQuery.getString("produto") + " - " + aQuery.getString("preco") + "\n"; 
}

E no final da função você coloca:

return retorno;

Veja se com isto dá certo…

Abraços…

L

Uau!!!

Era isto mesmo de que eu precisava.

Agora preciso tratar o retorno, ou seja, fiz assim:

<blockquote>if (retorno != null) {

return retorno

}

else

return null</blockquote>

Mas aí ao testar, simulei um retorno == null, mas não tive nenhum resultado, na verdade deveria retornar a mensagem “Atenção: Login/Senha incorretos!!!”, mas retornou uma tela vazia. Olha se eu estou errando na sintaxe do retorno. Agradeço desde já a sua valorosa atenção!!!.

Veja o código completo:

<blockquote>protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//-------------

String login = request.getParameter(“login”),

senha = request.getParameter(“senha”);
String dados = consulta(login,senha);
if (dados == null){
    response.sendError(response.SC_BAD_REQUEST,"Atenção: Login/Senha inválidos!!!");            
    return;
}    
response.setContentType("text/plain;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(notas);
out.close();        
//-------------
}
private String consulta(String login, String senha){

try

{

Class.forName(“org.firebirdsql.jdbc.FBDriver”);

Connection con = DriverManager.getConnection(“jdbc:firebirdsql:localhost:

+c:/java/j2me/said/dados.fdb,SYSDBA,masterkey);

Statement Stm = con.createStatement();

String sql=“select codigo, login from USUARIOS where login =” + login +

“and senha = '” + senha + “’”;

ResultSet aQuery = Stm.executeQuery(sql);

String retorno = “”;

while (aQuery.next()){

retorno += aQuery.getString(“codigo”) + " - " + aQuery.getString(“login”) + “\n”;

}

if (retorno != null){

return retorno;

}

else

return null;

}

catch (Exception e){

return e.toString();

}

}</blockquote>
M

Então, pois se ele nao encontrar o usuário, vc esta colocando para retornar null.

Coloque assim:

if (retorno != null) { 
return retorno 
} 
else 
return "Atenção: Login/Senha incorretos!!!";

Veja se dá certo…

Abraços…

L

Valeu amigao, deu certo!
As vezes, na ansia de resolver rápido, nos perdemos e não raciocinamos direito.

Obrigado mesmo.

Criado 24 de abril de 2006
Ultima resposta 25 de abr. de 2006
Respostas 4
Participantes 2