Você está na página 1de 91

WWW. DOMI NANDOTI . COM.

BR
WWW. DOMI NANDOTI .COM. BR
Viso geral Java EE + Servlets
Professor Marcelo Pacote @professorpacote
WWW. DOMI NANDOTI . COM. BR
Acesse nosso site em
WWW.DOMINANDOTI.COM.BR
Curta o Dominando TI no
e receba nossas dicas sobre concursos!
Cursos Turmas em Braslia, na sua cidade, e cursos online
Livros Edies publicadas, lanamentos e promoes
Frum Interao direta entre estudantes e com os professores
Simulados Questes inditas, ranking de notas e correes em vdeo
Blog Dicas e macetes de estudo, indicaes de bibliografia, etc.
Materiais Verses atualizadas de notas de aula e listas de exerccios
WWW. DOMI NANDOTI . COM. BR
Agenda
Viso Geral Java EE
Servlets

Professor Marcelo Pacote - @professorpacote 3
WWW. DOMI NANDOTI . COM. BR
WWW. DOMI NANDOTI .COM. BR
Viso Geral Java EE
Professor Marcelo Pacote @professorpacote
WWW. DOMI NANDOTI . COM. BR
Introduo ao Java EE
Trata-se de um padro para desenvolvimento de aplicaes
corporativas.
aplicaes portveis, robustas, extensveis e seguras do
lado do servidor.
Teve incio em 1997 com a especificao de Servlets e EJB
1.0. Em 2010 foi lanada a verso Java EE 6.
Facilidade de desenvolvimento
Aprendizado com as verses anteriores
Melhorias propostas pela comunidade java

Professor Marcelo Pacote - @professorpacote 5
WWW. DOMI NANDOTI . COM. BR
Viso geral da arquitetura e continer Java EE
fonte: http://download.oracle.com/javaee/5/tutorial/doc/bnabo.html
Professor Marcelo Pacote - @professorpacote 6
WWW. DOMI NANDOTI . COM. BR
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
WWW. DOMI NANDOTI . COM. BR
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
WWW. DOMI NANDOTI . COM. BR
Exerccio [1] (TRT-1/2011/FCC)
J2EE uma plataforma de programao para servidores na
linguagem de programao Java , que integra uma srie de
especificaes de containers , cada uma com funcionalidades
distintas. Nesse contexto, correto afirmar que so 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [2] (BNDES/2009/CESGRANRIO) (1/2)
Ao estudar as especificaes e frameworks Java EE, um Analista
de Sistemas concluiu que
a) o container WEB do servidor de aplicaes o responsvel por
gerenciar o ciclo de vida de servlets e de EJBs utilizados numa
aplicao Java.
b) no container WEB, uma pgina 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
construo de aplicaes distribudas robustas.

Professor Marcelo Pacote - @professorpacote 10
WWW. DOMI NANDOTI . COM. BR
Exerccio [2] (BNDES/2009/CESGRANRIO) (2/2)
d) STRUTS um framework de persistncia que permite o
gerenciamento de dados relacionais, utilizando-se de
mapeamento objeto-relacional.
e) a utilizao de Java Persistent API obriga o uso de um
container EJB com Session Beans.

Professor Marcelo Pacote - @professorpacote 11
WWW. DOMI NANDOTI . COM. BR
Exerccio [3] (MEC/2009/FGV) (1/2)
A respeito das tecnologias Java/J2EE, assinale a alternativa
correta.
a) JSF uma especificao feita pela Sun que visa padronizar o
uso de transaes distribudas 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
aplicaes para Web, similar s tecnologias Active Server Pages
(ASP) da Microsoft ou PHP.

Professor Marcelo Pacote - @professorpacote 12
WWW. DOMI NANDOTI . COM. BR
Exerccio [3] (MEC/2009/FGV) (2/2)
d) JMS um framework para desenvolver aplicaes web de
forma gil, permite que o desenvolvedor crie UIs atravs de um
conjunto de componentes UIs pr-definidos.
e) EJB uma arquitetura de componentes multi-plataforma
para o desenvolvimento de aplicaes Java Enterprise Edition
(Java EE), multicamadas, distribudas, escalveis e orientadas a
objetos.

