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á!