Olá desenvolvedores, continuando a conversa sobre objeto implícitos em JSP, vamos falar também de application, isto é, objeto implícito e aplicação. O objeto application estende a interface pública ServletContext.
Assim, um objeto de ServletContext é criado pelo contêiner da web no momento da implantação do projeto. E ele pode ser usado para obter informações de configuração do arquivo web.xml. Existe apenas um objeto ServletContext por aplicação da web, assim se alguma informação for compartilhada com muitos servlets, é melhor fornecê-la a partir do arquivo web.xml usando o elemento <context-param>.
Desse modo, acesse o arquivo web.xml da sua aplicação para procedermos com o parâmetro de inicialização. O arquivo pode ser encontrado no caminho WebContent >> WEB-INF >> lib >> web.xml.
Antes, porém, observe a sintaxe para fornecer o parâmetro de inicialização no escopo do contexto. O elemento context-param, é um subelemento da aplicação web, ele é usado para definir o parâmetro de inicialização no escopo da aplicação. O param-name e param-value são os subelementos do context-param. O elemento para-name define o nome do parâmetro e param-value define seu valor.
<contexto-param>
<param-name>Estado</param-name>
<param-value>Minas Gerais</param-name>
</contexto-param>
Mas como podemos exibir o valor do parâmetro? Agora na página principal index.jsp, implemente o getInitParameter. Ele retorna uma String contendo o valor do parâmetro de inicialização de todo o contexto nomeado, ou null se o parâmetro não existir.
<%= application.getInitParameter(“Estado”) %>
O interessante é que este método pode tornar as informações de configuração disponíveis para toda a aplicação. Por exemplo, ele pode fornecer o endereço de e-mail do desenvolvedor, caso esteja disponível, ou ainda o nome de um sistema que contém dados críticos.
MÉTODOS DA INTERFACE SERVLETCONTEXT
Além do getInitParameter, existem outros métodos mais comumente utilizados na da interface ServletContext, e que você pode testar aí.
getInitParameterNames() que retorna os nomes dos parâmetros de inicialização do contexto. O setAttribute que define o objeto especificado no escopo da aplicação. getAttribute que neste caso retorna o atributo para o nome especificado. A variação getInitParameterNames que retorna os nomes dos parâmetros de inicialização do contexto como uma enumeração de objetos String. E por fim o removeAttribute que remove o atributo com o nome fornecido do contexto do servlet.
Estes são alguns exemplos dos mais utilizados, porém há muitos outros que você pode explorar e aprender. O segredo como sabe, é a consistência e a prática.
EM POUCAS PALAVRAS
Uma das vantagens de se usar um objeto de ServletContext é a facilidade de manutenção. Em suma, se qualquer informação é compartilhada com todo o servlet, é melhor disponibilizá-lo para todo o servlet. É importante lembrar que essa informação deve ser fornecida a partir de um arquivo xml onde havendo necessidade podemos alterar a informação, uma única vez.
De forma sucinta podemos dizer que a aplicação efetiva do objeto da interface ServletContext é, e indo direto ao ponto, ele pode ser usado para obter informações de configuração do arquivo web.xml. Ou ainda para definir, obter ou remover atributo do arquivo web.xml. Ou simplesmente para fornecer uma comunicação entre aplicações. Eu fico por aqui, nos vemos no próximo tutorial continuando nossa conversa sobre JSP.