Professor Marcelo Pacote - @professorpacote 13
WWW. DOMI NANDOTI . COM. BR
Exerccio [4] (CGU/2008/ESAF) (1/2)
J2EE - Java 2 Enterprise Edition uma plataforma de desenvolvimento de
aplicaes multicamadas, baseada em componentes, largamente utilizada
em aplicaes corporativas. A respeito das tecnologias envolvidas nessa
plataforma, correto afirmar que:
a) Servlets so classes de programao Java que geram contedo dinmico
(normalmente para pginas HTML) e interagem com os clientes, utilizando o
modelo challenge/request. Normalmente utilizam o protocolo HTTP, apesar
de no serem restritas a ele.
b) JSF (Java Server Faces) um framework de interfaces para aplicaes
WEB que permite a incluso de componentes grficos, tais como campos e
botes, no sendo possvel salv-los no servidor.

Professor Marcelo Pacote - @professorpacote 14
WWW. DOMI NANDOTI . COM. BR
Exerccio [4] (CGU/2008/ESAF) (2/2)
c) JSP (Java Server Pages) uma tecnologia que permite ao
desenvolvedor de pginas para Internet produzir aplicaes que acessem
banco de dados, manipulem arquivos no formato texto e capturem
informaes a partir de formulrios. Dessa forma, contedos dinmicos
podem ser adicionados para pginas estticas, tais como pginas HTML.
d) Java Beans so objetos que atuam como armazenamento temporrio
para as pginas de uma aplicao, sendo, portanto, localizados na
camada de banco de dados.
e) JCA (Java Cryptography Architecture) so objetos que padronizam a
ligao a aplicaes legadas, disponibilizando servios de criptografia.

Professor Marcelo Pacote - @professorpacote 15
WWW. DOMI NANDOTI . COM. BR
Exerccio [5] (SADPE/2009/FGV) (1/2)
O J2EE (Java 2 Enterprise Edition) considerado uma plataforma
Java padro, direcionada para aplicaes multi-camadas, baseadas
em componentes que so executados em um servidor de
aplicaes, voltada para redes, internet e intranets e contm
bibliotecas especialmente desenvolvidas para o acesso a
servidores, a sistemas de e-mail e a banco de dados. A plataforma
J2EE contm componentes nativos, cada um com funcionalidades
distintas, sendo dois definidos a seguir:
I. permite o desenvolvimento de pginas com contedo dinmico
que executam no servidor.

Professor Marcelo Pacote - @professorpacote 16
WWW. DOMI NANDOTI . COM. BR
Exerccio [5] (SADPE/2009/FGV) (2/2)
II. possibilita o desenvolvimento de aplicaes empresariais associadas
diretamente ao negcio do cliente e que executam no servidor.
Esses componentes so 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [6] (MEC/2008/FGV/Arquiteto) (1/2)
A plataforma Java constituda de um grande nmero de
tecnologias. a respeito das tecnologias Java/J2EE, assinale a
alternativa correta.
a) Applets so uma coleo TAGs padres que so homologadas
pela SUN, cada uma um propsito bem definido.
b) O JNDI a API J2EE que fornece uma interface padro para
localizar usurios, mquinas, objetos, redes e servios.
Professor Marcelo Pacote - @professorpacote 18
WWW. DOMI NANDOTI . COM. BR
Exerccio [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 negcio.
e) A JMS fornece um padro para utilizao de POJOs (Plain Old
Java Objects) como entidades que representam dados de uma
tabela de banco de dados, atravs de um mapeamento objeto-
relacional.
Professor Marcelo Pacote - @professorpacote 19
WWW. DOMI NANDOTI . COM. BR
Exerccio [7] (MEC/2008/FGV/Desenv.)
A arquitetura em camadas do modelo MVC (Model-View-Controller)
amplamente utilizada no desenvolvimento de aplicaes web
Java/J2EE. As opes mais frequentemente utilizadas na camada
de viso (view) do modelo MVC, so:
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
WWW. DOMI NANDOTI . COM. BR
WWW. DOMI NANDOTI .COM. BR
Servlets
Professor Marcelo Pacote @professorpacote
WWW. DOMI NANDOTI . COM. BR
Plataforma WEB
Baseada em HTTP (RFC 2068):
Protocolo simples
Sem estado (no mantm sesso aberta)
Funcionamento (simplificado):
Professor Marcelo Pacote - @professorpacote 22
WWW. DOMI NANDOTI . COM. BR
Cliente e Servidor HTTP
Servidor HTTP:
Gerencia sistema virtual de arquivos e diretrios
Mapeia pastas do sistema de arquivos local (ex:c:\htdocs) a diretrios
virtuais (ex:/) acessveis remotamente
Papel do servidor HTTP:
Interpretar requisies HTTP do cliente (mtodos GET,POST,...)
Devolver resposta HTTP sada padro
Papel do cliente HTTP:
Enviar requisies HTTP (GET,POST,...) a um servidor
Processar respostas HTTP recebidas (interpretar cabealhos,...)
Professor Marcelo Pacote - @professorpacote 23
WWW. DOMI NANDOTI . COM. BR
Principais mtodos HTTP
GET - pede ao servidor um arquivo informando seu endereo
(relativo raiz do servidor)
GET pode enviar dados atravs da URI (tamanho limitado)
<uri>?dados
POST - envia dados ao servidor (como fluxo de bytes)
Professor Marcelo Pacote - @professorpacote 24
WWW. DOMI NANDOTI . COM. BR
API Servlet
Gerao de pginas com contedo dinmico
API independente de plataforma
Componentes so escritos em Java
Rodam no servidor, por meio de uma JVM
Professor Marcelo Pacote - @professorpacote 25
WWW. DOMI NANDOTI . COM. BR
Execuo 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 requisies destinadas a Servlets e JSPs
O Tomcat um exemplo de Web Container, que pode tanto
funcionar conectado a outro servidor como usar seu prprio
servidor Web
O Tomcat ocupar, por padro, a porta 8080
Professor Marcelo Pacote - @professorpacote 26
WWW. DOMI NANDOTI . COM. BR
Exerccio [08] (TJ-ES/2011/CESPE)
( ) Na arquitetura J2EE, o container web Apache Tomcat
permite a execuo de pginas JSP e servlets, que so classes
Java que processam dinamicamente as requisies e
constroem respostas na forma de pginas HTML.
Professor Marcelo Pacote - @professorpacote 27
WWW. DOMI NANDOTI . COM. BR
Estrutura do Tomcat
bin Executveis
conf Arquivo de configurao (server.xml)
logs Logs das aplicaes
work Servlets gerados a partir dos JSPs
webapps Contm pastas das aplicaes web
Professor Marcelo Pacote - @professorpacote 28
WWW. DOMI NANDOTI . COM. BR
Exerccio [09] (TRT/2010/FCC) (1/2)
Sobre o servidor web Tomcat considere:
I. um software proprietrio, desenvolvido no projeto Apache
Jakarta, oficializado pela Sun Microsystems.
II. No deve ser confundido com o servidor web Apache HTTP
Server, que lida com qualquer tipo de solicitao na web.
III. um container que fornece um ambiente necessrio para
execuo de aplicaes desenvolvidas com Java Servlet e JSP.

Professor Marcelo Pacote - @professorpacote 29
WWW. DOMI NANDOTI . COM. BR
Exerccio [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
WWW. DOMI NANDOTI . COM. BR
Exerccio [10] (TRE-14/2011/FCC)
Em relao ao Tomcat INCORRETO afirmar que
a) pode atuar como servidor web/HTTP autnomo.
b) um servidor onde so instaladas Servlets para tratar as
requisies que o servidor receber.
c) pode funcionar como parte integrante de um servidor de aplicaes
como o JBoss AS.
d) pode ser classificado como um servidor de aplicaes Java EE
completo.
e) configurvel para efetuar autenticao em um servidor LDAP.

