Problema Servlet básico

Pessoal, estou com um probleminha…

Estou com fazendo um serviço para celulares… E o cliente tem que se cadastrar no banco de dados…

  • O cliente entra em uma página, digita o número do celular dele
  • Um código de confirmação é gerado aleatóriamente, e enviado para o celular dele
  • Ele digita o código no site. Se for o código enviado ele é cadastrado…

Problema:
O modo que envio a mensagem é um jeito que meu amigo ajeitou pra mim, que é nada mais nada menos do que apenas uma URL, do tipo:
http://dominiodele.com.br/Envio/smsacc.pkm?action=api&user=XXXXX&pass=YYYY&conta=ZZZZZ&numeropara=5535XXXXXX&msg=teste+de+msg

Fiz assim: (Página html)

[code]

Para utilizar nosso serviço, você necessita fazer o cadastro do seu celular no banco de dados. Tenha em mente que o cadastro é gratuito. Após clicar em enviar, você receberá um código de confirmação em seu celular, que deverá ser preenchido aqui para a conclusão do cadastro. Número do seu Celular:
[/code]

Minha servlet:

[code]public class EnviaSMS extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
     //GERANDO A STRING ALEATORIA
	Random rand = new Random();
	char[] letras = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();  
     StringBuffer sb = new StringBuffer();  
     for (int i = 0; i < 8; i++) {  
         int ch = rand.nextInt (letras.length);  
         sb.append (letras [ch]);  
     } 
     //FIM
     
     String aleatoria = sb.toString();
     
	 String numerodotelefone = request.getParameter("numero");  
	 //PROBLEMAS (Leia abaixo)
	  response.sendRedirect("digiteocodigo.html"); //passando parâmetro o número do telefone e a String aleatória 
	       
}

}[/code]
Como vou fazer? Abrir duas páginas ao mesmo tempo? Tenho que:
1) Abrir a URL de enviar a SMS
2) Abrir a página de confirmação de código (passando como parâmetro o código gerado)
3) Não deixar o usuário ver a página de enviar SMS (pq se não ele descobre a url com minha senha, e fode tudo)

Uma pergunta off-topic:como é implementada tua solução de SMS?

Não é minha, é de uma empresa, e é um serviço pago…
Só tenho disponível essa URL… Cada vez que é disparada eu pago uma certa quantia…

Voltando a pergunta: Como que faço pra servlet disparar essa url, mas que não seja visualizada pelo usuário?

Não é minha, é de uma empresa, e é um serviço pago…
Só tenho disponível essa URL… Cada vez que é disparada eu pago uma certa quantia…

Voltando a pergunta: Como que faço pra servlet disparar essa url, mas que não seja visualizada pelo usuário?[/quote]

Se vc estiver se referindo aos parâmetros da requisição,basta mudar o método do form para POST.

Ajustei algumas coisas (colokei pra cadastrar o telefone e o código em um banco de dados)…
Depois de cadastrar faço isso:

response.sendRedirect("confirma.html");

Mas antes disso preciso abrir essa url (para enviar a SMS) - SEM O USUÁRIO VER:
http://dominiodele.com.br/Envio/smsacc.pkm?action=api&user=XXXXX&pass=YYYY&conta=ZZZZZ&numeropara=5535XXXXXX&msg=teste+de+msg

Não é minha, é de uma empresa, e é um serviço pago…
Só tenho disponível essa URL… Cada vez que é disparada eu pago uma certa quantia…

Voltando a pergunta: Como que faço pra servlet disparar essa url, mas que não seja visualizada pelo usuário?[/quote]

Se vc estiver se referindo aos parâmetros da requisição,basta mudar o método do form para POST.[/quote]
Acho que não da pra mandar requisições http com método POST pela url…

Qual servidor você está utilizando? Ao invés de redirecionar o seu “client” para e retornar a requisição, faça uma interna pelo servidor.

Verifique HttpURLConnection em um Servlet.

Já fiz um agente de envio e eu tinha o mesmo cenario que vc passado pela integradora… utilizei a classe que disseram ai em cima mesmo…
se quiser a noite posso te passar exatamente como fiz…

abraço

[quote=barbon]Qual servidor você está utilizando? Ao invés de redirecionar o seu “client” para e retornar a requisição, faça uma interna pelo servidor.

Verifique HttpURLConnection em um Servlet.[/quote]

Consegui, vlw