Buscar

12 - visao_geral_javaee_servlets

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR 
Visão geral Java EE + Servlets 
Professor Marcelo Pacote – @professorpacote 
W W W. D OMI NAND OTI .COM.B R 
Acesse nosso site em 
WWW.DOMINANDOTI.COM.BR 
 Curta o Dominando TI no 
e receba nossas dicas sobre concursos! 
Cursos Turmas em Brasília, na sua cidade, e cursos online 
Livros Edições publicadas, lançamentos e promoções 
Fórum Interação direta entre estudantes e com os professores 
Simulados Questões inéditas, ranking de notas e correções em vídeo 
Blog Dicas e macetes de estudo, indicações de bibliografia, etc. 
Materiais Versões atualizadas de notas de aula e listas de exercícios 
W W W. D OMI NAND OTI .COM.B R 
Agenda 
 Visão Geral Java EE 
 Servlets 
 
Professor Marcelo Pacote - @professorpacote 3 
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR 
Visão Geral Java EE 
Professor Marcelo Pacote – @professorpacote 
W W W. D OMI NAND OTI .COM.B R 
Introdução ao Java EE 
 Trata-se de um padrão para desenvolvimento de aplicações 
corporativas. 
 “aplicações portáveis, robustas, extensíveis e seguras do 
lado do servidor”. 
 Teve início em 1997 com a especificação de Servlets e EJB 
1.0. Em 2010 foi lançada a versão Java EE 6. 
 Facilidade de desenvolvimento 
 Aprendizado com as versões anteriores 
 Melhorias propostas pela comunidade java 
 
Professor Marcelo Pacote - @professorpacote 5 
W W W. D OMI NAND OTI .COM.B R 
Visão geral da arquitetura e contêiner Java EE 
fonte: http://download.oracle.com/javaee/5/tutorial/doc/bnabo.html 
Professor Marcelo Pacote - @professorpacote 6 
W W W. D OMI NAND OTI .COM.B R 
Principais componentes e APIs – J2EE 
Fonte: http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/platform_technologies/component/index.html 
Professor Marcelo Pacote - @professorpacote 7 
W W W. D OMI NAND OTI .COM.B R 
Principais componentes e APIs – Java EE 6 
fonte: http://www.theserverside.com/news/1373391/Dependency-Injection-in-Java-EE-6-Part-1 
Professor Marcelo Pacote - @professorpacote 8 
W W W. D OMI NAND OTI .COM.B R 
Exercício [1] (TRT-1/2011/FCC) 
J2EE é uma plataforma de programação para servidores na 
linguagem de programação Java , que integra uma série de 
especificações de containers , cada uma com funcionalidades 
distintas. Nesse contexto, é correto afirmar que são integrantes do 
J2EE: 
a) Servlets, JCompany e JSP. 
b) JDBC, JSP, EJBs. 
c) EJBs, Servlets e JBoss. 
d) JDBC, Hibernate e JPA. 
e) JSP, JSF e Eclipse. 
 
Professor Marcelo Pacote - @professorpacote 9 
W W W. D OMI NAND OTI .COM.B R 
Exercício [2] (BNDES/2009/CESGRANRIO) (1/2) 
Ao estudar as especificações e frameworks Java EE, um Analista 
de Sistemas concluiu que 
a) o container WEB do servidor de aplicações é o responsável por 
gerenciar o ciclo de vida de servlets e de EJBs utilizados numa 
aplicação Java. 
b) no container WEB, uma página JSP transforma-se em um 
servlet, que é compilado, carregado e inicializado. 
c) Enterprise JavaBeans é um modelo de componentes 
padronizado, executado no lado do cliente e que facilita a 
construção de aplicações distribuídas robustas. 
 
Professor Marcelo Pacote - @professorpacote 10 
W W W. D OMI NAND OTI .COM.B R 
Exercício [2] (BNDES/2009/CESGRANRIO) (2/2) 
d) STRUTS é um framework de persistência que permite o 
gerenciamento de dados relacionais, utilizando-se de 
mapeamento objeto-relacional. 
e) a utilização de Java Persistent API obriga o uso de um 
container EJB com Session Beans. 
 
Professor Marcelo Pacote - @professorpacote 11 
W W W. D OMI NAND OTI .COM.B R 
Exercício [3] (MEC/2009/FGV) (1/2) 
A respeito das tecnologias Java/J2EE, assinale a alternativa 
correta. 
a) JSF é uma especificação feita pela Sun que visa padronizar o 
uso de transações distribuídas feitas por aplicativos Java. 
b) JTA é uma API da linguagem Java que permite a componentes 
baseados em Java/J2EE criar, enviar, receber e ler mensagens. 
c) JPA é uma tecnologia utilizada no desenvolvimento de 
aplicações para Web, similar às tecnologias Active Server Pages 
(ASP) da Microsoft ou PHP. 
 
Professor Marcelo Pacote - @professorpacote 12 
W W W. D OMI NAND OTI .COM.B R 
Exercício [3] (MEC/2009/FGV) (2/2) 
d) JMS é um framework para desenvolver aplicações web de 
forma ágil, permite que o desenvolvedor crie UIs através de um 
conjunto de componentes UIs pré-definidos. 
e) EJB é uma arquitetura de componentes multi-plataforma 
para o desenvolvimento de aplicações Java Enterprise Edition 
(Java EE), multicamadas, distribuídas, escaláveis e orientadas a 
objetos. 
 