Professor Marcelo Pacote - @professorpacote 31
WWW. DOMI NANDOTI . COM. BR
Exerccio [11] (TRT-GO/2008/FCC)
Um conjunto de Servlets, pginas JSP, classes Java,
bibliotecas, cones, pginas HTML e outros elementos, que
podem ser empacotados juntos pelos desenvolvedores, deve
ser instalado no Tomcat sob o diretrio
a) bin.
b) conf.
c) logs.
d) webapps.
e) work.

Professor Marcelo Pacote - @professorpacote 32
WWW. DOMI NANDOTI . COM. BR
Exerccio [12] (TRE-ES/2011/Cespe)
( ) O Tomcat, servidor de aplicaes Java para Web,
um software livre de cdigo aberto, que surgiu do conceituado
projeto Apache Jakarta, com o apoio e endosso oficial da Sun
Microsystems como implementao de referncia para as
tecnologias Java Servlet e JavaServer Pages (JSP).

Professor Marcelo Pacote - @professorpacote 33
WWW. DOMI NANDOTI . COM. BR
Exerccio [13] (MEC/2008/FGV/Analista SO) (1/2)
Devido a popularizao da plataforma Java, o termo servidor de aplicao
frequentemente uma referncia a "Servidor de aplicao J2EE". Acerca
de Servidores de Aplicaes, analise as seguintes afirmativas:
I. O servidor WebSphere Application Server da IBM e o WebLogic Server da
BEA Systems so dois conhecidos servidores J2EE comerciais.
II. Os mdulos web podem ser implementados usando servlets e JSP e a
lgica de negcio por meio de EJBs.
III. A plataforma J2EE disponibiliza padres para os containers web e EJB.
O Tomcat um exemplo de container de software livre, onde os mdulos
web podem ser publicados.

Professor Marcelo Pacote - @professorpacote 34
WWW. DOMI NANDOTI . COM. BR
Exerccio [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
WWW. DOMI NANDOTI . COM. BR
Exerccio [14] (TJ-ES/2011/CESPE)
( ) O Tomcat e o Glassfish, servidores de aplicaes Java
(conteiner servlet), so open source e compatveis com
aplicaes escritas na arquitetura JEE 6; no entanto, ao
contrrio do Tomcat, o Glassfish no suporta executar
aplicaes escritas em JSP (Java server pages).
Professor Marcelo Pacote - @professorpacote 36
WWW. DOMI NANDOTI . COM. BR
Ciclo de Vida de Servlets
Professor Marcelo Pacote - @professorpacote 37
WWW. DOMI NANDOTI . COM. BR
Ciclo de Vida
Professor Marcelo Pacote - @professorpacote 38
WWW. DOMI NANDOTI . COM. BR
Exerccio [15] (TRE-SE/2007/FCC)
Quando um servlet carregado pela primeira vez para a
mquina virtual Java do servidor
a) ocorre um destroy() no processo cliente.
b) o seu mtodo init() invocado.
c) o mtodo service() definido.
d) ocorre a execuo do mtodo getOutputStream().
e) o seu mtodo stream() invocado.

