Buscar

08 - jsp

Prévia do material em texto

W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR 
JSP 
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 
Servlet x JSP 
 Servlets obrigam o desenvolvedor a incluir código HTML dentro do 
código Java. 
 A codificação da formatação das páginas é trabalhosa. 
 Qualquer modificação visual na página envolve atuação em 
código Java – Web Designer X Programador 
 No contêiner, todas as páginas JSP são transformadas em servlets (e 
compiladas) 
 
 
 
 Date hoje=new Date(); 
 out.println("<body>"); 
 out.println("<p>A data de hoje é " + hoje + ".</p>"); 
 out.println("<body>"); 
3 Professor Marcelo Pacote - @professorpacote 
W W W. D OMI NAND OTI .COM.B R 
Exercício [01] (PRODAM-AM/2010/FUNCAB) 
Que tipo de componente Java é produzido pela compilação sem 
erros de uma página JSP? 
a) Um Servlet. 
b) Uma Applet. 
c) Um EJB. 
d) Um JavaArchiveFile (JAR). 
e) Um WebArchiveFile (WAR). 
4 Professor Marcelo Pacote - @professorpacote 
W W W. D OMI NAND OTI .COM.B R 
Java Server Pages 
 A forma mais simples de criar documentos JSP, é 
1. Mudar a extensão de um arquivo HTML para .jsp 
2. Colocar o documento em um servidor que suporte JSP 
 Fazendo isto, a página será transformada em um servlet 
 A compilação é feita no primeiro acesso 
 Nos acessos subsequentes, a requisição é redirecionada ao servlet que foi gerado 
a partir da página 
 Transformado em um JSP, um arquivo HTML pode conter blocos de código 
(scriptlets): <% … %> e expressões <%= … %> que são os elementos mais 
frequentemente usados 
 
 
 
<p>Texto repetido: 
<% for (int i=0; i <10; i++) { %> 
 <p>Esta é a linha <%=i %> 
<% }%> 
Professor Marcelo Pacote - @professorpacote 5 
W W W. D OMI NAND OTI .COM.B R 6 
Java Server Pages 
Professor Marcelo Pacote - @professorpacote 
 Quando uma requisição é mapeada a uma página JSP, o container 
 Verifica se o servlet correspondente à página é mais antigo que a página (ou 
se não existe) 
 Se o servlet não existe ou é mais antigo, a página JSP será compilada para 
gerar novo servlet, em seguida, a requisição é repassada ao servlet 
 Se o servlet está atualizado, a requisição é redirecionada para ele 
 Deste ponto em diante, o comportamento equivale ao ciclo de vida do servlet, 
mas os métodos são diferentes 
 Se a servlet ainda não estiver em memória, ela é instanciada, carregada e 
seu método jspInit() é chamado 
 Para cada requisição, o método _jspService (req, res) é chamado. Ele é 
resultado da compilação do corpo da página JSP 
 Ao término do ciclo de vida*, o método jspDestroy() é chamado. 
 
 
 
 
W W W. D OMI NAND OTI .COM.B R 7 Professor Marcelo Pacote - @professorpacote 
Ciclo de vida de páginas JSP 
 JSP Container 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Servlet gerado a partir 
da página JSP 
Gere resposta 
 _jspService() 
Resposta 
HTTP 
Existe 
servlet ? 
 Compile 
 servlet 
Não 
A servlet foi 
inciada? 
 
Invoque 
 jspInit() 
 
Não 
Requisição HTTP 
Servidor HTTP 
W W W. D OMI NAND OTI .COM.B R 
Sintaxe 
Todos são interpretados no servidor (jamais chegam ao 
browser) 
diretivas: <%@ … %> 
declarações: <%! ... %> 
 expressões: <%= ... %> 
 scriptlets: <% … %> 
 comentários: <%-- … --%> 
 ações: <jsp:ação ... /> 
 custom tags: <prefixo:elemento … /> 
 
 
 
Professor Marcelo Pacote - @professorpacote 8 
W W W. D OMI NAND OTI .COM.B R 
 
 
 
 
 
 
 
Sintaxe (1/2) 
<%@ page import="java.util.*" %> 
<%@ page import=“br.com.dominandoti.MyLocales" %> 
<%@ page contentType="text/html; charset=iso-8859-1" %> 
<html><head><tittle>Datas </title></head><body bgcolor="white"> 
<a href="index.jsp">Home</a> 
<h1>Datas</h1> 
<jsp:useBean id="locale" scope="application" 
 class=“br.com.dominandoti.MyLocales"/> 
<form name="localeForm" action="locale.jsp" method=post"> 
<b>Locale: </b><select name=locale> 
 
 
Professor Marcelo Pacote - @professorpacote 9 
W W W. D OMI NAND OTI .COM.B R 
 
 
 
 
 
 
 
 
 
 
 
Sintaxe (2/2) 
<% 
 Iterator i=locales.getLocaleNames().iterator(); 
 String selectedLocale=request.getParameter("locale"); 
 while (i.hasNext()) { 
 String locale=(string) i.next(); 
 if (selectedLocale !=null && selectedLocale.equals (locale)) { 
 out.print("<option selected>"+locale+"</option>"); 
 } else { %> 
 
<option><%=locale %></option> 
<% } 
 } %> 
</select><input type="submit" name="Submit" value=“Obter data"> 
</form> 
<p><jsp:include page="date.jsp" flush="true" /> 
</body></html> 
 
 
Professor Marcelo Pacote - @professorpacote 10 
W W W. D OMI NAND OTI .COM.B R 
Diretiva 
 Sintaxe: 
 <%@ diretiva atrib1 atrib2 … %> 
 Principais diretivas: 
 page: atributos relacionados à página 
 include: inclui outros arquivos na página 
 taglib: declara uma biblioteca de tags customizadas usadas na página 
 Exemplos 
 <%@ page import="java.net.*, java.io.*" 
 session=“true" isThreadSafe=“true" 
 errorPage="/erro.jsp" %> 
 <%@ include file="navbar.jsp" %> 
 
 
 
Professor Marcelo Pacote - @professorpacote 11 
W W W. D OMI NAND OTI .COM.B R 
Exercício [02] (TRE-SP/2012/FCC) 
As tags utilizadas em uma página JSP para importar classes de 
um pacote, habilitar o uso de bibliotecas de classes (por 
exemplo, JSTL) e incluir arquivos (por exemplo, JSP Fragments) 
são conhecidas como tags 
a) diretivas. 
b) de scriptlet. 
c) de declaração. 
d) de expressão. 
e) standard action. 
 
 Professor Marcelo Pacote - @professorpacote 12 
W W W. D OMI NAND OTI .COM.B R 
Exercício [03] (TRE-CE/2012/FCC) 
<%@ page atributo1="valor1" atributo2="valor2"... %> é a sintaxe 
típica da diretiva Page, em JSP. Um de seus atributos, se definido para 
true, indica o processamento normal do servlet quando múltiplas 
requisições podem ser acessadas simultaneamente na mesma 
instância de servlet. Trata-se do atributo 
a) extends. 
b) import. 
c) isThreadSafe. 
d) session. 
e) autoFlush. 
 
 Professor Marcelo Pacote - @professorpacote 13 
W W W. D OMI NAND OTI .COM.B R Professor Marcelo Pacote - @professorpacote 14 
Declaração 
 Dão acesso ao corpo da classe do servlet. Permitem a declaração de variáveis e métodos em 
uma página 
 Úteis para declarar 
 Variáveis e métodos de instância (pertencentes ao servlet) 
 Variáveis e métodos estáticos (pertencentes à classe do servlet) 
 Classes internas (estáticas e de instância), blocos static, etc. 
 Sintaxe 
 <%! declaração %> 
 Exemplos 
 <%! public final static String [] meses= {"jan", "fev", "mar", "abr", "mai", "jun"}; %> 
 <%! public static String getMes() { 
 Calendar cal= new GregorianCalendar(); 
 return meses [cal.get (Calendar.MONTH)];} 
 %> 
 
 
 
W W W. D OMI NAND OTI .COM.B R 
Expressões e Scriplets 
 Expressões: Quando processadas, retornam um valor que é inserido na página 
no lugar da expressão 
 Sintaxe 
 <%= expressão %> 
 Equivale a out.println (expressão). Logo, não pode terminar em ponto-e-vírgula 
 Todos os valores resultantes das expressões são convertidos em String 
antes de serem redirecionados à saída padrão 
 Scriptlets: Blocos de código que são executados sempre que uma página JSP é 
processada 
 Correspondem a inserção de sequências de instruções no método _jspService 
do servlet gerado 
 Sintaxe 
 <% instruções Java; %> 
 
 Professor Marcelo Pacote - @professorpacote 15 
W W W. D OMI NAND OTI .COM.B R 
Exercício [04] (Serpro/2013/Cespe/Sup./63) 
( ) Um scriptlet na tecnologia JSP (Java server pages) abrange 
todo o código entre "<#" e "#>" 
 
Professor Marcelo Pacote - @professorpacote 16 
W W W. D OMI NAND OTI .COM.B R 
Exercício [05] (MPU/2010/CESPE) - adaptada 
( ) O contêiner, que executa JSP, transforma o programa JSP 
em Servlet, assim, a expressão "<%= Math.random()%>" se 
torna argumento para out.println(). 
 
 
Professor Marcelo Pacote - @professorpacote 17 
W W W. D OMI NAND OTI .COM.B R 
Exercício [06] (SENADO/2008/FGV) – adaptada (1/2) 
A respeito da tecnologia JSP ("Java Server Page"): 
I. Emprega servlets - programas escritos na linguagem Java e 
executados no servidor, em oposição aos applets, executados no 
browser do cliente. 
II. Utiliza páginas JSP, com extensão .jsp, criadas pelo 
desenvolvedor da web e que incluem tags JSP e customizadas, em 
combinação com outras tags estáticas HTML 
III. Disponibiliza uma tecnologia simples e rápida para criar páginas 
que exibem conteúdo gerado estaticamente e que descreve o 
formato e sintaxe da página. 
 
 
 
Professor Marcelo Pacote - @professorpacote 18 
W W W. D OMI NAND OTI .COM.B R 
Exercício [06] (SENADO/2008/FGV) – adaptada (2/2) 
Estão corretas: 
a) I 
b) I e II 
c) I e III 
d) II e III 
e) todas 
 
Professor Marcelo Pacote - @professorpacote 19 
W W W. D OMI NAND OTI .COM.B R 
Exercício [07] (BNDES/2005/NCE) 
Considere as seguintes afirmativas sobre JSP e servlets: 
I. é possível usar uma página JSP para gerar um arquivo de imagem do 
tipo JPEG, GIF ou PNG 
II. um servlet é executado no servidor, ao passo que uma página JSP é 
executada no browser do cliente 
III. uma página gerada por um servlet não pode conter código javascript 
IV. uma página JSP é executada no servidor, enquanto que um servlet é 
executado no browser do cliente 
A quantidade de afirmativas corretas é: 
a) 0 b) 1 c) 2 d) 3 e) 4. 
 
Professor Marcelo Pacote - @professorpacote 20 
W W W. D OMI NAND OTI .COM.B R 
Exercício [08] (AGECOM/2010/IC) – adaptada (1/2) 
Para não termos que criar todos os nossos conteúdos dinâmicos 
dentro de classes, misturando fortemente HTML com código Java, 
precisamos utilizar uma tecnologia que nos permita usar o HTML 
de forma direta, e que também possibilite a utilização do Java. 
Essa tecnologia chama-se JavaServer Pages (JSP). Com relação à 
Java Server Pages (JSP), analise as seguintes afirmativas: 
I. Para escrever scriptlets em uma página JSP, deve-se escrevê-
los entre as tags <% e %>. 
II. Os arquivos JSPs são compilados dentro do Eclipse. 
 
Professor Marcelo Pacote - @professorpacote 21 
W W W. D OMI NAND OTI .COM.B R 
Exercício [08] (AGECOM/2010/IC) – adaptada (2/2) 
III. A linguagem Expression Language é interpretada pelo servlet 
container. 
Estão corretas: 
a) I e II 
b) I e III 
c) II e III 
d) todas 
e) nenhuma 
 
Professor Marcelo Pacote - @professorpacote 22 
W W W. D OMI NAND OTI .COM.B R 
Exercício [09] (INMETRO/2010/CESPE) - adaptada 
Acerca das ferramentas utilizadas para a criação de páginas 
web, julgue os itens: 
( ) A tecnologia JSP (Java server pages) permite a criação de 
páginas web que exibem conteúdo gerado estaticamente. Uma 
página JSP usa scriplets escritos em Java para encapsular a 
lógica que gera o conteúdo exibido pela página. 
( ) Uma página JSP nada mais é do que um arquivo com base 
em HTML que contém códigos Java e possui extensão no 
formato jsp; 
Professor Marcelo Pacote - @professorpacote 23 
W W W. D OMI NAND OTI .COM.B R 
Exercício [10] (SECONT/2009/CESPE) 
( ) No desenvolvimento de uma aplicação web que siga o 
padrão JEE, a tecnologia JSP (Java Server Pages) permite criar 
páginas web com componentes estáticos e dinâmicos; o AJAX 
permite a troca e manipulação de dados XML com comunicação 
assíncrona, utilizando XMLHttpRequest; e o servlet é exemplo 
de servidor de aplicações que contém diretórios como o bin e o 
webapps e é responsável por gerenciar requisições recebidas 
de clientes. 
Professor Marcelo Pacote - @professorpacote 24 
W W W. D OMI NAND OTI .COM.B R 
Exercício [11] (MPU/2010/CESPE) (1/2) - adaptada 
( ) Os programas a seguir, que constituem uma integração entre as tecnologias 
JSP e Servlet, implementam uma solução válida para mostrar o valor obtido, por 
uma empresa, com o lucro ou prejuízo na venda de um produto. 
<html> 
 <body> 
 <form action="VendaServlet" method="POST"> 
 Produto:<input type="text" name="btDesc" value="" size="30" /><br> 
 Compra:<input type="text" name="btCompra" value="" /><br> 
 Venda:<input type="text" name="btVenda" value="" /><br> 
 <input type="submit" value="Executa" name="btExecutar" /> 
 </form> 
 </body> 
</html> 
Professor Marcelo Pacote - @professorpacote 25 
W W W. D OMI NAND OTI .COM.B R 
Exercício [11] (MPU/2010/CESPE) (2/2) - adaptada 
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; 
public class VendaServlet extends HttpServlet { 
 protected void service(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=UTF-8"); 
 PrintWriter out = response.getWriter(); 
 String produto = request.getParameter("btDesc"); 
 float compra = Float.parseFloat(request.getParameter("btCompra")); 
 float venda = Float.parseFloat(request.getParameter("btVenda")); 
 float lucro = venda - compra; 
 out.println("<html> <head> <title>Mpu VendaServlet</title></head><body>"); 
 out.println("<h1>O lucro : " + lucro + "</h1>"); 
 out.println("</body> </html>"); 
 } 
} 
Professor Marcelo Pacote - @professorpacote 26 
W W W. D OMI NAND OTI .COM.B R 
Exercício [12] (ANA/2009/ESAF) – adaptada 
O mecanismo de inclusão, que permite o conteúdo dinâmico ser 
incluído em uma JSP em tempo de solicitação, é denominado: 
a) Ação <jsp:plugin>. 
b) Ação <jsp:include>. 
c) Diretiva include. 
d) Diretiva Page. 
e) Diretiva taglib. 
 
Professor Marcelo Pacote - @professorpacote 27 
W W W. D OMI NAND OTI .COM.B R 
Gabarito 
[01] a 
[02] a 
[03] c 
[04] errado 
[05] c 
[06] b 
[07] b 
[08] b 
[09] ec 
[10] e 
 
 
[11] certo 
[12] b 
Professor Marcelo Pacote - @professorpacote 28 
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 
Exercício [1] (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 MarceloPacote - @professorpacote 30 
W W W. D OMI NAND OTI .COM.B R 
Analise as seguintes afirmações a respeito de JSP: 
I. Em uma aplicação Web, há apenas um objeto page em cada JSP. 
II. Comentários JSP aparecem na resposta ao cliente. 
III. Os objetos com escopo session duram por toda a sessão de navegação do 
cliente. 
Estão corretas: 
a) Apenas I. 
b) Apenas II. 
c) Apenas III. 
d) I, II e III são verdadeiras. 
e) Nenhuma das afirmações é verdadeira. 
Exercício [02] (ANA/ESAF/2009) 
Professor Marcelo Pacote - @professorpacote 31 
W W W. D OMI NAND OTI .COM.B R 
Exercício [03] (MPE-RR/2008/CESPE) [1/2] 
Professor Marcelo Pacote - @professorpacote 32 
W W W. D OMI NAND OTI .COM.B R 
Exercício [03] (MPE-RR/2008/CESPE) [2/2] 
( ) Na aplicação à qual essa página pertence, é declarada uma 
classe de nome DummyCart, a qual está, por sua vez, declarada 
dentro do package sessions. Do mesmo modo, o resultado da 
compilação desta JSP produzirá uma declaração de classe Java, 
que será uma subclasse de HttpServlet. Essa subclasse de 
HttpServlet também será declarada dentro do package sessions. 
( ) A tag usada na linha 3 do código é uma tag padronizada, 
responsável por capturar valores dos parâmetros de um pedido 
http enviado pelo browser do cliente da aplicação. 
 
Professor Marcelo Pacote - @professorpacote 33 
W W W. D OMI NAND OTI .COM.B R 
Exercício [04] (TRT-MA/2009/FCC) 
Em JSP, a diretiva taglib define 
a) uma biblioteca de tags para serem usadas na página. 
b) um conjunto de classes importadas para serem usadas na 
página. 
c) uma nova tag para ser usada na página. 
d) uma biblioteca para ser inserida na página. 
e) um módulo logicamente coesivo. 
 
 
Professor Marcelo Pacote - @professorpacote 34 
W W W. D OMI NAND OTI .COM.B R 
Exercício [05] (TRE-RS/2010/FCC) 
Na diretiva page, do JSP, utiliza-se o atributo import, que 
permite 
a) configurar pacotes. 
b) importar arquivos html. 
c) importar pacotes. 
d) configurar arquivos html. 
e) importar figuras. 
 
 
Professor Marcelo Pacote - @professorpacote 35 
W W W. D OMI NAND OTI .COM.B R 
Exercício [06] (PGE-RJ/2009/FCC) 
Blocos ou trechos de operações em código Java podem ser 
incluídos em uma página JSP por meio de 
a) diretiva page. 
b) diretiva include. 
c) comentário. 
d) taglib. 
e) scriptlet. 
 
 
Professor Marcelo Pacote - @professorpacote 36 
W W W. D OMI NAND OTI .COM.B R 
Gabarito 
[01] errado 
[02] c 
[03] ec 
[04] a 
[05] c 
[06] e 
 
 
Professor Marcelo Pacote - @professorpacote 37

Continue navegando