Professor Marcelo Pacote - @professorpacote 13 
W W W. D OMI NAND OTI .COM.B R 
Exercício [4] (CGU/2008/ESAF) (1/2) 
J2EE - Java 2 Enterprise Edition é uma plataforma de desenvolvimento de 
aplicações multicamadas, baseada em componentes, largamente utilizada 
em aplicações corporativas. A respeito das tecnologias envolvidas nessa 
plataforma, é correto afirmar que: 
a) Servlets são classes de programação Java que geram conteúdo dinâmico 
(normalmente para páginas HTML) e interagem com os clientes, utilizando o 
modelo challenge/request. Normalmente utilizam o protocolo HTTP, apesar 
de não serem restritas a ele. 
b) JSF (Java Server Faces) é um framework de interfaces para aplicações 
WEB que permite a inclusão de componentes gráficos, tais como campos e 
botões, não sendo possível salvá-los no servidor. 
 
Professor Marcelo Pacote - @professorpacote 14 
W W W. D OMI NAND OTI .COM.B R 
Exercício [4] (CGU/2008/ESAF) (2/2) 
c) JSP (Java Server Pages) é uma tecnologia que permite ao 
desenvolvedor de páginas para Internet produzir aplicações que acessem 
banco de dados, manipulem arquivos no formato texto e capturem 
informações a partir de formulários. Dessa forma, conteúdos dinâmicos 
podem ser adicionados para páginas estáticas, tais como páginas HTML. 
d) Java Beans são objetos que atuam como armazenamento temporário 
para as páginas de uma aplicação, sendo, portanto, localizados na 
camada de banco de dados. 
e) JCA (Java Cryptography Architecture) são objetos que padronizam a 
ligação a aplicações legadas, disponibilizando serviços de criptografia. 
 
Professor Marcelo Pacote - @professorpacote 15 
W W W. D OMI NAND OTI .COM.B R 
Exercício [5] (SADPE/2009/FGV) (1/2) 
O J2EE (Java 2 Enterprise Edition) é considerado uma plataforma 
Java padrão, direcionada para aplicações multi-camadas, baseadas 
em componentes que são executados em um servidor de 
aplicações, voltada para redes, internet e intranets e contém 
bibliotecas especialmente desenvolvidas para o acesso a 
servidores, a sistemas de e-mail e a banco de dados. A plataforma 
J2EE contém componentes nativos, cada um com funcionalidades 
distintas, sendo dois definidos a seguir: 
I. permite o desenvolvimento de páginas com conteúdo dinâmico 
que executam no servidor. 
 
Professor Marcelo Pacote - @professorpacote 16 
W W W. D OMI NAND OTI .COM.B R 
Exercício [5] (SADPE/2009/FGV) (2/2) 
II. possibilita o desenvolvimento de aplicações empresariais associadas 
diretamente ao negócio do cliente e que executam no servidor. 
Esses componentes são denominados, respectivamente: 
a) JSP (Java Server Pages) e JTA (Java Transaction API) 
b) ASP (Active Server Pages) e EJB (Enterprise Java Beans) 
c) PHP (Hipertext Preprocessor) e EJB (Enterprise Java Beans) 
d) JSP (Java Server Pages) e EJB (Enterprise Java Beans) 
e) ASP (Active Server Pages) e JTA (Java Transaction API) 
Professor Marcelo Pacote - @professorpacote 17 
W W W. D OMI NAND OTI .COM.B R 
Exercício [6] (MEC/2008/FGV/Arquiteto)(1/2) 
A plataforma Java é constituída de um grande número de 
tecnologias. a respeito das tecnologias Java/J2EE, assinale a 
alternativa correta. 
a) Applets são uma coleção TAGs padrões que são homologadas 
pela SUN, cada uma um propósito bem definido. 
b) O JNDI é a API J2EE que fornece uma interface padrão para 
localizar usuários, máquinas, objetos, redes e serviços. 
Professor Marcelo Pacote - @professorpacote 18 
W W W. D OMI NAND OTI .COM.B R 
Exercício [6] (MEC/2008/FGV/Arquiteto) (2/2) 
c) JSF é uma API da linguagem Java que permite a 
componentes baseados em Java/J2EE criar, enviar, receber e 
ler mensagens. 
d) Swing é um mecanismo simples e consistente para estender 
a funcionalidade de um servidor web e para acessar existentes 
sistemas de negócio. 
e) A JMS fornece um padrão para utilização de POJOs (Plain Old 
Java Objects) como entidades que representam dados de uma 
tabela de banco de dados, através de um mapeamento objeto-
relacional. 
Professor Marcelo Pacote - @professorpacote 19 
W W W. D OMI NAND OTI .COM.B R 
Exercício [7] (MEC/2008/FGV/Desenv.) 
A arquitetura em camadas do modelo MVC (Model-View-Controller) 
é amplamente utilizada no desenvolvimento de aplicações web 
Java/J2EE. As opções mais frequentemente utilizadas na camada 
de visão (view) do modelo MVC, são: 
a) JPA, JMS, Web Services e Facelets. 
b) JSP, JSTL, Facelets e Applets. 
c) JPA, JTA, JMS e Servlets. 
d) JSF, JMS, JSTL, JDBC. 
e) JSP, EJBs, JTA, JPA. 
Professor Marcelo Pacote - @professorpacote 20 
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR 
 Servlets 
Professor Marcelo Pacote – @professorpacote 
W W W. D OMI NAND OTI .COM.B R 
Plataforma WEB 
 Baseada em HTTP (RFC 2068): 
 Protocolo simples 
 Sem estado (não mantém sessão aberta) 
 Funcionamento (simplificado): 
Professor Marcelo Pacote - @professorpacote 22 
W W W. D OMI NAND OTI .COM.B R 
Cliente e Servidor HTTP 
 Servidor HTTP: 
 Gerencia sistema virtual de arquivos e diretórios 
 Mapeia pastas do sistema de arquivos local (ex:c:\htdocs) a diretórios 
virtuais (ex:/) acessíveis remotamente 
 Papel do servidor HTTP: 
 Interpretar requisições HTTP do cliente (métodos GET,POST,...) 
 Devolver resposta HTTP à saída padrão 
 Papel do cliente HTTP: 
 Enviar requisições HTTP (GET,POST,...) a um servidor 
 Processar respostas HTTP recebidas (interpretar cabeçalhos,...) 
Professor Marcelo Pacote - @professorpacote 23 
W W W. D OMI NAND OTI .COM.B R 
Principais métodos HTTP 
 GET - pede ao servidor um arquivo informando seu endereço 
(relativo à raiz do servidor) 
 GET pode enviar dados através da URI (tamanho limitado) 
<uri>?dados 
 POST - envia dados ao servidor (como fluxo de bytes) 
Professor Marcelo Pacote - @professorpacote 24 
W W W. D OMI NAND OTI .COM.B R 
API Servlet 
 Geração de páginas com conteúdo dinâmico 
 API independente de plataforma 
 Componentes são escritos em Java 
 Rodam no servidor, por meio de uma JVM 
Professor Marcelo Pacote - @professorpacote 25 
W W W. D OMI NAND OTI .COM.B R 
Execução de Servlets e JSP 
 Para executar Servlets e JSP é preciso implantá-los em um 
Web Container 
 Um Web Container pode executar como parte de um servidor 
HTTP que repassa as requisições destinadas a Servlets e JSPs 
 O Tomcat é um exemplo de Web Container, que pode tanto 
funcionar conectado a outro servidor como usar seu próprio 
servidor Web 
 O Tomcat ocupará, por padrão, a porta 8080 
Professor Marcelo Pacote - @professorpacote 26 
W W W. D OMI NAND OTI .COM.B R 
Exercício [08] (TJ-ES/2011/CESPE) 
( ) Na arquitetura J2EE, o container web Apache Tomcat 
permite a execução de páginas JSP e servlets, que são classes 
Java que processam dinamicamente as requisições e 
constroem respostas na forma de páginas HTML. 
Professor Marcelo Pacote - @professorpacote 27 
W W W. D OMI NAND OTI .COM.B R 
Estrutura do Tomcat 
bin Executáveis 
conf Arquivo de configuração (server.xml) 
logs Logs das aplicações 
work Servlets gerados a partir dos JSPs 
webapps Contém pastas das aplicações web 
Professor Marcelo Pacote - @professorpacote 28 
W W W. D OMI NAND OTI .COM.B R 
Exercício [09] (TRT/2010/FCC) (1/2) 
Sobre o servidor web Tomcat considere: 
I. É um software proprietário, desenvolvido no projeto Apache 
Jakarta, oficializado pela Sun Microsystems. 
II. Não deve ser confundido com o servidor web Apache HTTP 
Server, que lida com qualquer tipo de solicitação na web. 
III. É um container que fornece um ambiente necessário para 
execução de aplicações desenvolvidas com Java Servlet e JSP. 
 
Professor Marcelo Pacote - @professorpacote 29 
W W W. D OMI NAND OTI .COM.B R 
Exercício [09] (TRT/2010/FCC) (2/2) 
Está correto o que consta em 
a) I e II, apenas. 
b) I e III, apenas. 
c) II e III, apenas. 
d) III, apenas. 
e) I, II e III. 
 
Professor Marcelo Pacote - @professorpacote 30 
W W W. D OMI NAND OTI .COM.B R 
Exercício [10] (TRE-14/2011/FCC) 
Em relação ao Tomcat é INCORRETO afirmar que 
a) pode atuar como servidor web/HTTP autônomo. 
b) é um servidor onde são instaladas Servlets para tratar as 
requisições que o servidor receber. 
c) pode funcionar como parte integrante de um servidor de aplicações 
como o JBoss AS. 
d) pode ser classificado como um servidor de aplicações Java EE 
completo. 
e) é configurável para efetuar autenticação em um servidor LDAP. 
 
Professor Marcelo Pacote - @professorpacote 31 
W W W. D OMI NAND OTI .COM.B R 
Exercício [11] (TRT-GO/2008/FCC) 
Um conjunto de Servlets, páginas JSP, classes Java, 
bibliotecas, ícones, páginas HTML e outros elementos, que 
podem ser empacotados juntos pelos desenvolvedores, deve 
ser instalado no Tomcat sob o diretório 
a) bin. 
b) conf. 
c) logs. 
d) webapps. 
e) work. 
 
Professor Marcelo Pacote - @professorpacote 32 
W W W. D OMI NAND OTI .COM.B R 
Exercício [12] (TRE-ES/2011/Cespe) 
( ) O Tomcat, servidor de aplicações Java para Web, é 
um software livre de código aberto, que surgiu do conceituado 
projeto Apache Jakarta, com o apoio e endosso oficial da Sun 
Microsystems como implementação de referência para as 
tecnologias Java Servlet e JavaServer Pages (JSP). 
 
Professor Marcelo Pacote - @professorpacote 33 
W W W. D OMI NAND OTI .COM.B R 
Exercício [13] (MEC/2008/FGV/Analista SO) (1/2) 
Devido a popularização da plataforma Java, o termo servidor de aplicação 
é frequentemente uma referência a "Servidor de aplicação J2EE". Acerca 
de Servidores de Aplicações, analise as seguintes afirmativas: 
I. O servidor WebSphere Application Server da IBM e o WebLogic Server da 
BEA Systems são dois conhecidos servidores J2EE comerciais. 
II. Os módulos web podem ser implementados usando servlets e JSP e a 
lógica de negócio por meio de EJBs. 
III. A plataforma J2EE disponibiliza padrões para os containers web e EJB. 
O Tomcat é um exemplo de container de software livre, onde os módulos 
web podem ser publicados. 
 
Professor Marcelo Pacote - @professorpacote 34 
W W W. D OMI NAND OTI .COM.B R 
Exercício [13] (MEC/2008/FGV/Analista SO) (2/2) 
Assinale: 
a) se somente a afirmativa I estiver correta. 
b) se somente as afirmativas I e II estiverem corretas. 
c) se somente as afirmativas I e III estiverem corretas. 
d) se somente as afirmativas II e III estiverem corretas. 
e) se todas as afirmativas estiverem corretas. 
Professor Marcelo Pacote - @professorpacote 35 
W W W. D OMI NAND OTI .COM.B R 
Exercício [14] (TJ-ES/2011/CESPE) 
( ) O Tomcat e o Glassfish, servidores de aplicações Java 
(conteinerservlet), são open source e compatíveis com 
aplicações escritas na arquitetura JEE 6; no entanto, ao 
contrário do Tomcat, o Glassfish não suporta executar 
aplicações escritas em JSP (Java server pages). 
Professor Marcelo Pacote - @professorpacote 36 
W W W. D OMI NAND OTI .COM.B R 
Ciclo de Vida de Servlets 
Professor Marcelo Pacote - @professorpacote 37 
W W W. D OMI NAND OTI .COM.B R 
Ciclo de Vida 
Professor Marcelo Pacote - @professorpacote 38 
W W W. D OMI NAND OTI .COM.B R 
Exercício [15] (TRE-SE/2007/FCC) 
Quando um servlet é carregado pela primeira vez para a 
máquina virtual Java do servidor 
a) ocorre um destroy() no processo cliente. 
b) o seu método init() é invocado. 
c) o método service() é definido. 
d) ocorre a execução do método getOutputStream(). 
e) o seu método stream() é invocado. 
 
Professor Marcelo Pacote - @professorpacote 39 
W W W. D OMI NAND OTI .COM.B R 
Exercício [16] (TRE-CE/2012/FCC) (1/2) 
No contexto do ciclo de vida de um servlet, considere: 
I. Quando o servidor recebe uma requisição, ela é repassada para o 
container que, por sua vez, carrega a classe na memória e cria uma 
instância da classe do servlet. 
II. Quando um servlet é carregado pela primeira vez para a máquina 
virtual Java do servidor, o método init() é invocado, para preparar recursos 
para a execução do serviço ou para estabelecer conexão com outros 
serviços. 
III. Estando o servlet pronto para atender as requisições dos clientes, o 
container cria um objeto de requisição (ServletRequest) e de resposta 
(ServletResponse) e depois chama o método service(), passando os 
objetos como parâmetros. 
Professor Marcelo Pacote - @professorpacote 40 
W W W. D OMI NAND OTI .COM.B R 
Exercício [16] (TRE-CE/2012/FCC) (2/2) 
IV. O método destroy() permite liberar os recursos que foram 
utilizados, sendo invocado quando o servidor estiver concluindo 
sua atividade. 
Está correto o que se afirma em: 
a) I, II e III, apenas. 
b) I, II e IV, apenas. 
c) I, III e IV, apenas. 
d) II, III e IV, apenas. 
e) I, II, III e IV. 
 
Professor Marcelo Pacote - @professorpacote 41 
W W W. D OMI NAND OTI .COM.B R 
Servlets HTTP 
Professor Marcelo Pacote - @professorpacote 42 
W W W. D OMI NAND OTI .COM.B R 
Exercício [17] (DPE-SP/2010/FCC) 
Servlets são projetadas para fornecer aos desenvolvedores uma 
solução JAVA para criar aplicações web. Para criar Servlets é 
necessário importar as classes padrão de extensão dos pacotes 
a) javax.servlet e javax.servlet.http. 
b) javax.servlet e javax.http.servlet. 
c) javax.servlet.html e javax.servlet.http. 
d) servlet.javax e servlet.javax.http. 
e) javax.servlet.smtp e javax.servlet.html. 
 
Professor Marcelo Pacote - @professorpacote 43 
W W W. D OMI NAND OTI .COM.B R 
Servlets 
Professor Marcelo Pacote - @professorpacote 44 
W W W. D OMI NAND OTI .COM.B R 
Exemplo de Servlet (1/2) 
import java. io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
public class ServletSimples extends HttpServlet { 
 public void doGet (HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType(“text/html"); 
(...) 
Professor Marcelo Pacote - @professorpacote 45 
W W W. D OMI NAND OTI .COM.B R 
Exemplo de Servlet (2/2) 
 PrintWriter out = response.getWriter(); 
 String user = request.getParameter("usuario"); 
 out.println("< HTML>< HEAD>< TITLE>"); 
 out.println(" Servlet Simples"); 
 out.println("</ TITLE></ HEAD>< BODY>"); 
 out.println("< H1> Saída da Servlet</ H1>"); 
 out.println("< p> Olá, " + user); 
 out.println(“<p> Seu endereço IP é “ + request.getRemoteAddr()); 
 out.println("</ BODY></ HTML>"); 
 out.close(); 
 } 
} 
Professor Marcelo Pacote - @professorpacote 46 
W W W. D OMI NAND OTI .COM.B R 
Página recebida no Browser 
 Url da requisição: 
 http://servidor:8080/ServletSimples?usuario=Package 
Professor Marcelo Pacote - @professorpacote 47 
W W W. D OMI NAND OTI .COM.B R 
Exercício [18] (TRANSPETRO/2012/CESGRANRIO) (1/2) 
Suponha que uma aplicação WEB construída com a linguagem Java 
contém uma variável de sessão que faz referência a um objeto da 
classe Usuario. 
Suponha, também, que haja nessa aplicação uma função de nome 
doGet, cuja assinatura é apresentada a seguir. 
Note que esse método possui um parâmetro denominado request, 
cuja classe é HttpServletRequest, componente da API (Application 
Programing Interface) de Servlets. 
 protected void doGet(HttpServletRequest 
request, HttpServletResponse esponse) 
throws ServletException, IOException 
 
Professor Marcelo Pacote - @professorpacote 48 
W W W. D OMI NAND OTI .COM.B R 
Exercício [18] (TRANSPETRO/2012/CESGRANRIO) (2/2) 
Suponha ainda que existe uma variável de sessão cuja referência é feita pela 
cadeia de caracteres "usuario". 
Qual instrução usa corretamente o parâmetro request para atribuir o objeto 
armazenado na variável de sessão a uma variável de referência do tipo 
Usuario e denominada usr, definida no corpo da função doGet? 
a) usr = (Object) request.getSession().getParameter("usuario"); 
b) usr = (Usuario) request.getSession().getAttribute("usuario"); 
c) usr = (Usuario) request.getSession().getParameter("usuario"); 
d) usr = request.getSession().getAttribute("usuario"); 
e) usr = request.getSession().getParameter("usuario"); 
Professor Marcelo Pacote - @professorpacote 49 
W W W. D OMI NAND OTI .COM.B R 
Servlets HTTP 
Professor Marcelo Pacote - @professorpacote 50 
W W W. D OMI NAND OTI .COM.B R 
Métodos doGet() e doPost() 
Professor Marcelo Pacote - @professorpacote 51 
W W W. D OMI NAND OTI .COM.B R 
Exercício [19] (PETRO/2012/CESGRANRIO/INFRA) (1/4) 
Seja o código a seguir. 
public class Servlet1 extends HttpServlet { 
 protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 try { 
 out.println("<html><body>Meu Servlet</body></html>"); 
 } finally { 
 out.close(); 
 } 
 } 
Professor Marcelo Pacote - @professorpacote 52 
W W W. D OMI NAND OTI .COM.B R 
Exercício [19] (PETRO/2012/CESGRANRIO/INFRA) (2/4) 
@Override 
 protected void doGet(HttpServletRequest request, HttpServletResponse 
 response) throws ServletException, IOException { 
 processRequest(request, response); 
 } 
@Override 
 protected void doPost(HttpServletRequest request, HttpServletResponse 
 response) throws ServletException, IOException { 
 processRequest(request, response); 
 } 
} 
Professor Marcelo Pacote - @professorpacote 53 
W W W. D OMI NAND OTI .COM.B R 
Exercício [19] (PETRO/2012/CESGRANRIO/INFRA) (3/4) 
Sobre esse código, do qual foram omitidas as declarações de 
importação e o método getServletInfo por concisão, considere 
as afirmativas a seguir. 
I - Como o método service() não foi redefinido, o container não 
saberá qual método chamar para cada tipo de pedido, gerando 
uma exceção. 
II - Como o método init() não foi redefinido, o construtor padrão 
da classe mãe será chamado. 
III - Como o método destroy() não foi redefinido, o container 
gerará um erro registrando-o no arquivo de logs ao terminar 
este aplicativo. 
Professor Marcelo Pacote - @professorpacote 54 
W W W. D OMI NAND OTI .COM.B R 
Exercício [19] (PETRO/2012/CESGRANRIO/INFRA) (4/4) 
É correto APENAS o que se afirma em 
a) I 
b) II 
c) III 
d) I e III 
e) II e III 
Professor Marcelo Pacote- @professorpacote 55 
W W W. D OMI NAND OTI .COM.B R 
Estrutura de uma aplicação Web 
Professor Marcelo Pacote - @professorpacote 56 
W W W. D OMI NAND OTI .COM.B R 
Exemplo de web.xml (1/2) 
Professor Marcelo Pacote - @professorpacote 57 
W W W. D OMI NAND OTI .COM.B R 
Exemplo de web.xml (2/2) 
Professor Marcelo Pacote - @professorpacote 58 
W W W. D OMI NAND OTI .COM.B R 
Servlet 3.0 
@WebServlet( 
name = “SvlInicio", 
urlPatterns = {"/ServletInicio"}, 
initParams = 
{@WebInitParam(name="webInitParam1“,value=“Oi"), 
@WebInitParam(name="webInitParam2", value=“Mundo")}) 
public class MinhaServlet extends HttpServlet { 
 
Professor Marcelo Pacote - @professorpacote 59 
W W W. D OMI NAND OTI .COM.B R 
Exercício [20] (TJ-RO/2008/CESGRANRIO) 
Aplicações web são empacotadas em um arquivo WAR para serem 
disponibilizadas em servidores de aplicações como o Tomcat e o Oracle 
Application Server. Sobre a estrutura de um arquivo WAR, é correto afirmar que: 
a) o código fonte dos servlets fica em WEB-INF/src. 
b) o arquivo web.xml (deployment descriptor) fica na pasta META-INF. 
c) os servlets compilados e as classes de domínio ficam em subpastas de WEB-
INF/classes. 
d) arquivos JSP, imagens e outros conteúdos diretamente acessíveis aos clientes 
web da aplicação ficam em subpastas de WEB-INF/web. 
e) arquivos JAR ficam em META-INF/lib. 
 
Professor Marcelo Pacote - @professorpacote 60 
W W W. D OMI NAND OTI .COM.B R 
Exercício [21] (AGECOM/2010/IC) (1/2) 
Um servlet é um objeto java que recebe requisições 
respondendo-as conforme cada solicitação, como uma página 
HTML gerada dinamicamente. O gráfico abaixo ilustra isso: 
Professor Marcelo Pacote - @professorpacote 61 
W W W. D OMI NAND OTI .COM.B R 
Exercício [21] (AGECOM/2010/IC) (2/2) - adaptada 
Com base em servlet, julgue os itens: 
( ) Para escrevermos um Servlet, criamos uma classe java que estenda 
HttpServlet e sobrescreva ao menos um método chamado doGet ou doPost. 
( ) A interface Servlet possibilita o uso apenas do protocolo HTTP. 
( ) Diversas requisições podem ser feitas à mesma servlet, em tempos 
diferentes, em um único servidor. 
( ) A tag <www-pattern> possibilita flexibilidade de disponibilizar uma 
servlet através de várias URLs de um caminho. 
( ) O tratamento de erros em uma servlet é configurado no arquivo 
www.xml. 
Professor Marcelo Pacote - @professorpacote 62 
W W W. D OMI NAND OTI .COM.B R 
Métodos associados ao buffering da resposta 
 public void setBufferSize (int tamanho) 
 define, em bytes, o tamanho do buffer de resposta 
 public boolean isCommitted () 
 verifica se o conteúdo da resposta já foi enviado ao cliente 
 public void reset() 
 Limpa o conteúdo do buffer 
 public void flushBuffer() 
 Força o envio do conteúdo do buffer ao cliente. 
Professor Marcelo Pacote - @professorpacote 63 
W W W. D OMI NAND OTI .COM.B R 
Exercício [22] (MPU/2010/CESPE) (1/3) - adaptada 
import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
public class MpuServlet2 extends HttpServlet { 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 out.println("<html> <head> <title>Concurso MPU</title> </head>"); 
 out.println("<body>"); 
 out.println("<h1>Concurso do MPU- Tela 2</h1>"); 
 out.println("</body>"); 
 out.println("</html>"); 
 out.close(); 
 } 
} 
Professor Marcelo Pacote - @professorpacote 64 
W W W. D OMI NAND OTI .COM.B R 
Exercício [22] (MPU/2010/CESPE) (2/3) - adaptada 
( ) Em um contêiner Servlet, a execução do programa MpuServlet1 a seguir 
implica, também, a execução do programa MpuServlet2. 
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; 
public class MpuServlet1 extends HttpServlet { 
protected void doGet (HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 out.println("<html> <head> <title>Concurso MPU</title> </head> <body>"); 
 out.println("<h1>Concurso do MPU- Tela 1</h1>"); 
 response.flushBuffer(); 
 RequestDispatcher rd = request.getRequestDispatcher("MpuServlet2"); 
 rd.forward(request,response); 
 out.println("</body> </html>"); 
 out.close(); 
 } 
} 
Professor Marcelo Pacote - @professorpacote 65 
W W W. D OMI NAND OTI .COM.B R 
Exercício [22] (MPU/2010/CESPE) (3/3) - adaptada 
“out.println("<h1>Concurso do MPU- Tela 1</h1>"); 
response.flushBuffer(); 
RequestDispatcher rd = request.getRequestDispatcher("MpuServlet2");” 
De acordo com a especificação da Oracle: 
“The forward method of the RequestDispatcher interface may be called by 
the calling servlet only when no output has been committed to the client. If 
output data exists in the response buffer that has not been committed, the 
content must be cleared before the target servlet’s service method is 
called. If the response has been committed, an IllegalStateException must 
be thrown.” 
Professor Marcelo Pacote - @professorpacote 66 
W W W. D OMI NAND OTI .COM.B R 
Exercício [23] (MPU/2010/CESPE) (1/2) - adaptada 
import java.io.*; (…) 
 
public class MpuMultServlet extends HttpServlet { 
 protected void doGet(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 int cont; 
 try { 
 (vide próximo slide) 
 } catch (Exception e){} 
 out.close(); 
 } 
} 
Professor Marcelo Pacote - @professorpacote 67 
W W W. D OMI NAND OTI .COM.B R 
Exercício [23] (MPU/2010/CESPE) (2/2) - adaptada 
BufferedReader ler = new BufferedReader(new FileReader("c:/temp/contador.txt")); 
cont = Integer.parseInt(ler.readLine()); 
ler.close(); 
Thread t = new Thread(); 
t.sleep(6000); 
cont++; 
BufferedWriter grava = new BufferedWriter( new FileWriter("c:/temp/contador.txt")); 
grava.write(Integer.toString(cont)); 
grava.close(); 
out.println("número exibido: " + cont); 
 
( )Na tecnologia Servlet versão 2.4 ou superior, a execução do programa 
apresentado a seguir, em dois browsers distintos e com diferença de tempo de 
acesso inferior a 5 segundos permite fornecer o mesmo número para essas duas 
solicitações. 
Professor Marcelo Pacote - @professorpacote 68 
W W W. D OMI NAND OTI .COM.B R 
Gabarito dos Exercícios 
[01] b 
[02] b 
[03] e 
[04] c 
[05] d 
[06] b 
[07] b 
[08] certo 
[09] c 
[10] d 
 
 
[11] d 
[12] certo 
[13] e 
[14] errado 
[15] b 
[16] e 
[17] a 
[18] b 
[19] b** 
[20] c 
 
 
 
[21] cecee 
[22] e 
[23] c* 
 
* Diverge do gabarito oficial 
** gabarito a ser comentado 
Professor Marcelo Pacote - @professorpacote 69 
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR 
Anexo I 
Exercícios Complementares 
Professor Marcelo Pacote – @professorpacote 
W W W. D OMI NAND OTI .COM.B R 
O tipo de conteúdo de respostas para o navegador Web,no 
contexto de servlets, é definido no método 
a) HttpServletResponse.setContentType(). 
b) HttpServlet.doOptions(). 
c) HttpServletRequest.getSession(). 
d) Servlet.service(). 
e) Servlet.level(). 
Exercício [01] (ANA/ESAF/2009) 
Professor Marcelo Pacote - @professorpacote 71 
W W W. D OMI NAND OTI .COM.B R 
A tecnologia mais adequada para sistemas deobjetos 
distribuídos que compreendem o suporte a diferentes 
linguagens de programação e plataformas de execução é 
a) CORBA. 
b) DCOM. 
c) Java RMI. 
d) DCE. 
e) RPC. 
Exercício [02] (STN/ESAF/2008) 
Professor Marcelo Pacote - @professorpacote 72 
W W W. D OMI NAND OTI .COM.B R 
Exercício [03] (PRODAM-AM/2010/FUNCAB) (1/2) 
Sejam as seguintes assertivas sobre o Tomcat 5.5: 
I. Caso se queira apenas executar aplicações sobre o Tomcat, 
não é necessário instalar o JDK, pois o JRE é suficiente. 
II. Essa versão implementa um container EJB. 
III. Pode ser classificado como um container Servlet/JSP. 
Marque a alternativa correta em relação às assertivas acima. 
 
 
Professor Marcelo Pacote - @professorpacote 73 
W W W. D OMI NAND OTI .COM.B R 
Exercício [03] (PRODAM-AM/2010/FUNCAB) (2/2) 
a) Apenas as assertivas I e II são verdadeiras. 
b) Apenas as assertivas I e III são verdadeiras. 
c) Apenas as assertivas II e III são verdadeiras. 
d) Todas as assertivas são verdadeiras. 
e) Todas as assertivas são falsas. 
 
Professor Marcelo Pacote - @professorpacote 74 
W W W. D OMI NAND OTI .COM.B R 
Exercício [04] (TRT-4/2011/FCC) (1/2) 
Considere: 
I. Cobre parte da especificação JEE porém não as tecnologias 
servlet e JSP e nem as tecnologias Realms e JDBC 
DataSources. 
II. Tem a capacidade de atuar como servidor web, ou pode 
funcionar integrado a um servidor web dedicado como o Apache 
ou até mesmo o IIS. 
III. É distribuído pela Sun como software proprietário e é 
referência para as tecnologias Java Servlet e JavaServer Pages. 
 
Professor Marcelo Pacote - @professorpacote 75 
W W W. D OMI NAND OTI .COM.B R 
Exercício [04] (TRT-4/2011/FCC) (2/2) 
Quanto ao Tomcat, é correto o que consta em 
a) I, somente. 
b) II, somente. 
c) III, somente. 
d) I e II, somente. 
e) I, II e III. 
 
Professor Marcelo Pacote - @professorpacote 76 
W W W. D OMI NAND OTI .COM.B R 
Exercício [05] (PREVIC/2011/CESPE) 
Acerca de plataforma Java EE e de JSP, julgue o seguinte item. 
( ) O container JSP provê uma lista de objetos instanciados, 
chamados de objetos implícitos. É através do objeto aplicação 
(application object) que são rastreadas as informações de um 
cliente específico entre múltiplas requisições. 
 
Professor Marcelo Pacote - @professorpacote 77 
W W W. D OMI NAND OTI .COM.B R 
Exercício [06] (TCU/2010/CESPE) 
Com relação às tecnologias para desenvolvimento web em Java 
que podem ser empregadas no sistema descrito no texto, julgue 
o item a seguir. 
( ) No desenvolvimento de conteúdos para apresentação, o uso 
de facelets traz vantagens em relação ao uso de JSP. Uma 
delas é a maior modularidade, com o uso de templates e 
componentes compostos (composite). 
 
Professor Marcelo Pacote - @professorpacote 78 
W W W. D OMI NAND OTI .COM.B R 
Exercício [07] (TRE-ES/2011/CESPE) 
Julgue os itens que se seguem, referentes a fundamentos de 
computação e a linguagens de programação. 
( ) Um servlet é uma classe Java utilizada para ampliar a 
capacidade de acesso dos servidores a aplicações por meio do 
modelo requisição-resposta. Embora os servlets possam responder 
a um tipo específico de requisição hospedada em servidores web, 
os servlets não respondem a requisições genéricas. 
 
