Pegar o IP do Cliente (JSP)

7 respostas
M

Bom dia!

Tenho uma página JSP e faço a validação através de um Servlet, esse Servlet chama uma tela de mensagem Java que diz “Preencha o nome” ou “Login efetuado com sucesso”, coisas assim.

Porém quando estou em máquinas clientes acesso:

http://NomeDoServidor:porta/NomeDoProjeto

e quando o cliente clica no botão submit a telinha aparece no servidor e não no cliente.

O que eu tentei fazer? Colocar a chamada da telinha direto no JSP… não funciona…

Depois pensei, ah! Já sei! Tenho que usar RMI pois tela java= objeto e objeto pela rede=RMI…
Mas para isso preciso saber o IP da máquina que está fazendo a solicitação da página e isso não estou conseguindo fazer… se coloco um método getIPAddress no JSP ele me retorna o IP do servidor e não o da máquina cliente que faz a requisição.

Li algo sobre ser problema de intranet também…

Alguém tem alguma idéia???

Muitíssimo grata,
Maria Ane,
Att,

7 Respostas

danieldestro

Nossssaaaa…
Pera aí, vc está tentando usar uma telinha em java (swing, awt, swt) para ser exibida no cliente?
Então no seu caso você tem que usar Applet e não JSP.
Pergunta: E pq não faz a tela de login em JSP mesmo?

M

Minha tela de login é JSP, meu sistema todo é JSP, mas a tela de mensagem de login com falha ou sucesso tem que ser Java…

Essa telinha Java é chamada sempre no servidor mesmo que eu esteja acessando a página de login em outro micro (via browser);

Se eu usar Applet não tenho que carregá-la dentro de uma tela html/jsp?

O que eu quero é uma telinha igual aquelas de JavaScript só que tem que ser Java por causa da formatação, bordas e etc… e que apareça no micro que foi chamada…

Obs. Sempre que uso getRemoteAddress ele retorna o IP do servidor, será que é problema da minha intranet? Porque eu acesso: http://nomedoservidor:porta/projeto, é assim mesmo???

Se puder me dar uma idéia…

Muito Grata,
Maria Ane,
Att,

danieldestro

Esquece essa sua idéia.
Você teria que usar Applet.

jgbt

cara,
isso que vc ta tentando fazer não vai funcionar, como o daniel falou, ou vc exibe a msg em uma pag(jsp/html) ou usa um applet, ou faz uma gambiarra com javascript.

mas so p/ saber, pq tem que ser uma tela swing???

[]'s

M

nao tem como nem por RMI, tipo tentar pegar o IP da maquina que fez a solicitacao e chamar a telinha para aquele IP??? (Estou tentando fazer isso mas sempre obtenho o IP do servidor quando uso getRemoteAddr())

Bom, como faço para usar applet? Ela não ficaria inserida em uma tela de todo jeito?
O que eu precisaria é tipo um popup…

E a gambiarra com o Javascript??? Como seria?

Podem me dar mais esse help por favor?

Bom, uso Linux (CL9) e Netbeans,

Muito Grata,
Maria Ane,
Att,

T

Para pegar o IP da máquina remota, o que nem sempre é uma boa idéia (devido a proxies e firewalls, o IP da máquina remota pode ser algum valor que não tem nada a ver com o verdadeiro IP), você pode tentar pegar o REMOTE_ADDRESS (deve ser algo como request.getHeader(“REMOTE_ADDRESS”), não sei de cor) em vez de usar applets e outras coisas.

É só isso que você quer fazer?

Agora, se você precisa chamar uma classe Java que mostra uma tela, é necessário convertê-la para uma combinação applet + servlet (o applet para entrar com os dados, e o servlet para que os dados possam ser recebidos no servidor).

M

Muito obrigada!!!

Mas… como eu faço isso?
Tem algum lugar que eu possa procurar?

Eu tentei fazer um applet pelo netbeans mas ele executa uma tela cinza e a minha telinha vermelha separado… por que isso ocorre?

Como faço pra fazer esse applet virar um applet/servlet?

Ahhh e mais uma coisa, tem como tirar a barra do applet (a do maximizar, minimizar, fechar)?
Pque em frame eu faço frame.setUndecorated(true); mas em applet não achei…

Muito Obrigada!
Ane,
Att,

Criado 4 de fevereiro de 2005
Ultima resposta 4 de fev. de 2005
Respostas 7
Participantes 4