reescrita de URL no gerenciamento de sessão com JME
04/10/2007
0
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]
PEDAÇO DO CÓDIGO DA MIDLET:
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(); } } }
Cissagatto
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)