Não exibir os parâmetros na bara de endereço quando utuilizar método get de servlet

Bom dia a todos!

Pessoa, tenho um servlet que cria uma página com um form. Até ai, tudo bem. Neste form existe um campo do tipo password. Não preciso que a informação deste campo seja criptografada quando enviada para o próximo servlet, como método get. Preciso apenas que o usário n!ão veja o que está sendo escrito ali. No meu caso o que é escrito é o conteúdo das trilhas de um cartão magnético, lido por uma leitora de cartão.
Porém, quando submeto o form para o próximo servlet, o conteúdo deste campo aparece na barra de endereços, e isso não pode acontecer!
Como nào exibir estes dados na barra de endereços ou, caso não seja possível evitar isso, como “codificar” a informação?
Não preciso de nada super-seguro, isso é um programinha com uma interface web que vai rodar na intranet. Talvez no máximo um meio de criptografia bemm simples.

alguma dica!?

Muito obrigado!

Cássio Marques

É só usar o método POST, e verifique se essa concatenação na url não está sendo feita por alguém …

Opcoes:

  • Mande com POST mesmo (monte um formulariozinho e envie a informacao em um campo hidden, fazendo o submit com Javascript).

  • Crie um frameset com dois frames, um com zero de tamanho (“invisivel”) em branco e o outro com 100% do tamanho que abrira tua aplicacao. A partir dai a URL ficara sempre a mesma (blabla/frame.html).

Dependendo do teu caso, o POST eh mais recomendavel. Quanto a “criptografia”, observe que mesmo com POST as informacoes nao trafegam criptografadas (os *** nos campos “passwor” sao simplesmente uma mascara).

Marcio Kuchma

Mas quando eu uso POST os parâmetros simplesmente NÃO são enviados! No servlet destino, quando uso post, se eu usar um Enumeration para pegar todos os nomes dos parâmetros enviados e der um for para passar exibindo todos eles, não sai nada… Tentei buscar um por um com os ids de cada parâmetro e retorna sempre null.

Ah, não entendi o que você disse sobre a concatenação na url ser feita poralguém…

Alguma idéia?!

Muito obrigado!!!

então eles não estão dentro do <form method=‘post’ … >

Estão sim :slight_smile:

out.println("<form name=formulario action=CheckError method=get onsubmit=\"return false\" enctype=multipart/form-data>");						
			//out.println("<center><input type=\"password\" size=100 name=\"cardContents\"  maxlength=300></center>");			
			
			out.println("<center><h4>Quais trilhas este cartão possui?</h4></center>");			
			out.println("<center><input type=checkbox name=track1>Trilha 1<br></center>");
			out.println("<center><input type=checkbox name=track2>Trilha 2<br></center>");
			out.println("<center><input type=checkbox name=track3>Trilha 3<br></center>");
			
			out.println("<center><h4>Informe o número da OP</h4></center>");
			out.println("<center><input type=text size=30 name=\"opNumber\"</center><br>");
			//out.println("<center><input type=\"submit\"</center>");
			out.println("<br><center><input type=button onclick=\"encripta()\" value=Enviar></center></font>");
			out.println("<center><input type=\"hidden\" size=100 name=\"cardContents\"  maxlength=300></center>");
			out.println("</form>");

Aquela duvidazinha básica.
Você está tratando os dados na servlet sobrepondo o método doGet ou doPost?

Estou fazendo assim:

public class ExamineCardStripe extends HttpServlet {
		public void doGet(HttpServletRequest request, HttpServletResponse response)
		throws IOException, ServletException
		{
                   ...código...
                }

                public void doPost(HttpServletRequest request, HttpServletResponse response)
		throws IOException, ServletException
		{
                   ...código...
                }
}

Mas pérai, lá no seu exemplo está method=get.

ehehehe
eu sei, mas é porque eu tinha testado com post e não estava dando certo, coloquei o get, mas os parâmetros aparecem na URL. Não mudei de volta para post antes de responder o tópico. Mas eu sei que ali no método do form teria que colocar post…

Obrigado! :slight_smile:

o que tá acontecendo é que você tá enviando o form com enctype=multipart/form-data , vc submete tb algum arquivo pro servidor ?

Opa, era isso mesmo! Na verdade eu peguei uma parte de um código que estva pronto e esqueci de tirar isso :slight_smile:

Só que agora estou com outro problema!

Deu certo o post, porém eu tinha um forward dentro do método get que encaminhava a execução para outro Servlet, e parece que este forward não funciona dentro do método post…
Sabe porque?!

RequestDispatcher rd = request.getRequestDispatcher("ExamineCardStripe");
rd.forward(request, response);

Obrigado! :slight_smile: