Desenvolvimento Web com JSP/Servlets



Documentos relacionados
Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Java para WEB. Servlets

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Desenvolvimento Web TCC Turma A-1

Java para Desenvolvimento Web

Arquitetura de uma Webapp

UNIDADE II JAVA SERVLETS

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Programação II Programação para a Web. Christopher Burrows

Associação Carioca de Ensino Superior Centro Universitário Carioca

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Java II. Sérgio Luiz Ruivace Cerqueira

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Desenvolvimento Web Protocolos da Internet

Aula 03 - Projeto Java Web

Prof. Roberto Desenvolvimento Web Avançado

programação de páginas de conteúdo dinâmico

Fundamentos de Servlets. Conceitos e ciclo de vida Classes e Interfaces da API Exemplos de Servlets

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Desenvolvimento Web Histórico da Internet e Protocolos

20/08/14 JAVA SERVLETS CONCEITOS CONTEÚDO ARQUITETURA DE UMA APLICAÇÃO WEB ARQUITETURA DA APLICAÇÃO WEB

Programação para Internet Flávio de Oliveira Silva, M.Sc.

Prática Sobre Servlets e JSP

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2

Java na WEB Servlet. Sumário

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Programação Web Aula 12 - Java Web Software

JSP: JAVA SERVER PAGES

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

Tecnologias Web. Java Servlets

JSP: JAVA SERVER PAGES

INTRODUÇÃO À TECNOLOGIA SERVLETS

Programação em Rede. Servlets. Manipulação de dados de input em Servlets

Java Server Pages. O código HTML pode indicar o método de arranque do servlet gerado por um JSP : doget ou dopost.

Aplicações de Linguagem de Programação Orientada a Objeto

J550 Segurança e Controle de erros

Aula 1 Cleverton Hentz

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

Camada de Aplicação. Prof. Eduardo

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

Registo de condutor (Protótipo funcional) Página apresentada ao utilizador

Programando em PHP. Conceitos Básicos

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com

Alfamídia Programação: Java Web

Java II. Sérgio Luiz Ruivace Cerqueira

Linux - Servidor de Redes

Redes de Computadores Camada de Aplicação. Prof. MSc. Hugo Souza

Curso de Aprendizado Industrial Desenvolvedor WEB

Servlets e Applets, funcionamento e comparativo.

UNIDADE III JAVA SERVER PAGES

Programação WEB Introdução

Aplicações de Linguagem de Programação Orientada a Objeto

TUTORIAL JSP & SERVLET

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

O protocolo HTTP. O que é o protocolo HTTP?

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC


Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira / j.edu@vqv.com.br

Introdução à Camada de Aplicação. Prof. Eduardo

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

Universidade Federal de Mato Grosso

Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel

HYPERTEXT TRANSFER PROTOCOL

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

Programação para a Web - I. José Humberto da Silva Soares

Criação de uma aplicação usando Servlets

Input de dados a partir de formulários HTML

Scriptlets e Formulários

Servlets & JSP. Prof. Ramon Chiara

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

Programação Web Prof. Wladimir

Programação e Designer para WEB

Programação para Internet I. 2. O protocolo HTTP. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Servlets. João Carlos Pinheiro. Julho / 2005

1.264 Lição 11. Fundamentos da Web

Servlets, JSPs e Java Beans

APLICAÇÕES E SERVIÇOS WEB

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

World Wide Web e Aplicações

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO

Java para WEB com Struts 2 e Hibernate

Desenvolvimento de Aplicações Web

Transcrição:

Desenvolvimento Web com JSP/Servlets

Requisitos Linguagem Java; Linguagem SQL; Noções de HTML; Noções de CSS; Noções de Javascript;

Configuração do ambiente JDK APACHE TOMCAT MySQL

Instalando o JDK

Instalando o JDK

Configurando as variáveis de ambiente

Configurando as variáveis de ambiente

Configurando as variáveis de ambiente.;%java_home%\lib;%java_home%\lib\tools.jar;%java_home %\lib\dt.jar;%java_home%\lib\htmlconverter.jar;%java_home%\ jre\lib;%java_home%\jre\lib\rt.jar

Configurando as variáveis de ambiente ;%JAVA_HOME%\bin

TOMCAT

Eclipse

Configurando novo Servidor

MySQL

Como funciona a Web

Arquitetura da Internet MODELO OSI(Open Systems Interconnection) Modelo TCP/IP C4 c7 Aplicação HTTP,SMTP,POP3,IMAP,etc... REDE C3 c4 Transporte TCP,UDP,etc C2 c3 Internet IP C1 c2 Acesso a rede Ethernet,WiFi,etc...

URL (Uniform Resource Locator) Nome físico do servidor Recurso solicitado http://www.terra.com.br/index.html *DNS http://192.168.0.1:80 Endereço IP(Internet Protocol) Porta TCP *Domain Name System

Portas TCP (0 a 65.536) De 0 a 1023- Serviços já conhecidos 21- FTP (Transferência de arquivos); 23-Telnet (Protocolo cliente-servidor); 25-SMTP (Simple Mail Transfer Protocol); 37-Time; 443-HTTPS (HTTP + SSL/TLS); 80-HTTP; 23-POP3 (Post Office Protocol- Recebimento de mensagens);