Professor Marcelo Pacote - @professorpacote 79 
W W W. D OMI NAND OTI .COM.B R 
Exercício [08] (COFEN/2010/CONSULPLAN) (1/2) 
Com base em Containers ou API de uma plataforma de programação para 
servidores na linguagem de programação Java Enterprise Edition analise: 
I. Servlets são utilizados para o desenvolvimento de aplicações Web com 
conteúdo dinâmico. Ele contém uma API que abstrai e disponibiliza os 
recursos do servidor Web de maneira simplificada para o programador. 
II. EJBs (Enterprise Java Beans) são utilizados no desenvolvimento de 
componentes de software. Eles permitem que o programador se concentre 
nas necessidades do negócio do cliente, enquanto questões de 
infraestrutura, segurança, disponibilidade e escalabilidade são 
responsabilidade do servidor de aplicações. 
Professor Marcelo Pacote - @professorpacote 80 
W W W. D OMI NAND OTI .COM.B R 
Exercício [08] (COFEN/2010/CONSULPLAN) (2/2) 
III. JPA (Java Persistence API) é utilizado para conexão 
persistente com base de dados e aplicações com 
desenvolvimento em plataformas paralelas. 
Está(ão) correta(s) apenas a(s) afirmativa(s): 
a) I, II, III 
b) I, II 
c) I, III 
d) II, III 
e) I 
Professor Marcelo Pacote - @professorpacote 81 
W W W. D OMI NAND OTI .COM.B R 
Exercício [09] (TRE-MT/2010/CESPE) (1/2) 
Quanto às tecnologias Java, assinale a opção correta. 
a) Clientes J2EE são necessariamente páginas web dinâmicas 
que normalmente não fazem acessos a banco de dados, nem 
executam regras de negócio complexas. 
b) Em uma aplicação J2EE típica, um EJB é criado, controlado e 
destruído pela aplicação cliente. 
c) JSP pode ser usado para desenvolvimento de páginas web 
dinâmicas. A lógica que gera o conteúdo dessas páginas é 
descrita utilizando-se a linguagem Java. 
 
Professor Marcelo Pacote - @professorpacote 82 
W W W. D OMI NAND OTI .COM.B R 
Exercício [09] (TRE-MT/2010/CESPE) (2/2) 
d) Um componente J2EE é uma unidade funcional de software 
autocontida, escrito na linguagem de programação Java e 
executado exclusivamente em servidores. 
e) JPA lida com a forma como dados relacionais são mapeados 
para objetos Java e com a forma como esses objetos são 
armazenados em um banco de dados relacional. 
 
Professor Marcelo Pacote - @professorpacote 83 
W W W. D OMI NAND OTI .COM.B R 
Exercício [10] (SENADO/2008/FGV) 
Ao desenvolver uma aplicação sob a plataforma Java EE 5, isso 
implica que: 
a) a aplicação será compatível com as versões anteriores do Java 
Enterprise Edition J2EE 1.4. 
b) a aplicação deverá usar o JavaServer Faces. 
c) a aplicação poderá usar menos arquivos XML do que se fosse 
desenvolvida na plataforma J2EE 1.4. 
d) a aplicação será compatível com a versão 6.0 do Apache Tomcat. 
e) o desenvolvedor poderá utilizar o J2EE 1.4 SDK para testar a 
aplicação. 
Professor Marcelo Pacote - @professorpacote 84 
W W W. D OMI NAND OTI .COM.B R 
Exercício [11] (STJ/2008/CESPE) 
( ) Na plataforma J2EE, uma aplicação web para a Internet 
pode ser composta por servlets, Java Server Pages (JSP) e 
páginas HTML. Nessas aplicações, a apresentação dos dados 
pode ser separada da lógica do negócio, adotando-se o estilo de 
arquitetura model view controller (MVC). Nesse caso, pode-se 
usar servlets operando como controladoras que recebem as 
solicitações dos usuários e providenciam o processamento das 
mesmas. Em uma mesma aplicação, entretanto, só pode existir 
um servlet operando como controladora. 
 
Professor Marcelo Pacote - @professorpacote 85 
W W W. D OMI NAND OTI .COM.B R 
Exercício [12] (DATAPREV/2012/QUADRIX) 
O componente que faz parte do Java EE e que permite aos 
desenvolvedores gerenciar os dados utilizando mapeamento objeto-
relacional que define a forma como os dados são mapeados das 
classes de entidade para tabelas do banco de dados e vice-versa é 
conhecido como: 
a) JPA 
b) JDBC 
c) JSF 
d) JTA 
e) JMS 
 
 
Professor Marcelo Pacote - @professorpacote 86 
W W W. D OMI NAND OTI .COM.B R 
Exercício [13] (DATAPREV/2012/QUADRIX) 
Um servidor de aplicações Java EE completo possui contêiner: 
a) web, apenas. 
b) EJB, apenas. 
c) web, contêiner JDBC e contêiner Bean. 
d) web e contêiner EJB. 
e) de persistência, contêiner web e contêiner EJB. 
 
 
Professor Marcelo Pacote - @professorpacote 87 
W W W.D OMI NAND OTI .COM.B R 
Exercício [14] (TRT-PR/2010/FCC) 
NÃO se trata de uma afirmativa correta sobre o servidor web 
Tomcat: 
a) Executa as mesmas funções que o servidor web Apache 
HTTP Server. 
b) Cuida basicamente de processamento de aplicações Java. 
c) É escrito em Java. 
d) Necessita da plataforma Java SE instalada. 
e) Necessita de uma JVM para ser executado. 
 
Professor Marcelo Pacote - @professorpacote 88 
W W W. D OMI NAND OTI .COM.B R 
Exercício [15] (Serpro/2013/Cespe/Desv./77) 
( ) No Tomcat 7, o uso de log hierárquico depende de 
implementações específicas. 
Professor Marcelo Pacote - @professorpacote 89 
W W W. D OMI NAND OTI .COM.B R 
Exercício [16] (Serpro/2013/Cespe/Desv./103) 
( ) RMI (remote method invocation) é o protocolo de 
programação que, utilizando WAP (wireless application 
protocol), permite a construção de interface homem-máquina 
em dispositivos móveis. 
Professor Marcelo Pacote - @professorpacote 90 
W W W. D OMI NAND OTI .COM.B R 
Gabarito 
[01] a 
[02] a 
[03] b 
[04] b 
[05] errado 
[06] certo 
[07] errado 
[08] b 
[09] e 
[10] c 
 
[11] errado 
[12] a 
[13] d 
[14] a 
[15] errado 
[16] errado 
Professor Marcelo Pacote - @professorpacote 91

Outros materiais