Professor Marcelo Pacote - @professorpacote 39
WWW. DOMI NANDOTI . COM. BR
Exerccio [16] (TRE-CE/2012/FCC) (1/2)
No contexto do ciclo de vida de um servlet, considere:
I. Quando o servidor recebe uma requisio, ela repassada para o
container que, por sua vez, carrega a classe na memria e cria uma
instncia da classe do servlet.
II. Quando um servlet carregado pela primeira vez para a mquina
virtual Java do servidor, o mtodo init() invocado, para preparar recursos
para a execuo do servio ou para estabelecer conexo com outros
servios.
III. Estando o servlet pronto para atender as requisies dos clientes, o
container cria um objeto de requisio (ServletRequest) e de resposta
(ServletResponse) e depois chama o mtodo service(), passando os
objetos como parmetros.
Professor Marcelo Pacote - @professorpacote 40
WWW. DOMI NANDOTI . COM. BR
Exerccio [16] (TRE-CE/2012/FCC) (2/2)
IV. O mtodo 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
WWW. DOMI NANDOTI . COM. BR
Servlets HTTP
Professor Marcelo Pacote - @professorpacote 42
WWW. DOMI NANDOTI . COM. BR
Exerccio [17] (DPE-SP/2010/FCC)
Servlets so projetadas para fornecer aos desenvolvedores uma
soluo JAVA para criar aplicaes web. Para criar Servlets
necessrio importar as classes padro de extenso 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
WWW. DOMI NANDOTI . COM. BR
Servlets
Professor Marcelo Pacote - @professorpacote 44
WWW. DOMI NANDOTI . COM. BR
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
WWW. DOMI NANDOTI . COM. BR
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> Sada da Servlet</ H1>");
out.println("< p> Ol, " + user);
out.println(<p> Seu endereo IP + request.getRemoteAddr());
out.println("</ BODY></ HTML>");
out.close();
}
}
Professor Marcelo Pacote - @professorpacote 46
WWW. DOMI NANDOTI . COM. BR
Pgina recebida no Browser
Url da requisio:
http://servidor:8080/ServletSimples?usuario=Package
Professor Marcelo Pacote - @professorpacote 47
WWW. DOMI NANDOTI . COM. BR
Exerccio [18] (TRANSPETRO/2012/CESGRANRIO) (1/2)
Suponha que uma aplicao WEB construda com a linguagem Java
contm uma varivel de sesso que faz referncia a um objeto da
classe Usuario.
Suponha, tambm, que haja nessa aplicao uma funo de nome
doGet, cuja assinatura apresentada a seguir.
Note que esse mtodo possui um parmetro 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [18] (TRANSPETRO/2012/CESGRANRIO) (2/2)
Suponha ainda que existe uma varivel de sesso cuja referncia feita pela
cadeia de caracteres "usuario".
Qual instruo usa corretamente o parmetro request para atribuir o objeto
armazenado na varivel de sesso a uma varivel de referncia do tipo
Usuario e denominada usr, definida no corpo da funo 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
WWW. DOMI NANDOTI . COM. BR
Servlets HTTP
Professor Marcelo Pacote - @professorpacote 50
WWW. DOMI NANDOTI . COM. BR
Mtodos doGet() e doPost()
Professor Marcelo Pacote - @professorpacote 51
WWW. DOMI NANDOTI . COM. BR
Exerccio [19] (PETRO/2012/CESGRANRIO/INFRA) (1/4)
Seja o cdigo 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [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
WWW. DOMI NANDOTI . COM. BR
Exerccio [19] (PETRO/2012/CESGRANRIO/INFRA) (3/4)
Sobre esse cdigo, do qual foram omitidas as declaraes de
importao e o mtodo getServletInfo por conciso, considere
as afirmativas a seguir.
I - Como o mtodo service() no foi redefinido, o container no
saber qual mtodo chamar para cada tipo de pedido, gerando
uma exceo.
II - Como o mtodo init() no foi redefinido, o construtor padro
da classe me ser chamado.
III - Como o mtodo destroy() no foi redefinido, o container
gerar um erro registrando-o no arquivo de logs ao terminar
este aplicativo.
Professor Marcelo Pacote - @professorpacote 54
WWW. DOMI NANDOTI . COM. BR
Exerccio [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
WWW. DOMI NANDOTI . COM. BR
Estrutura de uma aplicao Web
Professor Marcelo Pacote - @professorpacote 56
WWW. DOMI NANDOTI . COM. BR
Exemplo de web.xml (1/2)
Professor Marcelo Pacote - @professorpacote 57
WWW. DOMI NANDOTI . COM. BR
Exemplo de web.xml (2/2)
Professor Marcelo Pacote - @professorpacote 58
WWW. DOMI NANDOTI . COM. BR
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
WWW. DOMI NANDOTI . COM. BR
Exerccio [20] (TJ-RO/2008/CESGRANRIO)
Aplicaes web so empacotadas em um arquivo WAR para serem
disponibilizadas em servidores de aplicaes como o Tomcat e o Oracle
Application Server. Sobre a estrutura de um arquivo WAR, correto afirmar que:
a) o cdigo 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 domnio ficam em subpastas de WEB-
INF/classes.
d) arquivos JSP, imagens e outros contedos diretamente acessveis aos clientes
web da aplicao ficam em subpastas de WEB-INF/web.
e) arquivos JAR ficam em META-INF/lib.

