Melhor maneira de guardar atributos universais

7 respostas
A

Olá,
gostaria de retirar uma duvida que já estou tendo a algum tempo,
Qual seria a melhor maneira de eu partilhar entre todas minhas páginas web um certo numero de atributos? algo do tipo atributo universal?
Pensei em algumas formas:
Banco de dados, porém gostaria de evitar criar uma conexão para isso
XML, sei que posso guardar em XML os atributos a meu bem entender
No próprio codigo, porém não gostaria que ter que recompilar meu projeto apenas para alterar um atributo
Um JavaBean, o mesmo problema do código
Cookie ou Session, mesmo problema do código

Alguém que já tenha passado por esse problema sabe um solução elegante?

7 Respostas

drsmachado

Atributos universais? Pode ser mais claro? O que chama de atributos universais?

rmendes08

Antes de mais nada, que tecnologia você está usando ?

Se você está usando Servlet’s você pode especificar um parâmetro no seu web.xml:

<web-app>
    <context-param>
        <param-name>autor</param-name>
        <param-value>João da Silva</param-value>
  </context-param>
</web-app>

daí você pode recuperar o parâmetro pelo ServletContext:

getServletContext().getInitParameter("autor");

ou em uma JSP:

<%= application.getInitParameter("autor"); %>

Agora, se o atributo que você quer guardar é mais complexo que uma String ou número, por exemplo, um objeto do tipo Usuario você pode escrever um SerletContextListener e no método contextInitialized você cria o seu objeto e seta ele no ServletContext, para usar fica muito parecido.

A

Seria um atributo que qualquer Servlet pudesse enxergar, acho que a melhor maneira de fazer isso é pelo próprio web.xml usando o ContextParam, agradeço a ajuda, e perdão pela pergunta tão basica :roll:

alandiniz

Acho que entendi o que você quis dizer…

Por exemplo, vamos supor que o cara quer deixar o titulo da página estático e igual em todas as páginas
ai ele pode criar a string no web.xml e chamar nas páginas no (ak faz a chamada)

A

alandiniz:
Acho que entendi o que você quis dizer…

Por exemplo, vamos supor que o cara quer deixar o titulo da página estático e igual em todas as páginas
ai ele pode criar a string no web.xml e chamar nas páginas no (ak faz a chamada)


Exatamente isso, posso deixar alguns atributos que vão ser padrões em todas minhas páginas, como nome página de cabeçalho, titulo,versão da aplicação, etc. seriam mais informações estaticas mas que talvez eu vá precisar altera-las um dia, e fica muito mais facil eu deixar todas essas informações centralizadas do que sair de pagina em pagina alterando :shock:

alandiniz

Bom aproveitando o tópico podemos discutir qual a melhror opção. Eu fiz o seguinte.

Criei uma entidade chamada config com alguns atributos tipo, “nomeDoSite”, “versao”, etc…

criei um ConfigBean do tipo ApplicationScoped que faz requisição no banco de dados e traz estas informações…

e nas paáginas eu chamo o #{configBean.config.nomeDoSite}

será que essa forma é ruim?

rmendes08

alandiniz:
Bom aproveitando o tópico podemos discutir qual a melhror opção. Eu fiz o seguinte.

Criei uma entidade chamada config com alguns atributos tipo, “nomeDoSite”, “versao”, etc…

criei um ConfigBean do tipo ApplicationScoped que faz requisição no banco de dados e traz estas informações…

e nas paáginas eu chamo o #{configBean.config.nomeDoSite}

será que essa forma é ruim?

De maneira alguma, isso funciona muito bem. Mas nesse caso, essa é uma boa solução para quem está usando JSF e um banco de dados. Para o colega do post, não é viável ele migrar toda uma aplicação de framework por conta disso.

Criado 8 de fevereiro de 2012
Ultima resposta 8 de fev. de 2012
Respostas 7
Participantes 4