Você está na página 1de 14

Servlets

Contextos de Aplicao
Profa. Karen Selbach Borges

ServletConfig
Serve para armazenar informao relativa
uma servlet especfica.
Atravs dos parmetros init possvel
obter informaes de inicializao de uma
servlet. Por exemplo:
Armazenar informaes sobre uma conta de
email

Parmetros 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>eu@gmail.com</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 informaes
public void init(ServletConfig config) throws ServletException
{
username = config.getInitParameter("user");
password = config.getInitParameter("senha");
host = config.getInitParameter("host");
porta = config.getInitParameter("porta");
}

Parmetros Iniciais do Servlet


Observaes:
Os parmetros init so lidos apenas uma vez,
quando o container inicializa a servlet.
Parmetros init no podem ser acessados por
pginas JSP
Como resolver isso ?

Soluo
Utilizar parmetros de contexto !

Contexto
O que um contexto ?
Cada contexto uma unidade de aplicao
web Java (servlet/JSP) que possui suas
prprias configuraes.
A partir de uma referncia ao contexto atual
pode-se compartilhar informaes entre
servlets.
Representado pela classe ServletContext

ServletContext
Serve para armazenar informao relativa
aplicao como um todo. Em particular, o
ServletContext usado para:
Conter parmetros de inicializao da aplicao
Armazenar recursos associados aplicao
(por exemplo, conexo com banco de dados)
Armazenar qualquer atributo da aplicao como
objetos
Fornecer acesso funcionalidade de logging

Parmetros Iniciais do Contexto


No podem ser alterados em tempo de execuo (readonly)
Acessado atravs do objeto ServletContext
mtodos
getInitParameter()
getInitParameterNames()

Parmetros Iniciais do Contexto


Definidos no web.xml
Context parameters: informao disponvel para toda
a aplicao
<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 informaes
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 objeto
String nome = Leonardo;
contexto.setAttribute(nome, nome);

Recuperando um Objeto
String nome

= (String)contexto.getAttribute(nome);

Removendo um Objeto
contexto.removeAttribute(nome);

Obtendo os nomes dos objetos do


Contexto
Enumeration enum = contexto.getAttributesNames();

Referncias
http://www.dsc.ufcg.edu.br/~jacques/cursos
/daca/html/servlet/html/intro.htm
SIERRA, K.; BASHAM, B.; Use a Cabea!
Servlets & JSP. Editora. OReilly.

Você também pode gostar