MInha servlet não tá fazendo o que eu quero! =P

Boa tarde pessoal.

O problema é o seguinte… fiz dois métodos para que eu pudesse alterar as iniciais de palavras para Maiúsculas depois de receber a propriedade “nome” do endereço de URL e assim utilizar a string resultante para fazer a consulta em um banco de dados. Mas não está ocorrendo como planejado… eu testei os dois métodos ( setUpperCaseFt() e upperCaseTk() ) em um programinha do tipo “public static void main(String[] args)” e as funções executam o que devem executar… mas na servlet não… Ela compila certinho sem erros, mas nao faz o certo na execução!

Uma luz aí!
ehuahuae!

Código abaixo

[code]import java.util.;
import java.io.
;
import javax.servlet.;
import javax.servlet.http.
;
import java.sql.*;

public class RequestServlet extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String nomee = req.getParameter(“nome”);
String nome = setUpperCaseFt(nomee);
String balance = accountLookup(nome);

if (balance == null){
  res.sendError(res.SC_BAD_REQUEST, "Unable to locate account.");            
  return;
}

res.setContentType("text/plain");    
PrintWriter out = res.getWriter();
out.print(balance);
out.close();

}
public String setUpperCaseFt(String nome){
String[] s1 = new String[10];
String a = “”;
StringTokenizer st1 = new StringTokenizer(nome," ");
System.out.println(st1.countTokens());
int i = 0;
while(st1.hasMoreTokens()){
s1[i] = st1.nextToken();
s1[i] = upperCaseTk(s1[i]);
a += s1[i] + " ";
i++;
}
return a;
}

public String upperCaseTk(String token){
char[] h = token.toCharArray();
String s2 = "";
h[0] = token.charAt(0);
s2 += h[0];
s2 = s2.toUpperCase();
for(int i = 1; i < token.length(); i++){
	s2 += h[i];
}
return s2;
}

private String accountLookup(String nome){
Connection con = null;
Statement st = null;
StringBuffer msgb = new StringBuffer("");

try{
  //aqui vai a configuração do driver do BD      
  Class.forName("org.postgresql.Driver");  
  con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "ocanema", "postgres");

  Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery("SELECT describe, endereco FROM act WHERE nome = '" + nome + "'");      
  
  if (rs.next())
    return rs.getString("describe") + "|" + rs.getString("endereco");
  else
    return null;
}
catch (Exception e){
  return e.toString();
}

}

/*--------------------------------------------------

  • Informação sobre a servlet
    -------------------------------------------------/
    public String getServletInfo()
    {
    return “Tentativa no 89547… sei la perdi as contas! =P”;
    }
    }[/code]

Agradeço desde já!
:wink:

Você não deve estar submetendo um campo cujo nome seja “nome”. Verifique maiúsculas e minúsculas.

Ok, como você está usando o get, pode ser que você não esteja chamando corretamente o servlet com endereço requestservlet?nome=teste (ao invés de requestservlet deve ser outro nome mapeado no seu web.xml).

Dica: use o junit para fazer os testes, acaba ficando sempre mais rápido, mesmo para programinhas só de teste.