Reescrita de URL no gerenciamento de sessão com JME

0 respostas
C

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

PEDAÇO DO CÓDIGO DA SERVLET:

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();
            }
        }
    }
Criado 4 de outubro de 2007
Respostas 0
Participantes 1