Loading ...
Sorry, an error occurred while loading the content.

Re: [riojug] Uso de atributos no Contexto da Aplicação Web

Expand Messages
  • Adriano 'Stanley'
    Ajudou bastante sim... mt obrigado... deu pra ter uma visão mais geral agora dos escopos dos atributos... um grande abraço, Adriano ... -- Adriano Stanley
    Message 1 of 3 , Jul 1, 2007
    • 0 Attachment
      Ajudou bastante sim... mt obrigado... deu pra ter uma visão mais geral agora dos escopos dos atributos...

      um grande abraço,
      Adriano

      Em 30/06/07, Bruno Silva <blpsilva@...> escreveu:

      Olha, a regra geral é sempre colocar atributos no menor escopo possível para a operação que vc quer realizar.

      Se vc precisa enviar um atributo de um servlet para outro logo em seguida, ou então para um jsp que será imediatamente chamado após o servlet que gravou o atributo, o correto é setar o atributo com escopo de requisição (request).

      Se vc precisa compartilhar uma determinada informação durante várias requisições de um mesmo usuário, como por exemplo informações referentes a autenticação e autorização do mesmo, o correto é colocar estas informações com escopo de sessão (session).

      Caso vc precise compartilhar informações da sua aplicação que não se referem às requisições ou sessão de nenhum usuário específico, e sim da aplicação como um todo, o correto é colocar estas informações com escopo de contexto (context).

      Se os atributos de contexto que vc está gravando são de fato relevantes para a sua aplicação com um todo e vc tem medo que alguma outra classe ou página da sua aplicação possa estar modificando-a, vc tem 2 alternativas.

      Vc pode definir um prefixo comum para os atributos referentes ao seu pedaço da aplicação, como context.setAttribute("nome_prefixo.nome_atributo", Object). Assim vc terá a segurança de que ninguém mais está mexendo nos seus atributos, pois vc definiu nomes para os mesmos que ninguém vai usar sem saber.

      A encrenca pode ser maior se vc PRECISAR utilizar atributos de contexto compartilhados com outra pessoas.

      É pouco provável que vc precise compartilhar atributos de contexto com outras pessoas e vc não saiba que modificações estes atributos poderão sofrer, mas se vc PRECISAR ter controle sobre as modificações nestes atributos de contexto, vc pode criar um ServletContextAttributeListener, que seria notificado quando um atributo em questão fosse adicionado, removido ou modificado no contexto.

      No momento da notificação vc poderia "tomar providências" caso o atributo tomasse valores inválidos.

      Bom, é provável que eu tenha falado mais que o necessário, porém espero que tenha ajudado.

      Atenciosamente,

      Bruno Luiz Pereira da Silva

      Adriano 'Stanley' <adrianostanley@ gmail.com> escreveu:

      Olá pessoal.
      Utilizo alguns atributos do contexto através de getServletContext().setAttribute(...) pra armazenar alguns dados que, ao longo da execução do servlet serão utilizados.
      Porém fico imaginando se isso não seria uma prática recomendável, pois como se trata de uma variável de contexto, duas pessoas ao mesmo tempo utilizando a aplicação podem setar o atributo e o mesmo não ter o resultado desejado para uma delas.
      Não sei se ficou bem claro, mas alguém me recomenda alguma forma de armazenar variáveis a nível do controlador que serão utilizadas pela view durante toda a aplicação?

      Abraços,
      Adriano



      Atenciosamente,

      Bruno Luiz Pereira da Silva
      blpsilva@yahoo.com.br


      Novo Yahoo! Cadê? - Experimente uma nova busca.




      --
      Adriano 'Stanley' --> adrianostanley@... (ORIGINAL)
      www.toscofilmes.cjb.net
    Your message has been successfully submitted and would be delivered to recipients shortly.