Pessoal,
quando eu uso o static em um atributos da minha classe se eu o altero isso reflete para outras instancias de outras requisições de outros usuários do container web?
Tipo assim:
// TesteStatic.java
class Classe1
{
// Variavel static
public static int contador = 0;
...
}
Se eu alterar o contador para 1 e numa outra resquisição web, outro usuário verá 0 ou 1? E no caso de de outras requisições do mesmo usuário?
Olhei aqui no forum e o assunto foi discultido, mas nao achei nada no contexto de web(container).
Abraços e obrigado.
Ademir
Bom dia!
Admir,
Não irá alterar, pelo o fato do static ser uma palavra reservada para indicação que o metodo, atributo, variável etc… são da propria CLASSE!
por isso o conteiner irá interpretar que a variável sentinela será da propria classe!
[quote=AdemirPinto]Pessoal,
quando eu uso o static em um atributos da minha classe se eu o altero isso reflete para outras instancias de outras requisições de outros usuários do container web?
Tipo assim:
// TesteStatic.java
class Classe1
{
// Variavel static
public static int contador = 0;
...
}
Se eu alterar o contador para 1 e numa outra resquisição web, outro usuário verá 0 ou 1? E no caso de de outras requisições do mesmo usuário?
Olhei aqui no forum e o assunto foi discultido, mas nao achei nada no contexto de web(container).
Abraços e obrigado.
Ademir[/quote]
Se você mudar o valor da variável static, vai mudar para todo mundo dentro do mesmo container. E como é static, não existe “instância” dessa variável, todo mundo vai acessar a mesma.
Ademir, tudo joia?
Quando falamos do container em si podemos usar o exemplo clássico do servlet. Quando você roda o container ele instancia as suas classes servlet’s,
e para cada requisição ele não cria uma nova instancia desse servlet, apenas delega para uma outra thread independentemente do usuário.
Levando isso em consideração, se você adicionar 1 número inteiro a um método da classe que é chamado a cada requisição, o valor será incrementado.
Se o mesmo usuário fizer n requisições o valor será incrementado n vezes, à menos que você tenha um controle disso como uma restrição por IP por exemplo.
Existe um artigo publicado aqui no GUJ sobre isso:
http://www.guj.com.br/articles/121
Abs.