Servidor Web Cliente Cliente Browsers Cliente

Recursos solicitados pelos clientes URLs

Recursos devolvidos para o Cliente

Servidor Web Enviam respostas para os browsers geralmente em HTML; A maioria das conversas entre servidores e clientes são mantidas através do protocolo HTTP (Protocolo de Transferência de Hipertexto); Solicitação http Conteúdo HTML Resposta http

Elementos do fluxo de SOLICITAÇÃO Solicitação http MÉTODO HTTP (a ação que será executada); A página (recurso) que será acessada (URL); Parâmetros de um formulário. Elementos do fluxo de RESPOSTA Resposta http Um código de status (solicitação bem sucedida); Tipo de conteúdo(texto, imagem, HTML,etc); O conteúdo real.

Solicitação HTTP Método HTTP Linha da solicitação Headers da solicitação GET /POST http://www.portalfotos.com.br/minhasfotos/213.jpg?user=123423 Host: www.wickedlysmart.com User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-us; rv:l.4) Gecko/20030624 Netscape/7.1 Accept: text/xml,application/xml,application/xhtml+xml,text/ html;q~0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/ gif;q=0.2,*/*;q~0.1 Accept-Language: en-us,en;q~0.5 Accept-Encoding: gzip,defiate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive

Método GET Servidor Me consiga a foto 213.jpg! Método GET 213.jpg

Método GET É possível enviar dados pelo método GET através da URL(separado por um? ); Ex: http://www.meusite.com/meuscript.php?nome=maria&id=123 O número de caracteres é limitado (255); Sem segurança para dados sigilosos;

Resposta HTTP Informações de header <html> <head> Página HTML <title>minha Aplicação</title> </head> <body> <h1>minhas Fotos</h1> <img src= fotos/foto1.jpg > </body> </html> Entra em modo de processamento de html Envia uma solicitação http

Informações de header Versão do protocolo Código de status HTTP/1.1 200 OK MIME type... Content-Type=text/html Content-Lenght: 397 Date: Wed, 19 Nov 2011 03:05:30 GMT Server: Apache-Coyote/1.1 Connection:close

Status Code 1xx: Informacional Requisição recebida, processo continua; 2xx: Sucesso A ação foi recebida, compreendida e aceita com sucesso; 3xx: Redirecionamento (Transitório) Deve haver ação consecutiva para que a requisição seja completada; 4xx: Erro Cliente A requisição enviada pelo cliente contém sintaxe errada ou não pode ser atendida; 5xx: Erro Servidor O servidor falhou em atender requisição aparentemente válida. Erros e exceções em programas CGI e servidores de aplicação para Web (Java,.NET, PHP etc.) são casos típicos de erros da série 500.

Códigos de retorno http

Método POST Formulário <form action="/cgi-bin/cadastro.php" method=post> <pre> Nome: <input name="nomeusuario" size=40> e-mail: <input name="mailusuario" size=40> Texto: <textarea rows=5 cols=34 name="texto"></textarea> <input type=submit value="enviar Formulário"> </pre> </form> Dados Dados cadastro.php

MIME type Informa que tipo de resposta o browser do Cliente está para receber HTTP/1.1 200 OK MIME type... Content-Type=text/html Content-Lenght: 397 Date: Wed, 19 Nov 2011 03:05:30 GMT Server: Apache-Coyote/1.1 Connection:close

MIME type

PÁGINAS DINÂMICAS

Página HTML estática Servidor! Guarde esses dados em um banco de dados!! Como???

Aplicação helper PHP SERVLETS ASP etc Banco Resposta como página estática Dados Cadastrados com sucesso!!

SERVLETS/JSP

J2EE Containers e Aplicações Web

O que o container oferece?? Suporte para comunicações: ServerSocket; Monitoramento de portas; Gerenciamento do protocolo

O que o container oferece?? Controle do Ciclo de Vida do Servlet Web Container Ciclo de vida do Servlet Carga Criação Inicialização Destruição

O que o container oferece?? Suporte a Multithread: Para cada request, cria uma nova thread; Provê segurança; Traduz código JSP em Java;

APACHE TOMCAT

Como trabalha o Container Container

Como trabalha o Container http://www.minhaaplicacao/ Container

Como trabalha o Container http://www.minhaaplicacao/ Container

Como trabalha o Container http://www.minhaaplicacao/ Container Servlet??

Como trabalha o Container Request do cliente http://www.minhaaplicacao/ Container HttpServletResponse HttpServletRequest Servlet???

Como trabalha o Container Request do cliente http://www.minhaaplicacao/ Container HttpServletResponse HttpServletRequest ServletA

Como trabalha o Container Request do cliente http://www.minhaaplicacao/servlet_a Container HttpServletResponse HttpServletRequest ServletA Thread ServletA

Como trabalha o Container Request do cliente http://www.minhaaplicacao/servlet_a Container HttpServletResponse HttpServletRequest ServletA Thread ServletA

