Desenvolvimento de Projetos e Aplicações Web

Slides:



Advertisements
Apresentações semelhantes
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material II-Bimestre Conceitos de lógica.
Advertisements

Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material IV-Bimestre Tratamento de.
ARQUITETURA EM CAMADAS
Laboratório de Informática Introdução à Linguagem HTML
Laboratório de Informática Imagens 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Análise de Casos de Uso.
Projeto de Sistemas de Software
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Alcides Calsavara JSP JavaServer Pages Alcides Calsavara
Java Server Pages (JSPs)
Interação Cliente Servidor
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Auditoria de Segurança da Informação
Tecnologia para Web JavaScript
Aula 8 Orientação à Objetos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Aula 10 Manipulação de Exceções
Prof.: Carlos Hairon R. Gonçalves
Geração Dinâmica de Páginas com JSP Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação.
Prof. Marco Aurelio N. Esteves
Model-View-Controller (MVC) em Aplicações Web Eduardo Martins Guerra Desenvolvimento de Soluções WEB.
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Tecnologias para Internet
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Análise de Casos de Uso Alexandre Motnteiro.
Ferramentas para Sistema Web Sistemas de Informação Aula 10 – 15/05/2013.
JAVA: Conceitos Iniciais
Aplicativos Web Com Orientação a Objetos
Desenvolvimento WEB I Camila Nunes
PÁginas Dinâmicas Programação Web.
Introdução ao Desenvolvimento Web
Capítulo 2 Java Servlets.
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
April 05 Prof. Ismael H. F. Santos - 1 Módulo IVb - JSP Prof. Ismael H F Santos.
SISTEMAS OPERACIONAIS
Cliente Servidor HTML JSP CSS Tomcat Servlet MySQL
Linguagem de Programação JAVA
 Muitas aplicações se faz necessário o acompanhamento da navegação do usuário armazenando informações específicas de cada um.  É comum hoje em dia acessarmos.
Configuração do Ambiente de Desenvolvimento
Conceitos de J2EE para a WEB
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Prof. Alexandre Monteiro Recife
Professor: Márcio Amador
Servlets e JSP Desenvolvimento de Aplicações Web
JSP e Servlets ISEP – LP2 Filipe Costa – /2004.
UML - Unified Modeling Language
Arquitetura das JSP - Aula 2
Aplicações Web com Orientação a Objetos
Planilha Eletrônica - Excel
Aplicativos Web Com Orientação a Objetos – Java Server Pages(JSP) Prof. Odair
JSP JavaServer Pages Marco Antonio, Arquiteto de Software – TJDF Dezembro/2005.
Padrões de Interação com o Usuário
PEC - JSP Jobson Ronan Objetivos Esta aula apresenta tudo o que é necessário para implementar servlets escrevendo JavaServer Pages.
Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos
Passos Básicos para o Desenvolvimento de TagLibs Camila Nunes
Introdução à JSP JavaServer Pages Alcides Calsavara.
Programação Distribuída em Java Aula 09 - JSP. Na aula passada vimos: Aspectos gerais de segurança em Java policytool Instalação de políticas de segurança.
Curso de JSP Básico Camilo Porto Nunes.
Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Student Tech Clubs Desenvolvimento WEB Antonio Ladeia Graduando em Tecnologia em Análise e Desenvolvimento de Sistemas Instituto Federal da Bahia Introdução.
Aplicativos para Internet Prof. Wolley W. Silva
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Desenvolvimento WEB II Aula 3 – Conexão com o Banco de Dados
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Aplicativos para internet Prof. Wolley
Prof. Rogerio Alessandro Bueno 1 JavaServer Pages (JSP) Prof. Rogério A. Bueno.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Java TM Platform, Enterprise Edition (Java EE) Projeto de Sistemas de Software.
Transcrição da apresentação:

Desenvolvimento de Projetos e Aplicações Web cecafac@gmail.com

JSP

Conteúdo Introdução Arquitetura e funcionamento Sintaxe Elementos

JavaServer Pages Tecnologia Java para criação de aplicações Web com conteúdo dinâmico como HTML e XML JSP Permite separação de conteúdo dinâmico e estático JSP Suporta scripting e tags

Arquitetura JavaServer Pages Atua como a camada Web de acesso a aplicações n-tier Utiliza o protocolo HTTP para comunicação com browsers Requisições JSP são atendidas por servlets

Hello World <%@ page info="a hello world example" %> <html><head> <title>Hello, World</title> </head> <body bgcolor="#ffffff“ background="back.gif"> <table><tr><td width=150>   </td> <td width=250 align=right> <h1> <%System.out.println(“Hello, World!”); %> </h1> </td></tr> </table></body></html>

Modelo de Requisições JSP Engine Request Response <%@ page info="a hello world example" %> <html><head><title>Hello, World</title></head> <body bgcolor="#ffffff“ background="back.gif"> <%@ include file="dukebanner.html" %> <table><tr><td width=150>   </td> <td width=250 align=right> <h1>Hello, World!</h1> </td></tr> </table></body></html> Request Response

JSP Engine O JSPEngine é um software para: Atender requisições de páginas JSP Transformar uma página JSP requisitada em um servlet Executar o servlet para atender as requisições JSP correspondentes Pode ser acoplado a um servidor web ou a um servidor de aplicações

Mecanismo (Funcionamento) Servidor Web JSP já traduzido em servlet ? Não Traduz JSP em Servlet Sim GET, POST JSP foi modificado ? Sim Compila o Servlet Não Carrega o Servlet Executar o Servlet HTTP RESPONSE

Sintaxe JSP

Elementos JSP Organizados em 4 grupos: Tags especiais Interpretados no servidor (não chegam ao browser) Organizados em 4 grupos: Comentários Diretivas e Taglibs Scripting Elements Expressões, Declarações e Scriptlets Ações

Elementos JSP <%@ ... %> <%! ... %> <%= ... %> Tag Diretivas <%@ ... %> Declarações <%! ... %> Expressões <%= ... %> Scriptlets <% ... %> Comentários <%-- ... --%> Custom Tags <prefixo:elemento ... />

Comentários Utilizados para comentar o código Não são processados pelo container JSP Sintaxe: <%-- Este é um comentário --%> <%//Este é outro comentário %>

Diretivas Utilizadas para enviar mensagens para o container JSP, afetando a estrutura do Servlet a ser gerado. Sintaxe: <%@ directiveType attribute= =“valor” %> directiveType: {include, page e taglib} Include e Page

Diretivas – Include Utilizado para incluir arquivos estáticos no documento JSP Sintaxe JSP: <%@ include file=“URL” %> Exemplos <%@ include file=“Reverso.jsp” %> Topo, base, miolo, etc.

Diretivas – page Utilizado para descrever inúmeros atributos que serão considerados durante a criação do Servlet, tais como Importação de pacotes; Tipo de conteúdo; Retorno; Etc. Sintaxe JSP: <%@ page attribute=“valor” %>

Diretivas – page Define características válidas para toda a página JSP e qualquer trecho de página incluída com a diretiva @include Pode ser usada mais de uma vez na mesma página

Diretivas – page Cada opção só pode aparecer uma vez na página, exceção feita à opção import Embora possa ser colocada em qualquer lugar da página, é recomendável colocá-la no início do arquivo JSP

Diretivas – page Atributos de <%@page attribute=“valor”%>

import Pacotes/classes que serão utilizados no JSP Deve aparecer antes de referenciar a classe Pode-se separar pacotes por vírgula ou utilizar a opção import várias vezes <%@ page import=“java.io.*, java.util.*” %>

session session = true|false Quando true, a página utilizará o recurso de sessão HTTP e um objeto implícito session deverá estar disponível para a página JSP Quando false, a página não utilizará o recurso de sessão HTTP e qualquer referência ao objeto implícito session causará um erro em tempo de tradução

Tag Extensions Permite criação de tags personalizadas Cada tag deve possuir uma classe Java que implementa sua funcionalidade Propósitos diversos: Manipulação de XML; Acesso a BD; IO;... Sintaxe: <%@ taglib uri=“URIForLibrary” prefix=“tagPrefix” %>

Taglibs - Exemplo <%@ taglib uri=“http://www.company.com/tags”prefix=“public” %> ... <public:loop> .... </public:loop>

Scripting

Elementos de Scripting São fragmentos de código java inseridos em uma página JSP Declarações de variáveis, blocos de códigos, etc Subdividem-se em três categorias: Expressões Declarações Scriptlets

Declarações Declarar variáveis e métodos usados nos Scriptlets e expressões Sintaxe: <%! ... %> Exemplos: <%! int i = 0; %> <%! public String title() { return “A”;}; %> <%! public final static String[] meses = {"jan","fev","mar","abr","mai","jun"}; %> <%! public static String getMesAtual() { Calendar c = new GregorianCalendar(); return meses[c.get(Calendar.MONTH)]; } %>

Declarações – Exemplo <html><head><title>Declarações JSP </title></head> <BODY> <H1>Declarações JSP</H1> <%! private int contadorAcessos=0; %> <H2>Número de acessos a essa página desde reboot do server: <%= ++contadorAcessos %> </H2> </body></html>

Scriptlets Fragmentos de código Java Sintaxe: <% ... %> Exemplo: for(int i=0; i<100; i++) out.println(i); %>

Scriptlets Se quisermos que alguma saída apareça na página HTML resultante, devemos usar o out <% String queryData = request.getQueryString(); out.println(“Query String: " + queryData); %>

Scriptlets O código dentro de um scriptlet é inserido na página exatamente como escrito e qualquer HTML estático antes ou depois de um scriptlet é convertido em comandos print Por exemplo, o seguinte código contém texto e scriptlets: <% if (Math.random() < 0.5) { %> <B>Bom</B> dia! <% } else { %> <B>Mau</B> dia! <% } %> Será convertido (no servlet) para: if (Math.random() < 0.5) { out.println("Have a <B>nice</B> day!"); } else { out.println("Have a <B>lousy</B> day!"); }

Expressões Expressões enviadas diretamente ao output stream corrente Insere o valor de um atributo ou chamada de método em página JSP Sintaxe: <%= expressão %> (sem o ;) Equivale a out.print(expressão), portanto, expressão não pode terminar em ; Exemplo: <%= new Date() %> Apenas uma expressão Java

Exemplo <HTML> <BODY> <%// Isso é um scriptlet. // Note que a variável “hoje"     // é declarada aqui e usada na expressão mais adiante   out.println( “Data atual");   java.util.Date hoje = new java.util.Date(); %> <b>Olá, hoje é <%= hoje %></b> </BODY> </HTML>

Objetos implícitos Objetos disponíveis nas páginas JSP sem a necessidade de declaração Exceto session que depende de @page para ser ativado/desativado Cada objeto implícito tem uma classe ou interface definida na API de Java out, request, response, session,...

Objetos implícitos: request Representa a requisição que causou a chamada do serviço Disponibiliza informações sobre os parâmetros passados pela requisição: tipo (GET, POST); headers (cookies) Objeto da classe HttpServletRequest

Objetos implícitos: request - Exemplos URL no browser: http://servidor/programa.jsp?nome=Fulano&id=5 Recuperação dos parâmetros no JSP: <% String nome = request.getParameter("nome"); String idStr = request.getParameter("id"); int id = Integer.parseInt(idStr); %> <p>Bom dia <%=nome %>! (cod: <%=id %>) Cookies Cookie[] c = request.getCookies()

Objetos implícitos: response Representa a resposta enviada à requisição que causou o serviço Permite a atribuição de valores para o cabeçalho da resposta, criação de cookies, definição de parâmetros, etc.

Objetos implícitos: session Sessão estabelecida entre o cliente e o servidor Armazena informações que persistem por tempo determinado, podendo ser acessadas através de diversas páginas e requisições ao servidor

Objetos implícitos: session A sessão tem uma relação direta com o browser, isto é, duas janelas de um browser compartilham a mesma sessão A maneira como as sessões são mantidas depende do JSP Engine

Objetos implícitos: out Output stream para escrita da resposta no cliente Disponibiliza uma série de métodos para a escrita e controle do buffer de saída da página de resposta

Objetos implícitos: out Equivalente a response.getWriter(); Principais métodos print() e println() Os trechos de código abaixo são equivalentes <% for (int i = 0; i < 10; i++) { out.print("<p> Linha " + i); } %> OU <% for (int i = 0; i < 10; i++) { %> <p> Linha <%= i %> <% } %>

Referências Deitel, capítulo 27