4 config context
DESCRIPTION
config context servletsTRANSCRIPT
ServletsContextos de Aplicação
Profa. Karen Selbach Borges
ServletConfig
• Serve para armazenar informação relativa à uma servlet específica.
• Através dos parâmetros init é possível obter informações de inicialização de uma servlet. Por exemplo:– Armazenar informações sobre uma conta de
Parâmetros Iniciais do Servlet<servlet> <servlet-name>ComandoServlet</servlet-name> <servlet-class>br.edu.ifrs.poa.control.ComandoServlet</servlet-class> <init-param> <param-name>user</param-name> <param-value>[email protected]</param-value> </init-param> <init-param> <param-name>senha</param-name> <param-value>eu</param-value> </init-param> <init-param> <param-name>host</param-name> <param-value>smtp.gmail.com</param-value> </init-param> <init-param> <param-name>porta</param-name> <param-value>465</param-value> </init-param> </servlet>
Recuperando informações
public void init(ServletConfig config) throws ServletException {
username = config.getInitParameter("user");
password = config.getInitParameter("senha");
host = config.getInitParameter("host");
porta = config.getInitParameter("porta");
}
Parâmetros Iniciais do Servlet
• Observações:– Os parâmetros init são lidos apenas uma vez,
quando o container inicializa a servlet.– Parâmetros init não podem ser acessados por
páginas JSP• Como resolver isso ?
Solução
• Utilizar parâmetros de contexto !
Contexto
• O que é um contexto ?– Cada contexto é uma unidade de aplicação
web Java (servlet/JSP) que possui suas próprias configurações.
– A partir de uma referência ao contexto atual pode-se compartilhar informações entre servlets.
– Representado pela classe ServletContext
ServletContext
• Serve para armazenar informação relativa à aplicação como um todo. Em particular, o ServletContext é usado para: – Conter parâmetros de inicialização da aplicação– Armazenar recursos associados à aplicação
(por exemplo, conexão com banco de dados) – Armazenar qualquer atributo da aplicação como
objetos– Fornecer acesso à funcionalidade de logging
Parâmetros Iniciais do Contexto
• Não podem ser alterados em tempo de execução (read-only)
• Acessado através do objeto ServletContext métodos– getInitParameter()– getInitParameterNames()
Parâmetros Iniciais do Contexto
• Definidos no web.xml– Context parameters: informação disponível para
toda a aplicação <context-param>
<param-name>user</param-name>
<param-value>usr23</param-value>
</context-param>
<context-param>
<param-name>senha</param-name>
<param-value>usr23</param-value>
</context-param>
<context-param>
<param-name>driver</param-name>
<param-value>oracle.jdbc.OracleDriver</param-value>
</context-param>
<context-param>
<param-name>url</param-name>
<param-value>jdbc:oracle:thin:@192.168.3.7:1521:XE</param-value>
</context-param>
Recuperando informações
try {
ServletContext context = getServletContext();
String user = (String) context.getInitParameter("user");
String senha = (String) context.getInitParameter("senha");
String driver = (String) context.getInitParameter("driver");
String url = (String) context.getInitParameter("url");
Connection conexao = DBConnection.getInstance(user, senha, driver, url);
} catch (Exception ex) {
throw new ServletException(ex);
}
ServletContext
• Inserindo um objetoString nome = “Leonardo”;contexto.setAttribute(“nome”, nome);
• Recuperando um ObjetoString nome = (String)contexto.getAttribute(“nome”);
• Removendo um Objetocontexto.removeAttribute(“nome”);
• Obtendo os nomes dos objetos do ContextoEnumeration enum = contexto.getAttributesNames();
Referências
• http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/servlet/html/intro.htm
• SIERRA, K.; BASHAM, B.; Use a Cabeça! Servlets & JSP. Editora. O’Reilly.