Como trabalha o Container Request do cliente http://www.minhaaplicacao/servlet_a Container HttpServletResponse HttpServletRequest Método DoGet do Servlet Gera uma página dinâmica ServletA Thread ServletA

Como trabalha o Container Request do cliente http://www.minhaaplicacao/ Container HttpServletResponse HttpServletRequest Método DoGet do Servlet Gera uma página dinâmica ServletA Thread ServletA

Como trabalha o Container Request do cliente http://www.minhaaplicacao/ HttpResponse Container HttpServletResponse HttpServletRequest Método DoGet do Servlet Gera uma página dinâmica ServletA Thread ServletA

Como trabalha o Container HttpResponse Container HttpServletResponse HttpServletRequest Método DoGet do Servlet Gera uma página dinâmica ServletA

Servlets Classes java Respondem requisições HTTP,FTP,etc; Não possuem método Main. Estão sob controle do Container.

Exemplo de Servlet import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class CadastroServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException{ PrintWriter out =response.getwriter(); java.util.date datahoje = new java.util.date(); out.println( <html> + <body> + <h1>hora Atual</h1> + <br> + datahoje + </body> + </html> ); } }

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; Importação das classes necessárias

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; A maioria herda de HttpServlets) import java.util.*; public class Servlet_A extends HttpServlet { }

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class Servlet_A extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException{ O Servlet não possui o método Main Os métodos do Ciclo de Vida do Servlet são chamados pelo Container } }

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class Servlet_A extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException{ } } A maioria dos Servlets invocam ou o Método doget ou o Método dopost;

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class CadastroServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) Referências dos objetos request e response que o Container cria } }

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class CadastroServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException{ PrintWriter out =response.getwriter(); } Cria } um objeto do tipo PrintWriter baseado no PrintWriter do Objeto response (do Container)

import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class CadastroServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException{ PrintWriter out =response.getwriter(); java.util.date datahoje = new java.util.date(); out.println( <html> + <body> + <h1>hora Atual</h1> + <br> + datahoje + </body> + </html> ); } }

Como o Container encontra o Servlet certo?? Request do cliente http://www.minhaaplicacao/inicioboasvindas Container Servlet??? Servlet??? Servlet???

Mapeamento de Servlets O servlet pode ter 3 nomes: Nome do caminho para o arquivo físico(nome interno real da classe): classes/horaatual.class Nome de distribuição do Servlet; Nome público de URL (conhecido pelo cliente): MinhaHoraAtual

Estrutura de diretórios para o Servlet webapps MeuProjeto src classes etc HoraAtual.java web.xml

Porque usar um nome público para mapear o servlet? Manutenção: Flexibilidade na hora de reorganizar a sua aplicação; Segurança: impede que o cliente conheça a sua estrutura de servidor;

Deployment Descritor (DD) O DD é um arquivo chamado web.xml que tem os seguintes propósitos: Prover valores iniciais para parâmetros de Web Applications Exemplo: servidor de Banco de Dados, etc. Usado para inicializar qualquer valor que poderá mudar entre duas instalações Exemplo: não é um bom lugar para colocar a taxa de câmbio do dólar Permite configurar as aplicações sem alterar código e recompilar os servlets Definir servlets e JSPs Cada servlet e JSP usado pela aplicação deve ser descrito para permitir que seu deployment seja feito Especificar mapeamentos de servlets e JSPs Define como URLs que chegam do cliente serão mapeadas para servlets e JSPs Especificar MIME types usados por cada aplicação Especificar dados de segurança Pode especificar quais páginas precisam de um login, qual é a página de login, que papel o usuário deve ter para acessar a página, etc. Customizar páginas de boas vindas, páginas de erro, configuração de sessão, etc, sem tocar no código fonte.

web.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'> <web-app>... <servlet> <servlet-name>servlethora</servlet-name> <servlet-class>aplic.horaatual</servlet-class> </servlet> <servlet-mapping> <servlet-name>servlethora</servlet-name> <url-pattern>/inicioboasvindas</url-pattern> </servlet-mapping>... <session-config> <session-timeout>30</session-timeout> </session-config> </web-app>

Como o Container encontra o Servlet certo?? Request do cliente http://www.minhaaplicacao/inicioboasvindas Container web.xml ServletHora

JSP (Java Server Pages) A geração de informação dinâmica pode ser feita de duas formas: Programaticamente (servlets) Através de templates (Java Server Pages ou JSP) JSP é uma extensão da tecnologia de servlets Uma página JSP contém código HTML (ou XML) Tags especiais ou "scriplets" especiais são embutidos no HTML para execução para produzir o conteúdo final Um exemplo de página JSP está aqui A página JSP é traduzida para um servlet automaticamente pelo servidor J2EE O servlet é compilado (apenas uma vez) A partir daí, o servlet é executado para gerar o conteúdo dinâmico Depois que a página JSP foi transformada em servlet, a situação é idêntica à execução de um servlet

JSP

Objetos Instanciados JSP

Declarações Utilizadas em JSP

Diretivas

Objeto Request

Exercícios em sala