PROGRAMAÇÃO SERVIDOR RECURSOS ADICIONAIS EM SISTEMAS WEB DOS SERVLETS. Prof. Dr. Daniel Caetano

Documentos relacionados
Desenvolvimento Web TCC Turma A-1

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

NOVIDADES DO JAVA PARA PROGRAMADORES C

PROGRAMAÇÃO SERVIDOR SESSÃO E LOGIN EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

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

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Objetivos. Aprender o que são JavaBeans e como podem ser usados em páginas JSPs Usando ações-padrão ao invés de scripts

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

INTRODUÇÃO À TECNOLOGIA SERVLETS

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano

JSP: JAVA SERVER PAGES

Aula 03 - Projeto Java Web

JSP: JAVA SERVER PAGES

Model-View-Controller (MVC) Fernando de Freitas Silva

Escrito por Lisiane Batista Neitzke Sex, 14 de Outubro de :57 - Última atualização Qua, 25 de Junho de :18

Introdução ao Burp Suite

PROGRAMAÇÃO PARA INTERNET RICA MANIPULANDO XHTML E CSS COM JAVASCRIPT

Protocolo HTTP. Professor Leonardo Larback

Introdução a Web. Programação para a Internet. Prof. Vilson Heck Junior

Desenvolvimento Web III. Prof. Felippe Scheidt

Servlets e Applets, funcionamento e comparativo.

ESTRUTURA DE DADOS FILAS SEQUENCIAIS

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Trabalhando com Servlet

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

Arquitetura em Camadas

ESTRUTURA DE DADOS VETORES E LISTAS LINEARES

Colocando um site na Internet

Java para Desenvolvimento Web Carga Horária: 40 Horas.

ESTRUTURA DE DADOS PILHAS SEQUENCIAIS

MANUAL. Localizador: Página: MN 016 SGI-INFRA- . Informação)

INFORMÁTICA. Indique a opção que contenha todas as afirmações verdadeiras. a) I e II b) II e III c) III e IV d) I e III e) II e IV

O CMS JOOMLA! UM GUIA PARA INICIANTES

Conhecendo e editando o seu perfil

Introdução à Informática

Lógica de Programação, Algoritmos e Estruturas de Dados

Encaixe da importação RDP ASA 8.x para o uso com exemplo de configuração WebVPN

AMBIENTE VIRTUAL DE APRENDIZAGEM MOODLE MANUAL DO ALUNO

Java para WEB. Servlets

MANUAL. Localizador: SGI-INFRA-

INSTRUÇÕES PARA O PRIMEIRO ACESSO

INTEGRAÇÃO DA METODOLOGIA DE DESENVOLVIMENTO AJAX COM SERVLETS JAVA

Transferência de Arquivo: Protocolo FTP

Aula 2 Servlets. Gustavo Wagner. Gustavo Wagner - gustavowagner.com.

AMBIENTE VIRTUAL DE APRENDIZAGEM

Surgindo em 1997 a API Java Servlet proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a

PROGRAMAÇÃO PARA INTERNET RICA MANIPULANDO XHTML E CSS COM JAVASCRIPT

Instalação Wiser Discovery Sistema Operacional Windows

Introdução ao GAM. Agora queremos aumentar a Segurança da aplicação, tanto na parte web como a de Smart Device. Page1

Figura 1 Tela principal da disciplina

Pacotes Organizando suas classes e bibliotecas

Informática I. Aula 2. Ementa

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Guia para Acesso Remoto

Desenvolvimento de Sistemas Corporativos Aula 1.5 Introdução a Servlets. Prof. Bruno Moreno

Java II. Sérgio Luiz Ruivace Cerqueira

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

WEBDESIGN. Professor: Paulo Marcos Trentin - Escola CDI de Videira

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

Tutorial para o aluno Moodle

Aplicativo para TV Digital Interativa de acesso ao Twitter

ARQUITETURA DE COMPUTADORES

PROGRAMA ESPECIAL DE FORMAÇÃO PEDAGÓGICA DE PROFESSORES PARA EDUCAÇÃO PROFISSIONAL MANUAL DO AMBIENTE VIRTUAL DE APRENDIZAGEM (AVA) TUTOR

Acesso Remoto Portal de Periódicos CAPES 2017

Plano de Aula - Dreamweaver CS5 - cód Horas/Aula

CCT0298 ANALISE DE REDES Aula : Trafego HTTP

Computação II Orientação a Objetos

Tutorial do aluno Ambiente Virtual de Aprendizagem (AVA) Rede e-tec Brasil

5.0. Guia Prático 5 4G. Luz de notificação 2 Inserir ou retirar a. Tecla Liga/ Desliga Aumentar/ Diminuir volume. tampa traseira. bateria.

DocuWare Forms Product Info. Gerenciamento eficiente de formulários. Benefícios/Vantagens

Introdução aos Algoritmos

Entendendo e usando permissões no Linux. Orientador de Curso: Rodrigo Caetano Filgueira

5.0 GUIA PRÁTICO. Flash Câmera frontal 2 Carregar a bateria. Diminuir/ Aumentar volume Tecla Liga/ Desliga. Início. Visão geral. Voltar.

Unidade 2: Fundamentos da Programação de Computadores Prof. Daniel Caetano

Principais características:

Java II. Sérgio Luiz Ruivace Cerqueira

1. Estrutura do Projeto (0,2) pontos

arquitetura shared-nothing em 3 camadas

Aula 14: Funções Passagem de Parâmetros por Referência

Manual de Utilização Portal de Gente Avaliação por Competências e Valores Avaliação Nine Box

TUTORIAL COMO SUBMETER RESUMO PARA A 5ª SEMPESq

Aplicações Web com Servlets e JSP

PROGRAMAÇÃO SERVIDOR PADRÕES DAO, VIEW CONTROL E FRONT CONTROL EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Universidade Federal de Minas Gerais Colégio Técnico Plano de Ensino

Programação Estruturada Orientada a Objetos

Java Beans e Servlets

Ministério da Cultura

Continuação... Criando a Interface e adiante

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Unidade 9: Introdução às Estruturas de Decisão

Caminhos para o release 2.0b

Encaixe da importação VNC de Cisco ASA 8.x para o uso com WebVPN

Transcrição:

PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB RECURSOS ADICIONAIS DOS SERVLETS Prof. Dr. Daniel Caetano 2012-1

Objetivos Apresentar os dois principais tipos de requisição Apresentar os dois tipos mais comuns de redirecionamento Armazenamento de Dados na request Trabalho disponível online!

Material de Estudo Material Notas de Aula Apresentação Acesso ao Material http://www.caetano.eng.br/aulas/psw/ (Aula 5) http://www.caetano.eng.br/aulas/psw/ (Aula 5) Material Didático Big Java, páginas 989 a 997 Java: Como Programar (6ª Edição) Páginas 928 a 948

REQUISIÇÕES POST E GET

Tipos de Requisição Já vimos várias vezes esse esquema: REQUEST Cliente RESPONSE Servidor

Tipos de Requisição De maneira rápida, vimos também que as requests podem ser de dois tipos: POST Função é enviar dados para o servidor GET Função é requisitar dados do servidor POST: usualmente por forms GET: usualmente por links/barra de url

Tipos de Requisição Na aula passada: Formulário index.jsp Cria a request Envia para a servlet Imc por POST Podemos fazer o mesmo com GET? Digite na barra de endereços: http://localhost:8080/wprojeto1/imc?peso=75&altura=1.7 O que acontece?

Requisição com GET Podemos passar alguns parâmetros pela requisição do tipo GET através do seguinte esquema: http://servidor/servlet?param1=valor1 O truque é a interrogação:? Esse caractere indica que: o endereço já acabou tudo que vem em seguida é parâmetro

Requisição com GET http://servidor/servlet?param1=valor1 Depois da? Nome do parâmetro (no exemplo, param1) Sinal de igualdade Valor do parâmetro (no exemplo, valor1) E se quiser passar mais de um parâmetro?

Requisição com GET http://servidor/servlet?param1=valor1&param2=valor2 Para indicar valores de mais parâmetros, basta separá-los com o uso de um & Podemos passar quantos parâmetros quisermos? NÃO com o GET: até cerca de 1KB

Requisição com GET Do ponto de vista do servlet, o que muda? Usando NetBeans, NADA, os dados chegam, com o GET, da mesma forma que com o POST Quer dizer que não temos como diferenciar um do outro no servlet?

Recebendo GET e POST no Servlet Na verdade, é possível Lembram-se deste esquema? init() Quando necessário service() Aguardando conexões destroy() Quando não é mais necessário

Recebendo GET e POST no Servlet Vamos pensar só no service() service() Aguardando conexões O service aguarda requisições Se uma POST chega...

Recebendo GET e POST no Servlet Vamos pensar só no service() service() O service aguarda requisições Se uma POST chega... dopost()

Recebendo GET e POST no Servlet Vamos pensar só no service() service() Aguardando conexões O service aguarda requisições Mas... E se uma GET chega?

Recebendo GET e POST no Servlet Vamos pensar só no service() service() O service aguarda requisições Mas... E se uma GET chega? doget()

Recebendo GET e POST no Servlet Vamos pensar só no service() service() Como não vimos isso no servlet? doget() O service aguarda requisições Mas... E se uma GET chega?

Entendendo o Servlet Lembra-se desta parte aqui? Esta aqui!

Entendendo o Servlet Lembra-se desta parte aqui? Vamos abrir e ver o que há lá dentro! Esta aqui!

Entendendo o Servlet Observe os métodos doget e dopost

Entendendo o Servlet Observe os métodos doget e dopost Eles simplesmente redirecionam a chamada para o método processrequest()!

Por isso podemos usar o Entendendo o Servlet processrequest para Observe os métodos doget e dopost acessar GET e POST

