reescrita de URL no gerenciamento de sessão com JME

04/10/2007

1

oi pessoal estou tendo um problema um pouco grave
enqto faço uma busca no banco de dados pela servlet com dados que existam no banco de dados, o envio e o retorno de informações procede de forma normal
porém quando eu digito um dado que não existe no banco de dados, ao invés da servlet retornar uma mensagem de erro para a midlet, ela está retornando a última pesquisa realizada...
estou utilizando reescrita de url para gerenciar a sessão
alguem poderia me ajudar por favor
obrigada


[b:53f1403604]PEDAÇO DO CÓDIGO DA SERVLET:[/b:53f1403604]

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

dis = new DataInputStream((InputStream) request.getInputStream());
dos = new DataOutputStream((OutputStream) response.getOutputStream());

String command = request.getParameter("command");
System.out.println("String command:" + command);

try {
// obtém informações da sessão
HttpSession session = request.getSession(true);

// se for uma sessão nova, precisamos reescrever o URL do
// cliente
if (session.isNew()) {

// obtém o URL que nos trouxe aqui
String incomingURL = request.getRequestURL().toString();

// escreve no console o nome da string URL que chegou
System.out.println("String incomingURL:" + incomingURL);

// Codifica, adicionando o ID de sessão no URL
String URLwithID = response.encodeURL(incomingURL);

// Devolve um cabeçalho para o cliente, com o novo URL
// reescrito
response.setHeader("Custom-newURL", URLwithID);

// escreve no console a string q será retornada para o
// cliente
System.out.println("String URL:" + URLwithID);
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
System.out.println("Passei no bloco try/catch do URL");
}
if (command.equals("consultarplaca")) {

String placa = dis.readUTF();
System.out.println("String placa: " + placa);

try {
ps = this.con.prepareStatement(sqlb);
ps.setString(1, placa);
rs = ps.executeQuery();
try {
while (rs.next()) {
System.out.println("Placa:" + rs.getString("placa")
+ "| Chassi:" + rs.getString("chassi")
+ "| MarcaModelo:"
+ rs.getString("marcaModelo")
+ "| Proprietário:"
+ rs.getString("proprietario") + "| Cidade:"
+ rs.getString("cidade") + "| Estado:"
+ rs.getString("estado") + "| Cor:"
+ rs.getString("cor") + "| Espécie Tipo:"
+ rs.getString("especieTipo")
+ "| Combustível:"
+ rs.getString("combustivel")
+ "| Ano Modelo Fabricação:"
+ rs.getString("anoModFab") + "| Situacao:"
+ rs.getString("situacao"));
chassiResult = "" + rs.getString("chassi");
placaResult = rs.getString("placa");
mmResult = rs.getString("marcaModelo");
propResult = rs.getString("proprietario");
cityResult = rs.getString("cidade");
ufResult = rs.getString("estado");
corResult = rs.getString("cor");
esTpResult = rs.getString("especieTipo");
combResult = rs.getString("combustivel");
amfResult = rs.getString("anoModFab");
situResult = rs.getString("situacao");
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
System.out.println("Passei no bloco try/catch interno da busca da placa");
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
System.out.println("Passei no bloco try/catch externo da busca da placa");
}
try {
response.setContentType("text/plain");
dos.writeUTF(placaResult);
dos.writeUTF(chassiResult);
dos.writeUTF(mmResult);
dos.writeUTF(propResult);
dos.writeUTF(cityResult);
dos.writeUTF(ufResult);
dos.writeUTF(corResult);
dos.writeUTF(esTpResult);
dos.writeUTF(combResult);
dos.writeUTF(amfResult);
dos.writeUTF(situResult);
dis.close();
dos.close();
dos.flush();
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
System.out.println("Passei no bloco try/catch do retorno da placa");
}

}



PEDAÇO DO CÓDIGO DA MIDLET:

private class ThreadChassi extends Thread{
        public String url = "http://localhost:8080/Http/HttpServer?command=consultarchassi";
        public void run(){
            HttpConnection http = null;
            try {
                http = (HttpConnection)Connector.open(url, Connector.READ_WRITE);
                http.setRequestProperty("User-Agent", "Profile/MIDP-2.0 , Configuration/CLDC-1.0");
                http.setRequestProperty("Content-Language", "en-US");
                http.setRequestMethod(HttpConnection.POST);
                os = http.openDataOutputStream();
                os.writeUTF(chassi.trim());
                os.flush();
                System.out.println("conectando com o servidor para buscar chassi");
                System.out.println("Enviando a String: " + chassi);
            } catch (IOException ex) {
                showAlert(ex.getMessage());
                ex.printStackTrace();
            }
            try {
                is = http.openDataInputStream();
                String URLwithID = http.getHeaderField("Custom-newURL");
                if(URLwithID != null) {
                    url = URLwithID;
                }
                placaResult = is.readUTF();
                chassiResult = is.readUTF();
                mmResult = is.readUTF();
                propResult = is.readUTF();
                cityResult = is.readUTF();
                ufResult = is.readUTF();
                corResult = is.readUTF();
                esTpResult = is.readUTF();
                amfResult = is.readUTF();
                combResult = is.readUTF();
                situResult = is.readUTF();
                alertResult = new Alert("Resultado da Busca:",
                        "Placa: "+placaResult+
                        "\nChassi: "+chassiResult+
                        "\nMarcaModelo: "+mmResult+
                        "\nProprietario: "+propResult+
                        "\nCidade: "+cityResult+
                        "\nEstado: "+ufResult+
                        "\nCor: "+corResult+
                        "\nEspécie Tipo: "+esTpResult+
                        "\nAno Marca Modelo: "+amfResult+
                        "\nCombustível: "+combResult+
                        "\nSituação: "+situResult, null, AlertType.CONFIRMATION);
                System.out.println("Retornou da servlet: " + placaResult + chassiResult + mmResult + propResult + cityResult + ufResult + corResult + amfResult + combResult + situResult);
                alertResult.setTimeout(Alert.FOREVER);
                getDisplay().setCurrent(alertResult, get_formEscolha());
                getDisplay().vibrate(1000);
                
                os.close();
                is.close();
                http.close();
            } catch (IOException ex) {
                showAlert(ex.getMessage());
                ex.printStackTrace();
            }
        }
    }



Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira