Desenvolvimento WEB I Camila Nunes

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

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.
Desenvolvimento de aplicações Web com J2EE Servlets
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Objetos Implícitos Contextuais
JSP Segundo Semestre – 2008 Professor Glaucio Bianchini
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Modelo Cliente-Servidor
Desenvolvimento Web em Java com Java Server Faces (JSF)
Projeto de Sistemas de Software
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
Java Server Pages (JSPs)
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
April 05 Prof. Ismael H. F. Santos - 1 Módulo VI – J ava Standard Template Library (JSTL) Prof. Ismael H F Santos.
Aula 4 Nomes, Vinculações, Tipos e Escopos
Prof.: Carlos Hairon R. Gonçalves
WebWork e JSP Keven andrade
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.
Desenvolvimento de Soluções WEB Escopos de uma Aplicação Web
Classes e objetos P. O. O. Prof. Grace.
Tecnologias para Internet
Provas de Concursos Anteriores
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Desenvolvimento de Projeto e Aplicações Web
Desenvolvimento de Projetos e Aplicações Web
Aplicativos Web Com Orientação a Objetos
JAVA - Struts
Introdução ao Desenvolvimento Web
Capítulo 2 Java Servlets.
Servlets: Redirecionamento, Atributos e Sessões
Filtros. O que são Filtros Um filtro é um componente Web que reside no servidor Intercepta as requisições e respostas no seu caminho até o servlet e de.
 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.
Java Avançado JavaServer Pages Material cedido por:
Gente Autor: Sérgio Soares Servlets. zMódulos de programas em Java zRecebem pedidos, executam o serviço e geram respostas zResidem no servidor zAnálogo.
Configuração do Ambiente de Desenvolvimento
Curso de JavaWeb Instrutores: Rodrigo Cardoso e Maria Carolina
Jobson Ronan PEC – Filtros e Sessões Jobson Ronan
Conceitos de J2EE para a WEB
Aula 2 – Primeiros Passos com a arquitetura Web Servidor
Prof. Alexandre Monteiro Recife
Tópicos Especiais J2EE Prof. Cristina Valadares Curso de Ciência da Computação.
1 Servlet Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n /gtalk:
JSP / Servlets Avançado
Servlets e JSP Desenvolvimento de Aplicações Web
Aula 2 – Primeiros Passos com a arquitetura Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas.
Arquitetura das JSP - Aula 2
Aplicações Web com Orientação a Objetos
Aplicativos Web Com Orientação a Objetos – Java Server Pages(JSP) Prof. Odair
JSP JavaServer Pages Marco Antonio, Arquiteto de Software – TJDF Dezembro/2005.
Interface HttpServletResquest
PEC - JSP Jobson Ronan Objetivos Esta aula apresenta tudo o que é necessário para implementar servlets escrevendo JavaServer Pages.
JSP – Mais Recursos Jobson Ronan
Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos
Daniel Garcez de Sousa 07/04/2015. Nesta apresentação abordaremos os conceitos básicos sobre o ciclo de vida de um Servlet e os HTTP servlets. No final.
OBJETIVO Nesta aula será apresentado o desenvolvimento básico sobre HTTP Servlets. Espera-se que, ao final da apresentação, o aluno tenha noções de como.
Programação Distribuída em Java Aula Na aula passada vimos: TomCat –Instalação e configuração –Criação de contexto JSP... uma introdução –Expressões.
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.
Servlets Jobson Ronan Objetivos Aprender  Como escrever um servlet  Como compilar um servlet  Como implantar um servlet no servidor.
Curso de JSP Básico Camilo Porto Nunes.
Java Server Pages Um estudo de caso para aprendizagem Renata França de Pontes.
JSTL.
Aplicativos para Internet Prof. Wolley W. Silva
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
Servlets Manoel Neto Objetivos Aprender  Como escrever um servlet  Como compilar um servlet  Como executar Também serão.
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 WEB I Camila Nunes

2 © LES/PUC-Rio Agenda Servlets JSP

Servlets

4 © LES/PUC-Rio Fundamentos Alternativa Java para os scripts CGI Um Servlet é uma classe Java que extende as capacidades de servidores que suportam aplicações através do modelo request- response. Embora servlets possam ser utilizados para responder qualquer tipo de request, geralmente são usados em web servers. A tecnologia Java define uma classe para tratar este tipo de requisição (HttpServlet).

Servlet x CGI Script Extensibilidade –Java é orientada a objetos –Servlets foram projetados para serem simples –Arquitetura permite que os Servlets sejam facilmente estendidos Independência de plataforma –São programas escritos em Java Performance –São bem mais rápidos que programas CGI –São carregados na memória apenas uma vez –Executam pedidos concorrentemente 5 © LES/PUC-Rio

6 A API de Servlet A API de Servlet é um conjunto de classes Java que define uma interface padrão entre o cliente web e o servidor web. java.lang.Object | +----javax.servlet.GenericServlet implements javax.servlet.Servlet | +----javax.servlet.http.HTTPServlet | +----br.com.puc.MeuServlet

A interface Servlet javax.servlet.Servlet –destroy()destroy Método chamado pelo container onde o servlet está sendo executado para indicar que o servlet terminou. –getServletConfig()getServletConfig Método que retorna um objeto ServletConfig, que contém os parametros de inicializacao passados no arquivo web.xml ServletConfig –getServletInfo()getServletInfo Retorna informações sobre a aplicação, como autor, versão e copyright. –init(ServletConfig config)initServletConfig Metodo chamado na inicialização do servlet. –service(ServletRequest req, ServletResponse res)serviceServletRequestServletResponse Método que trata as requisições feitas a um servlet bem como a criação das respostas.

A implementação para HTTP javax.servlet.http.HttpServlet –Deve-se estender os 2 métodos abaixo para tratar requisições do tipo POST e GET. doGet doPost

Servlet Web Browser Servidor BD Arquitetura Básica

10 © LES/PUC-Rio Arquitetura Básica browser HTTP Servlet

11 © LES/PUC-Rio HttpServlet Tratador de requisições HTTP Trata métodos HTTP específicos: –doGet(HttpServletRequest req, HttpServletResponse resp) –doPost(HttpServletRequest req, HttpServletResponse resp) doGet e doPost são chamados pelo método service() da interface Servlet. Subclasses reescrevem os métodos doGet, doPost e podem reescrever os métodos init() e destroy()

12 © LES/PUC-Rio HttpServletRequest e HttpServletResponse Os métodos doGet(), doPost() recebem dois parâmetros: –HttpServletRequest encapsula os parâmetros da requisição –HttpServletResponse encapsula a resposta ao cliente

13 © LES/PUC-Rio HttpServletRequest Interface que encapsula a requisição feita pelo cliente através do protocolo HTTP Possui métodos que permitem recuperar os dados da requisição: –cabeçalho –dados de formulários ou parâmetros enviados –informações sobre a sessão do cliente

14 © LES/PUC-Rio HttpServletRequest Alguns métodos definidos em HttpServletRequest –Manipulação de Parâmetros java.util.Enumeration getParameterNames() –Obtém listagem, contendo nomes de parâmetros da requisição java.lang.String[] getParameterValues(java.lang.String name) –Obtém valores do parâmetro “name” da requisição java.lang.String getParameter(java.lang.String name) –Obtém valor do parâmetro “name” da requisição –Manipulação de Atributos void setAttribute( java.lang.String name, java.lang.Object) –Coloca ou sobreescreve atributo no request identificado por “name” java.util.Enumeration getAttributesNames() –Obtém listagem, contendo nomes de atributos da requisição java.lang.String getAttribute(java.lang.String name) –Obtém valor do atributo “name” da requisição

15 © LES/PUC-Rio HttpServletResponse Interface que encapsula a resposta ao cliente Possui um método responsável por recuperar o canal de resposta com o cliente –getWriter() retorna um PrintWriter Ex: PrintWriter out = response.getWriter(); out.println( “Escrevendo no cliente” ); Também é possível configurar qual é o tipo dos dados que estão sendo enviados de volta ao cliente –setContentType( String type ) –Os tipos mais comuns são text/html, text/xml –O método setContentType deve ser chamado antes do método getWriter

16 © LES/PUC-Rio Hello World!

17 © LES/PUC-Rio Segundo Exemplo

18 © LES/PUC-Rio Gerenciamento de sessão (I) O protocolo HTTP é um protocolo sem estado Não é possível a princípio conhecer o estado do cliente anterior à uma requisição O gerenciamento de sessão provê uma maneira de identificar usuários através de várias requisições HTTPs e recuperar suas informações –Dados do estado do cliente Para obter uma sessão: HttpSession getSession() –Obtém sessão existente, caso não exista retorna uma nova sessão. HttpSession getSession(boolean create) –Obtém sessão existente ou cria uma nova sessão dependendo do valor de o parâmetro create Funciona a base de cookie ou reescrita de URL

19 © LES/PUC-Rio Gerenciamento de sessão (II) Principais métodos –Métodos para manipulação de objetos em sessão void removeAttribute(java.lang.String name) –Retira objeto da sessão void setAttribute(java.lang.String name, java.lang.Object value) –Coloca ou sobreescreve objeto na sessão identificado por name java.lang.Object getAttribute(java.lang.String name) –Obtém objeto da sessão java.util.Enumeration getAttributeNames() –Obtém os nomes de todos os objetos armazenados na sessão

20 © LES/PUC-Rio Gerenciamento de sessão (III) Tempo de duração da sessão –As sessões em geral têm intervalo máximo de tempo que podem ficar inativas –public int getMaxInactiveInterval() –public void setMaxInactiveInterval(int interval) As sessões também podem ser encerradas explicitamente pelo programador: –public void invalidate()

21 © LES/PUC-Rio Jakarta Tomcat Servidor gratuito baseado em java Configurável de maneira simples via XML Oferece suporte a Java (Servlets e JSP)

22 © LES/PUC-Rio Jakarta Tomcat Você irão precisar do Tomcat –Pode ser gratuitamente obtido em –Utilizem a versão 5.x ou superior

23 © LES/PUC-Rio Publicação de Servlets Imagine que você implementou um Servlet, gerou o.java e compilou para ter o.class. E agora? Como o Servlet é publicado no servidor? Na verdade, existe um local para colocar as classes de sua aplicação

24 © LES/PUC-Rio Configurando o Tomcat Onde colocar as classes dos Servlets? –Primeiro, é preciso criar uma aplicação web Cria-se um diretório em %TOMCAT_HOME%\webapps\, sem espaços no nome. Dentro desse diretório, cria-se a pasta WEB-INF Dentro de WEB-INF, criam-se 2 pastas: lib e classes Dentro de WEB-INF, cria-se o arquivo web.xml (deployment descriptor web) Obs: TOMCAT_HOME é o nome do diretório aonde está sua instalação do TomCat

25 © LES/PUC-Rio Configurando o Tomcat O arquivo web.xml deverá ter conteúdo similar ao presente em %TOMCAT_HOME%webapps\ROOT\WEB-INF –Trata-se de um arquivo já pronto, que servirá como base para a criação de nosso arquivo

26 © LES/PUC-Rio Configurando o Tomcat As classes são colocadas no diretório: –%TOMCAT_HOME%\webapps\DIRETÓRIO_APLICAÇÃO\WEB- INF\classes –A partir deste diretório devem ser colocadas em seus próprios pacotes As libs (arquivos.jar) devem ser colocadas no diretório: –%TOMCAT_HOME%\webapps\DIRETÓRIO_APLICAÇÃO\WEB-INF\lib

27 © LES/PUC-Rio Configurando o Tomcat Registrando os Servlets –Os servlets devem ser chamados com seu nome completo (pacotes e classe) –Muitas vezes o nome se torna grande demais –Pode-se então dar um nome ao servlet através do qual o servidor redirecionará a chamada à classe específica

28 © LES/PUC-Rio Configurando o Tomcat Registrando Servlets (1) –O arquivo web.xml Localizado no diretório: –%TOMCAT_HOME%\webapps\DIRETÓRIO_APLICAÇÃO\WEB-INF

29 © LES/PUC-Rio Configurando o Tomcat Registrando Servlets (2) ServletSes interfPesquisa.ServletSes ServletSes /exemplo

30 © LES/PUC-Rio Configurando o Tomcat Agora, o servlet poderá ser acessado através da URL: : /DIRETÓRIO_APLICAÇÃO/exemplo

31 © LES/PUC-Rio Configurando o Tomcat Outras configurações –O arquivo server.xml Localizado no diretório: –%TOMCAT_HOME%\conf –Configuração da porta do servidor: …

Java Server Pages (JSP)

33 © LES/PUC-Rio O que é JSP JSP é uma tecnologia que permite combinar informações estáticas com informações geradas dinamicamente. Script executado no servidor: –Combinação de sintaxe JSP e tags de marcação –Tags estáticas HTML, XML –Conteúdo dinâmico gerado pelo código do script Java Exemplo: – Primeiro JSP – Data e hora: –

34 © LES/PUC-Rio Escopo dos Atributos O JSP pode acessar objetos em tempo de execução em quatro escopos diferentes: –Página Objeto PageContext corrente (pageContext) –Requisição Objeto HttpServletRequest corrente (request) –Sessão Objeto HttpSession corrente (session) –Aplicação Objeto ServletContext corrente (servletContext) Para armazenar informações: setAttribute(String, Object) Para recuperar informações: getAttribute(String)

35 © LES/PUC-Rio Tags JSP Diretivas – Configuração do processador JSP – Inclusão estática de conteúdo – Encaminhamento de requisições para outros servidores Comandos de script – Inserção de código para a programação de conteúdo dinâmico Tags – Tags de alto nível que encapsulam padrões de programação mais corriqueiros

36 © LES/PUC-Rio Diretivas nome-da-diretiva [nome-atributo = “valor-do-atributo”]* %> Diretivas disponíveis: –

37 © LES/PUC-Rio Atributos da Diretiva Page language=“nome-da-linguagem-de-script” info=“texto-informativo” - getServletInfo() session=“true | false” import=“lista-de-pacotes” errorPage=“url-página-de-erro” isErrorPage=“true | false” contentType=“mime-type | mime-type; charset=nome- charset” buffer=“none|tamanho-em-kb” auto-flush=“true | false” extends=“nome-da-classe-base” isThreadSafe=“true | false”

38 © LES/PUC-Rio Exemplos de Diretivas Diretiva Include Diretiva Taglib

39 © LES/PUC-Rio Exemplos de Diretivas Diretiva Page Ou

40 © LES/PUC-Rio Tags de Script Declarações – Scriptlets – Expressões – Comentários –

41 © LES/PUC-Rio Declarações Exemplos: <%! int i = 0; public void metodo {...} %> Declara variáveis ou métodos a serem utilizados no código JSP.

42 © LES/PUC-Rio Scriptlets Exemplo: <% String name = null; if (request.getParameter(“nome") == null) { %> <% } else { foo.setName(request.getParameter(“nome")); } %> Um scriptlet pode conter qualquer número de instruções, variáveis, métodos, declarações ou expressões válidos.

43 © LES/PUC-Rio Expressão Exemplo: O mapa tem entradas. Esta tag contém uma expressão que é avaliada e convertida para string, depois de processada.

44 © LES/PUC-Rio Comentários ] --> Exemplo: <!-- Esta página foi carregada em --> O processador JSP trata um comentário como texto HTML não interpretado, retornando-o ao cliente. Uma expressão pode ser incluída em um comentário, sendo avaliada e seu resultado é retornado ao usuário juntamente com o HTML de resposta.

45 © LES/PUC-Rio Comentários para Desenvolvimento Exemplo: Um teste - comentário Um teste - comentário O processador JSP simplesmente ignora este tipo de comentário e não processa nenhum código ou expressão contida entre os delimitadores. Este tipo de comentário não será enviado para o cliente.

46 © LES/PUC-Rio Objetos Pré-Definidos Disponíveis para scriplets e expressões – request – response – session – out – exception (somente em páginas de erro) – page

47 © LES/PUC-Rio Exemplo JSP

48 © LES/PUC-Rio Tags jsp:useBean jsp:setProperty jsp:getProperty jsp:include jsp:forward

49 © LES/PUC-Rio jsp:useBean Cria ou recupera uma instância de um bean. Principais atributos –id: “nomeDaInstânciaDoBean” –scope:”page|request|session|application” –class: “*{pacotes}.NomeClasse” Exemplo:

50 © LES/PUC-Rio jsp:include e jsp:forward Ações utilizadas para o encadeamento de páginas jsp. –suspende o processamento da página chamadora; –repassa o controle para a página chamada até que o retorne. –o processamento da página chamadora é terminado; –controle repassado sem espera de retorno para a página chamada.

51 © LES/PUC-Rio jsp:include }"/> Exemplo:

52 © LES/PUC-Rio jsp:forward }"/> Exemplo: A tag repassa o objeto request enviado para o arquivo JSP para que seja processado por outra aplicação. O processador JSP não executa o restante das instruções contidas após a tag.

53 © LES/PUC-Rio JSP Standard Tag Library A JSTL encapsula tarefas comumente encontradas em aplicações web (iteração, manipulação de xml, etc). Versão JSTL (Java 1.4) lançada em meados de 2002 impulsionou o desenvolvimento com JSP. Requer servlet container que suporte Servlet 2.4 and JSP 2.0 (tomcat 5.x) Provê 4 standard Tag Libs: –core, internationalization/format, XML, and SQL Provê uma Expression Language (EL).

54 © LES/PUC-Rio JSTL EL

55 © LES/PUC-Rio JSTL – Core Tag Lib >

56 © LES/PUC-Rio JSTL - Format tag lib