Rejeitando GET E se não quisermos que nosso servlet responda com requisições GET? Podemos ir até o método doget() e simplesmente remover a chamada ao processrequest() Um outro jeito é encaminhando o usuário para uma página de erro específica... Ou simplesmente para a tela correta de preenchimento!

SOLICITANDO REDIRECIONAMENTO

Solicitando Redirecionamento O jeito mais fácil de fazer isso é modificar a response Na resposta, vamos dizer ao navegador que ele deve ir para outra página Isso é feito com o seguinte comando: Response.sendRedirect( http://www.endereco.com/ );

SendRedirect para Rejeitar GET Observe o novo método doget Se for tentado um acesso por GET, o navegador redireciona para a página da UOL

ENCAMINHAMENTO DE REQUISIÇÃO

Encaminhando uma Requisição Pode ser que, por alguma razão, seu servlet detecte que aquela requisição não pode ser processada por ele Não é aqui, senhor!! Neste caso, se ele souber qual servlet é responsável pela execução, ele pode encaminhar a requisição

Encaminhando uma Requisição Para isso, é preciso arrumar um entregador... Quem sabe dele é a própria request request.getrequestdispatcher( /Servlet ); Isso não faz redirecionamento, apenas devolve um objeto RequestDispatcher (ou, em bom português, um entregador de requisições) Nome do Servlet Destino!

Encaminhando uma Requisição Assim, devemos guardar esse objeto em uma variável RequestDispatcher rd = request.getrequestdispatcher( /Servlet ); E, para redirecionar, damos o comando forward() para o entregador: rd.forward(request, response);

Encaminhando uma Requisição Diagrama de Sequência (forward) Execução do Servlet A continua!

Encaminhando uma Requisição Como resolver? Usando um return após o forward! Assim, a sequência de despacho fica... RequestDispatcher rd = request.getrequestdispatcher( /Servlet ); rd.forward(request, response); return;

Encaminhando uma Requisição Encaminhar requisições pode ser útil... Mas se pudéssemos acrescentar informações na requisição... Seria bem mais útil, não?

MODIFICANDO UMA REQUISIÇÃO

Guardando Coisas na Requisição Vimos como ler parâmetros de uma requisição request.getparameter( nome ); Parâmetros são dados armazenados pelo navegador na requisição Não podemos inserir parâmetros através do servlet

Guardando Coisas na Requisição Quando nosso programa acrescenta dados na requisição, dá-se o nome de atributo request.setattribute( nome,objeto) Para ler esses valores, usamos... request.getattribute( nome ); Pegadinha: só posso guardar OBJETOS (tipos não nativos) na requisição

Guardando Coisas na Requisição

Guardando Coisas na Requisição Request, eu preciso daquele livro...

Guardando Coisas na Requisição livro cliente Nomes de Atributo

Guardando Coisas na Requisição livro Request, eu preciso daquele livro... cliente

Por que isso é útil? Por que é útil guardar coisas na requisição? Que tal o nosso aplicativo Imc ser composto por dois servlets? Imc Faz os cálculos ImcView Apresenta os resultados Por hoje, acreditem que isso facilita o reuso de código, por separar processamento de apresentação Na aula que vem veremos mais razões para isso ser útil...

TUTORIAL

Tutorial Siga o professor: Construção do Servlet ImcView

Tutorial Siga o professor: Modificação do Servlet Imc Para usar IMC View RequestDispatcher: corrigir importações

Tutorial Siga o professor: Criação do Servlet ImcError Modificação do Servlet Imc para usar ImcError

Tutorial Siga o professor: Opcional: Construir aplicativo WProjeto2 CalcMedia

INCLUINDO UM SERVLET EM OUTRO

Transferência Temporária de Exec. Transferência Permanente: forward RequestDispatcher rd = request.getrequestdispatcher( /Servlet ); rd.forward(request, response); return;

Transferência Temporária de Exec. Transferência Temporária: include RequestDispatcher rd = request.getrequestdispatcher( /Servlet ); rd.include(request, response);

Transferência Temporária de Exec. Qual a diferença?

ATIVIDADE ESTRUTURADA

Orientação Atividades Estruturadas Esta disciplina possui Atividades Estruturadas Elas serão disponibilizadas no momento oportuno A primeira consiste em uma pesquisa (leitura e redação) A segunda consiste em compreender e modificar um sistema funcional Aguardem maiores informações!

CONCLUSÕES

Resumo Há dois tipos de requisições: POST e GET Os servlets podem diferenciar as requisições por tipo Um servlet pode redirecionar o navegador Um servlet pode encaminhar uma requisição para outro servlet Um servlet pode acrescentar dados em uma requisição TAREFA Trabalho 2 Online!

Próxima Aula Complicado fazer layout/html usando Servlet! Será que não tem um jeito mais simples? Ahá! Existem as Java Server Pages (JSPs!)

PERGUNTAS?

BOM DESCANSO A TODOS!