Como forma de demonstrar o uso da referida interface, segue abaixo um arquivo web.xml.
</web-app>
<servlet>
<servlet-name>testeContextoServlet</servlet-name>
<servlet-class>br.aiec.ContextoDemoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testeContextoServlet</servlet-name>
<url-pattern>/testecontexto</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>testeContextoServletPwd</servlet-name>
<servlet-class>br.aiec.ContextoDemoServletPwd</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testeContextoServletPwd</servlet-name>
<url-pattern>/testecontextoPwd</url-pattern>
</servlet-mapping>
</web-app>
Perceba que o referido arquivo possui dois servlets publicados. Isso é importante, pois o servlet de nome “testeContextoServlet” servirá para exibir na tela do navegador web todos os atributos existentes no contexto. Já o servlet de nome “testeContextoServletPwd” servirá para adicionar mais um atributo ao contexto conforme código fonte do segundo Servlet logo abaixo.
É importante perceber que a adição deste atributo visa demonstrar o compartilhamento de objetos entre Servlets de uma mesma aplicação web.
Clique aqui para visualizar o código fonte do primeiro Servlet
Clique aqui para visualizar o código fonte do segundo Servlet.
package br.aiec; import java.io.IOException; import java.util.Enumeration; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class ContextoDemoServlet implements Servlet { private ServletConfig config; @Override public ServletConfig getServletConfig() { return config; } @Override public String getServletInfo() { return "Programação WEB - AIEC - Contexto de Servlet"; } @Override public void init(ServletConfig config) throws ServletException { this.config = config; } @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { ServletContext servletContext = config.getServletContext(); response.getWriter().println("Versão maior: " + servletContext.getMajorVersion()); response.getWriter().println("Versão menor: " + servletContext.getMinorVersion()); response.getWriter().println("Informações Servidor: " + servletContext.getServerInfo()); response.getWriter().println("\n\nATRIBUTOS/VALORES"); Enumeration<String> attributeNames = (Enumeration<String>) servletContext.getAttributeNames(); while (attributeNames.hasMoreElements()) { String attrName = (String) attributeNames.nextElement(); response.getWriter().println("---------------------------"); response.getWriter().println("Nome: " + attrName); response.getWriter().println("Valor: " + servletContext.getAttribute(attrName)); } } @Override public void destroy() { } }
package br.aiec; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class ContextoDemoServletPwd implements Servlet { private ServletConfig config; @Override public ServletConfig getServletConfig() { return config; } @Override public String getServletInfo() { return "Programação WEB - AIEC - Contexto de Servlet - (Adicionando o atributo password)"; } @Override public void init(ServletConfig config) throws ServletException { this.config = config; } @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { //Adicionando o atributo ao contexto config.getServletContext().setAttribute("password", "abraCadabra"); //link para o primeiro servlet visando comprovar a adição do atributo response.getWriter().println("<a href='testecontexto'> Clique aqui! </a>"); } @Override public void destroy() { } }