Baixe o app para aproveitar ainda mais
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
Compartilhar