[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
endereço IP  XML
Forum Index -> Comentários Gerais
Author Message
boaglio


[Avatar]

Joined: 28/09/2005 11:05:16
Messages: 297
Location: Sao Paulo - Brazil
Offline


Qual a maneira mais fácil de pegar o IP da request dentro de uma action?

http://www.boaglio.com
[WWW]
Lobo


[Avatar]

Joined: 23/01/2006 02:17:14
Messages: 834
Location: Fortaleza-CE
Offline

ola,

estou usando da seguinte forma:

InputRequest ir = (InputRequest)input;
String ip = ir.getRequest().getRemoteHost();

atenciosamente,
Hélio Frota

Atenciosamente,
Hélio Frota

Helio Frota
10+ Java Programmer
Blog
http://www.kawaiwiki.org/
http://www.mentaframework.org/
Member
Mentawai Developer
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline


Fazer o cast para pegar o HttpServletRequest é ruim pois acopla a sua aplicação a api de servlets. Isso é tudo que a gente quer evitar.

Mas realmente tava faltando um jeito a-la-Mentawai para pegar esse ip.

Acabei de adicionar o método getProperty(String name) na interface Input.

Agora para pegar esse IP, ou para chamar qualquer método getXXXX do request vc pode fazer:

Code:
 
 String ip = input.getProperty("remoteAddr");
 
 String host = input.getProperty("remoteHost");
 
 String method = input.getProperty("method");
 
 


E por aí vai... Basicamente por refleciton estamos chamando os métodos getXXXX do HttpServletRequest.


Sergio Oliveira

RubemAzenha


[Avatar]
Joined: 30/06/2005 23:12:02
Messages: 472
Location: São Paulo, SP
Offline

hum, não é melhor deixar Object?


Mentawai Developer
[WWW] [MSN]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Eu pensei nisso tb.

Dei uma olhada nos métodos de ServletRequest e HttpServletRequest e são poucos que retornam algo diferente de uma String que poderiam nos ser útil.

Acho que retornar String fica mais pragmático, pois o cara não tem que converter para String, sei lá...

Veja aí e se tu achar um caso em que isso vai trazer problemas posta aqui para a gente reavaliar isso...


Sergio Oliveira

saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

O único método que poderá justificar um getStringProperty() e um getProperty() que retornaria um Object é:

java.security.Principal getUserPrincipal();


Criar mais um método só por causa desse pentelho será que vale a pena ?

Os outros métodos que interessam retornam sempre String...

Sergio

Sergio Oliveira

RubemAzenha


[Avatar]
Joined: 30/06/2005 23:12:02
Messages: 472
Location: São Paulo, SP
Offline

Cria um getAttribute para String e getProperty para Object
se o cara tentar dar getAttribute pra um Object, lanca um IllegalArgumentException


Mentawai Developer
[WWW] [MSN]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

getAttribute pode ser confundido com getValue.

Isso pode complicar...

Sergio Oliveira

velo


[Avatar]

Joined: 16/02/2006 13:33:54
Messages: 1197
Location: Jaraguá do Sul - SC
Offline

saoj wrote:
...

Code:
 
 String ip = input.getProperty("remoteAddr");
 
 String host = input.getProperty("remoteHost");
 
 String method = input.getProperty("method");
 
 

...
 


Não seria interessante ter uma interface com essas constantes?


VELO

_____________________________________
Mentawai Developer
"When the only tool you have is a hammer, everything looks like a nail"
http://en.wikipedia.org/wiki/Golden_hammer
[Email] [MSN]
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Hummm.. Não sei... Acho que não pois isso ta vindo por reflection do objeto que está por trás do input.

Para saber que valores usar ali vc terá que olhar a documentação da API de serlvets, isto é, os métodos de HttpServletRequest.

Mas de repente não custa criar algumas variáveis estáticas na interface input.

Sei lá... é para pensar com calma...

Sergio Oliveira

Marcos Silva Pereira


[Avatar]
Joined: 10/08/2005 10:22:46
Messages: 16
Offline

Olá, que tal se fosse um filtro a fazer esse trabalho? Ele disponibilizaria todos esses dados no input, assim não precisa alterar a API. Os nomes seguem a nomenclatura que o Sergio fez.

valeuz...

Marcos Silva Pereira
Comunidade Blastêmica
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

O filtro tem acesso a action e seus contextos.

O filtro teria o mesmo problema da action para chegar ao request.

O request fica escondido (encapsulado) dentro do Input, que na verdade é um RequestInput.


Sergio Oliveira

Marcos Silva Pereira


[Avatar]
Joined: 10/08/2005 10:22:46
Messages: 16
Offline

Hum, assim como uma action, um filtro tem acesso ao request de algum modo certo? Então, ao inves de alterar a API de Input e se preocupar se retorna um Object ou String, se é preciso criar um metodo getUserPrincipal, apenas cria um filtro que deixa todos esses dados no input. Não vejo problema no fato de ele acessar o request.

Enfim, acho melhor deixar o trabalho sujo para ele fazer.

valeuz...

Marcos Silva Pereira
Comunidade Blastêmica
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team