Professor Marcelo Pacote - @professorpacote 60
WWW. DOMI NANDOTI . COM. BR
Exerccio [21] (AGECOM/2010/IC) (1/2)
Um servlet um objeto java que recebe requisies
respondendo-as conforme cada solicitao, como uma pgina
HTML gerada dinamicamente. O grfico abaixo ilustra isso:
Professor Marcelo Pacote - @professorpacote 61
WWW. DOMI NANDOTI . COM. BR
Exerccio [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 mtodo chamado doGet ou doPost.
( ) A interface Servlet possibilita o uso apenas do protocolo HTTP.
( ) Diversas requisies podem ser feitas mesma servlet, em tempos
diferentes, em um nico servidor.
( ) A tag <www-pattern> possibilita flexibilidade de disponibilizar uma
servlet atravs de vrias URLs de um caminho.
( ) O tratamento de erros em uma servlet configurado no arquivo
www.xml.
Professor Marcelo Pacote - @professorpacote 62
WWW. DOMI NANDOTI . COM. BR
Mtodos 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 contedo da resposta j foi enviado ao cliente
public void reset()
Limpa o contedo do buffer
public void flushBuffer()
Fora o envio do contedo do buffer ao cliente.
Professor Marcelo Pacote - @professorpacote 63
WWW. DOMI NANDOTI . COM. BR
Exerccio [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
WWW. DOMI NANDOTI . COM. BR
Exerccio [22] (MPU/2010/CESPE) (2/3) - adaptada
( ) Em um continer Servlet, a execuo do programa MpuServlet1 a seguir
implica, tambm, a execuo 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [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 especificao 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 servlets service method is
called. If the response has been committed, an IllegalStateException must
be thrown.
Professor Marcelo Pacote - @professorpacote 66
WWW. DOMI NANDOTI . COM. BR
Exerccio [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 prximo slide)
} catch (Exception e){}
out.close();
}
}
Professor Marcelo Pacote - @professorpacote 67
WWW. DOMI NANDOTI . COM. BR
Exerccio [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("nmero exibido: " + cont);

( )Na tecnologia Servlet verso 2.4 ou superior, a execuo do programa
apresentado a seguir, em dois browsers distintos e com diferena de tempo de
acesso inferior a 5 segundos permite fornecer o mesmo nmero para essas duas
solicitaes.
Professor Marcelo Pacote - @professorpacote 68
WWW. DOMI NANDOTI . COM. BR
Gabarito dos Exerccios
[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
WWW. DOMI NANDOTI . COM. BR
WWW. DOMI NANDOTI .COM. BR

Professor Marcelo Pacote @professorpacote
WWW. DOMI NANDOTI . COM. BR
O tipo de contedo de respostas para o navegador Web,no
contexto de servlets, definido no mtodo
a) HttpServletResponse.setContentType().
b) HttpServlet.doOptions().
c) HttpServletRequest.getSession().
d) Servlet.service().
e) Servlet.level().
Exerccio [01] (ANA/ESAF/2009)
Professor Marcelo Pacote - @professorpacote 71
WWW. DOMI NANDOTI . COM. BR
A tecnologia mais adequada para sistemas de objetos
distribudos que compreendem o suporte a diferentes
linguagens de programao e plataformas de execuo
a) CORBA.
b) DCOM.
c) Java RMI.
d) DCE.
e) RPC.
Exerccio [02] (STN/ESAF/2008)
Professor Marcelo Pacote - @professorpacote 72
WWW. DOMI NANDOTI . COM. BR
Exerccio [03] (PRODAM-AM/2010/FUNCAB) (1/2)
Sejam as seguintes assertivas sobre o Tomcat 5.5:
I. Caso se queira apenas executar aplicaes sobre o Tomcat,
no necessrio instalar o JDK, pois o JRE suficiente.
II. Essa verso implementa um container EJB.
III. Pode ser classificado como um container Servlet/JSP.
Marque a alternativa correta em relao s assertivas acima.


Professor Marcelo Pacote - @professorpacote 73
WWW. DOMI NANDOTI . COM. BR
Exerccio [03] (PRODAM-AM/2010/FUNCAB) (2/2)
a) Apenas as assertivas I e II so verdadeiras.
b) Apenas as assertivas I e III so verdadeiras.
c) Apenas as assertivas II e III so verdadeiras.
d) Todas as assertivas so verdadeiras.
e) Todas as assertivas so falsas.

Professor Marcelo Pacote - @professorpacote 74
WWW. DOMI NANDOTI . COM. BR
Exerccio [04] (TRT-4/2011/FCC) (1/2)
Considere:
I. Cobre parte da especificao JEE porm no 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. distribudo pela Sun como software proprietrio e
referncia para as tecnologias Java Servlet e JavaServer Pages.

Professor Marcelo Pacote - @professorpacote 75
WWW. DOMI NANDOTI . COM. BR
Exerccio [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
WWW. DOMI NANDOTI . COM. BR
Exerccio [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 implcitos. atravs do objeto aplicao
(application object) que so rastreadas as informaes de um
cliente especfico entre mltiplas requisies.

Professor Marcelo Pacote - @professorpacote 77
WWW. DOMI NANDOTI . COM. BR
Exerccio [06] (TCU/2010/CESPE)
Com relao s tecnologias para desenvolvimento web em Java
que podem ser empregadas no sistema descrito no texto, julgue
o item a seguir.
( ) No desenvolvimento de contedos para apresentao, o uso
de facelets traz vantagens em relao ao uso de JSP. Uma
delas a maior modularidade, com o uso de templates e
componentes compostos (composite).

Professor Marcelo Pacote - @professorpacote 78
WWW. DOMI NANDOTI . COM. BR
Exerccio [07] (TRE-ES/2011/CESPE)
Julgue os itens que se seguem, referentes a fundamentos de
computao e a linguagens de programao.
( ) Um servlet uma classe Java utilizada para ampliar a
capacidade de acesso dos servidores a aplicaes por meio do
modelo requisio-resposta. Embora os servlets possam responder
a um tipo especfico de requisio hospedada em servidores web,
os servlets no respondem a requisies genricas.

Professor Marcelo Pacote - @professorpacote 79
WWW. DOMI NANDOTI . COM. BR
Exerccio [08] (COFEN/2010/CONSULPLAN) (1/2)
Com base em Containers ou API de uma plataforma de programao para
servidores na linguagem de programao Java Enterprise Edition analise:
I. Servlets so utilizados para o desenvolvimento de aplicaes Web com
contedo dinmico. Ele contm uma API que abstrai e disponibiliza os
recursos do servidor Web de maneira simplificada para o programador.
II. EJBs (Enterprise Java Beans) so utilizados no desenvolvimento de
componentes de software. Eles permitem que o programador se concentre
nas necessidades do negcio do cliente, enquanto questes de
infraestrutura, segurana, disponibilidade e escalabilidade so
responsabilidade do servidor de aplicaes.
Professor Marcelo Pacote - @professorpacote 80
WWW. DOMI NANDOTI . COM. BR
Exerccio [08] (COFEN/2010/CONSULPLAN) (2/2)
III. JPA (Java Persistence API) utilizado para conexo
persistente com base de dados e aplicaes 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [09] (TRE-MT/2010/CESPE) (1/2)
Quanto s tecnologias Java, assinale a opo correta.
a) Clientes J2EE so necessariamente pginas web dinmicas
que normalmente no fazem acessos a banco de dados, nem
executam regras de negcio complexas.
b) Em uma aplicao J2EE tpica, um EJB criado, controlado e
destrudo pela aplicao cliente.
c) JSP pode ser usado para desenvolvimento de pginas web
dinmicas. A lgica que gera o contedo dessas pginas
descrita utilizando-se a linguagem Java.

Professor Marcelo Pacote - @professorpacote 82
WWW. DOMI NANDOTI . COM. BR
Exerccio [09] (TRE-MT/2010/CESPE) (2/2)
d) Um componente J2EE uma unidade funcional de software
autocontida, escrito na linguagem de programao Java e
executado exclusivamente em servidores.
e) JPA lida com a forma como dados relacionais so mapeados
para objetos Java e com a forma como esses objetos so
armazenados em um banco de dados relacional.

Professor Marcelo Pacote - @professorpacote 83
WWW. DOMI NANDOTI . COM. BR
Exerccio [10] (SENADO/2008/FGV)
Ao desenvolver uma aplicao sob a plataforma Java EE 5, isso
implica que:
a) a aplicao ser compatvel com as verses anteriores do Java
Enterprise Edition J2EE 1.4.
b) a aplicao dever usar o JavaServer Faces.
c) a aplicao poder usar menos arquivos XML do que se fosse
desenvolvida na plataforma J2EE 1.4.
d) a aplicao ser compatvel com a verso 6.0 do Apache Tomcat.
e) o desenvolvedor poder utilizar o J2EE 1.4 SDK para testar a
aplicao.
Professor Marcelo Pacote - @professorpacote 84
WWW. DOMI NANDOTI . COM. BR
Exerccio [11] (STJ/2008/CESPE)
( ) Na plataforma J2EE, uma aplicao web para a Internet
pode ser composta por servlets, Java Server Pages (JSP) e
pginas HTML. Nessas aplicaes, a apresentao dos dados
pode ser separada da lgica do negcio, adotando-se o estilo de
arquitetura model view controller (MVC). Nesse caso, pode-se
usar servlets operando como controladoras que recebem as
solicitaes dos usurios e providenciam o processamento das
mesmas. Em uma mesma aplicao, entretanto, s pode existir
um servlet operando como controladora.

Professor Marcelo Pacote - @professorpacote 85
WWW. DOMI NANDOTI . COM. BR
Exerccio [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 so 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [13] (DATAPREV/2012/QUADRIX)
Um servidor de aplicaes Java EE completo possui continer:
a) web, apenas.
b) EJB, apenas.
c) web, continer JDBC e continer Bean.
d) web e continer EJB.
e) de persistncia, continer web e continer EJB.


Professor Marcelo Pacote - @professorpacote 87
WWW. DOMI NANDOTI . COM. BR
Exerccio [14] (TRT-PR/2010/FCC)
NO se trata de uma afirmativa correta sobre o servidor web
Tomcat:
a) Executa as mesmas funes que o servidor web Apache
HTTP Server.
b) Cuida basicamente de processamento de aplicaes 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
WWW. DOMI NANDOTI . COM. BR
Exerccio [15] (Serpro/2013/Cespe/Desv./77)
( ) No Tomcat 7, o uso de log hierrquico depende de
implementaes especficas.
Professor Marcelo Pacote - @professorpacote 89
WWW. DOMI NANDOTI . COM. BR
Exerccio [16] (Serpro/2013/Cespe/Desv./103)
( ) RMI (remote method invocation) o protocolo de
programao que, utilizando WAP (wireless application
protocol), permite a construo de interface homem-mquina
em dispositivos mveis.
Professor Marcelo Pacote - @professorpacote 90
WWW. DOMI NANDOTI . COM. BR
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

Você também pode gostar