28
Tecnologias para Tecnologias para Internet Internet Thyago Maia Tavares de Thyago Maia Tavares de Farias Farias Aula 11 Aula 11

Tecnologias para Internet - Aula 11

Embed Size (px)

DESCRIPTION

Tecnologias para Internet - Aula 11

Citation preview

Page 1: Tecnologias para Internet - Aula 11

Tecnologias para Tecnologias para InternetInternet

Thyago Maia Tavares de Thyago Maia Tavares de FariasFarias

Aula 11Aula 11

Page 2: Tecnologias para Internet - Aula 11

SumárioSumário

Camada LógicaCamada Lógica Introdução aos Servlets;Introdução aos Servlets; Servlets e Formulários HTML;Servlets e Formulários HTML;

Page 3: Tecnologias para Internet - Aula 11

Introdução aos ServletsIntrodução aos Servlets

Tecnologia que permite o desenvolvimento Tecnologia que permite o desenvolvimento de sistemas Web e páginas Web dinâmicas;de sistemas Web e páginas Web dinâmicas;

Componente pertencente a camada lógica Componente pertencente a camada lógica de uma arquitetura de sistema Web;de uma arquitetura de sistema Web;

Tratam-se de classes Java que processam Tratam-se de classes Java que processam requisições e respostas HTTP;requisições e respostas HTTP;

Também considerado um extensor de Também considerado um extensor de servidor, ampliando suas funcionalidades; servidor, ampliando suas funcionalidades;

Page 4: Tecnologias para Internet - Aula 11

Introdução aos ServletsIntrodução aos Servlets

Vantagens dos Servlets:Vantagens dos Servlets: Portabilidade: Aplicações desenvolvidas podem Portabilidade: Aplicações desenvolvidas podem

ser implantadas em diversas plataformas;ser implantadas em diversas plataformas; Facilidade de programação: Segue o Facilidade de programação: Segue o

paradigma de programação orientada a paradigma de programação orientada a objetos; Implementação similar a uma objetos; Implementação similar a uma aplicação Java comum;aplicação Java comum;

Flexibilidade: Utiliza a linguagem Java, Flexibilidade: Utiliza a linguagem Java, bastante difundida, com várias bibliotecas, bastante difundida, com várias bibliotecas, códigos prontos e com documentação e códigos prontos e com documentação e comunidades de desenvolvimento abundantes;comunidades de desenvolvimento abundantes;

Page 5: Tecnologias para Internet - Aula 11

Introdução aos ServletsIntrodução aos Servlets

Vantagens dos Servlets:Vantagens dos Servlets: Escalabilidade: Possibilidade de Escalabilidade: Possibilidade de

distribuir a carga de processamento de distribuir a carga de processamento de aplicações em diversos servidores;aplicações em diversos servidores;

Eficiência: Servlets carregados por um Eficiência: Servlets carregados por um servidor persistem em sua memória até servidor persistem em sua memória até que sejam finalizados;que sejam finalizados;

Page 6: Tecnologias para Internet - Aula 11

Arquitetura de Aplicação Arquitetura de Aplicação ServletServlet

Um Servlet é uma classe Java que pode ser Um Servlet é uma classe Java que pode ser carregada e executada dinamicamente por carregada e executada dinamicamente por um servidor especial, chamado de Servlet um servidor especial, chamado de Servlet Container ou Servidor de Aplicação Java;Container ou Servidor de Aplicação Java;

Servlets interagem com clientes através do Servlets interagem com clientes através do modelo requisição-resposta do protocolo modelo requisição-resposta do protocolo HTTP;HTTP;

Servlets também podem interagir com Servlets também podem interagir com clientes através de outros protocolos, clientes através de outros protocolos, como HTTPS e SSL;como HTTPS e SSL;

Page 7: Tecnologias para Internet - Aula 11

Arquitetura de Aplicação Arquitetura de Aplicação ServletServlet

Navegador

(Cliente)

ServletContaine

r(Servidor

)Servlet(Classe Java)

REQUISIÇÃO

RESPOSTA

Page 8: Tecnologias para Internet - Aula 11

Servlet ContainerServlet Container

Servlet Containers (ou Web Containers) Servlet Containers (ou Web Containers) são utilizados na implantação e execução são utilizados na implantação e execução de Servlets;de Servlets;

É um componente de um servidor Web É um componente de um servidor Web que interage com os Servlets;que interage com os Servlets;

São responsáveis por gerenciar o ciclo de São responsáveis por gerenciar o ciclo de vida dos Servlets, mapeando uma URL vida dos Servlets, mapeando uma URL para um Servlet particular e assegurando para um Servlet particular e assegurando que o requerente da URL tem os direitos que o requerente da URL tem os direitos de acesso corretos;de acesso corretos;

Page 9: Tecnologias para Internet - Aula 11

Servlet ContainersServlet Containers

Os Servlets Contaneirs mais Os Servlets Contaneirs mais populares da atualidade:populares da atualidade: Apache Tomcat;Apache Tomcat; GlassFish;GlassFish;

Page 10: Tecnologias para Internet - Aula 11

Servlet ContainersServlet Containers

Apache TomcatApache Tomcat

Originalmente desenvolvido pela Sun Originalmente desenvolvido pela Sun Microsystems;Microsystems;

Administrado pela Apache Foundation;Administrado pela Apache Foundation; Considerado o servidor de aplicações Java Considerado o servidor de aplicações Java

oficial;oficial; Servidor Web que pode ser usado para trabalhar Servidor Web que pode ser usado para trabalhar

com Servlets e arquivos estáticos (HTML, com Servlets e arquivos estáticos (HTML, imagens, etc.);imagens, etc.);

Page 11: Tecnologias para Internet - Aula 11

Servlet ContainersServlet Containers

GlassFishGlassFish

Desenvolvido pela Sun Microsystems;Desenvolvido pela Sun Microsystems; Versão open source do servidor Sun Java Versão open source do servidor Sun Java

System Application Server;System Application Server; É um dos poucos servidores que possui total É um dos poucos servidores que possui total

suporte às novas especificações Web Java;suporte às novas especificações Web Java; Pode ser usado para trabalhar com Servlets e Pode ser usado para trabalhar com Servlets e

arquivos estáticos (HTML, imagens, etc.);arquivos estáticos (HTML, imagens, etc.);

Page 12: Tecnologias para Internet - Aula 11

O que precisaremos para O que precisaremos para criar e executar Servlets?criar e executar Servlets? Adotaremos o NetBeans IDE:Adotaremos o NetBeans IDE:

NetBeans IDE NetBeans IDE http://netbeans.org/downloads/index.html Baixe a versão Java EE;Baixe a versão Java EE; Esta versão já vem com o Servlet Container Esta versão já vem com o Servlet Container

GlassFish;GlassFish; Não é necessária qualquer configuração de Não é necessária qualquer configuração de

servidor;servidor; Bibliotecas Java utilizadas, parâmetros de função Bibliotecas Java utilizadas, parâmetros de função

necessários, além de outros códigos úteis para a necessários, além de outros códigos úteis para a produção de Servlets já são automaticamente produção de Servlets já são automaticamente inseridos em nossos projetos;inseridos em nossos projetos;

Page 13: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Execute o NetBeans IDE;Execute o NetBeans IDE; Clique na opção de menu Clique na opção de menu Arquivo / Arquivo /

NovoNovo projeto... (Teclas de atalho: projeto... (Teclas de atalho: Ctrl Ctrl + Shift + N+ Shift + N););

Na janela apresentada em seguida, Na janela apresentada em seguida, em em CategoriasCategorias, selecione a opção , selecione a opção Java Java WebWeb; Em ; Em ProjetosProjetos, selecione a opção , selecione a opção Aplicação WebAplicação Web;;

Clique sobre o botão Clique sobre o botão PróximoPróximo;;

Page 14: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Page 15: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Na próxima tela, em Na próxima tela, em Nome do Nome do projetoprojeto, digite o nome da sua , digite o nome da sua aplicação Web Java (sem caracteres aplicação Web Java (sem caracteres especiais e espaços);especiais e espaços);

Mantenha os demais parâmetros Mantenha os demais parâmetros padrão de projeto;padrão de projeto;

Clique em Clique em PróximoPróximo; ;

Page 16: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Page 17: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Agora, na próxima tela, definiremos Agora, na próxima tela, definiremos o Server Container a ser utilizado o Server Container a ser utilizado pela aplicação. Em pela aplicação. Em ServidorServidor, , selecione selecione Domínio do Personal Domínio do Personal GlassFishGlassFish;;

Mantenha os demais parâmetros Mantenha os demais parâmetros padrão de projeto;padrão de projeto;

Clique em Clique em FinalizarFinalizar;;

Page 18: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Page 19: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

No painel No painel ProjetoProjeto, localizado ao lado , localizado ao lado da área de edição de código, expanda a da área de edição de código, expanda a pasta pasta Pacotes de código-fontePacotes de código-fonte;;

Clique com o botão direito do mouse Clique com o botão direito do mouse sobre o pacote sobre o pacote <pacote padrão><pacote padrão>;;

Selecione a opção de menu Selecione a opção de menu Novo / Novo / ServletServlet;;

Na próxima tela, defina um nome para Na próxima tela, defina um nome para seu Servlet e clique em seu Servlet e clique em FinalizarFinalizar;;

Page 20: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Page 21: Tecnologias para Internet - Aula 11

Meu primeiro Servlet Meu primeiro Servlet

Page 22: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Um código-fonte será gerado Um código-fonte será gerado automaticamente, já com chamada a automaticamente, já com chamada a bibliotecas Java para tratamento de bibliotecas Java para tratamento de I/O, Servlets, e pedidos/respostas I/O, Servlets, e pedidos/respostas HTTP, além de uma classe Java que HTTP, além de uma classe Java que já possui funções que tratam já possui funções que tratam requisições e repostas HTTP;requisições e repostas HTTP;

Iremos preparar nosso próprio código Iremos preparar nosso próprio código fonte na função fonte na função processRequestprocessRequest;;

Page 23: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Page 24: Tecnologias para Internet - Aula 11

Meu primeiro ServletMeu primeiro Servlet

Executando o Servlet:Executando o Servlet: Para executar o Servlet (caso não exista erros), Para executar o Servlet (caso não exista erros),

deveremos utilizar as teclas de atalho deveremos utilizar as teclas de atalho Shift + F6Shift + F6;; Também podemos clicar com o botão direito sobre Também podemos clicar com o botão direito sobre

o arquivo de Servlet demonstrado no painel de o arquivo de Servlet demonstrado no painel de Projeto, para então clicar em Projeto, para então clicar em Executar arquivoExecutar arquivo;;

Também podemos acessar a opção de menu Também podemos acessar a opção de menu Executar / Executar arquivoExecutar / Executar arquivo;;

O navegador padrão será executado, O navegador padrão será executado, demonstrando a saída do Servlet implementado;demonstrando a saída do Servlet implementado;

Page 25: Tecnologias para Internet - Aula 11

Servlets e Formulários Servlets e Formulários HTMLHTML

Podemos enviar dados de Podemos enviar dados de formulários HTML (em uma formulários HTML (em uma requisição HTTP) para que Servlets requisição HTTP) para que Servlets possam processá-los e/ou submetam possam processá-los e/ou submetam uma resposta HTTP;uma resposta HTTP;

A classe A classe HttpServletRequestHttpServletRequest oferece oferece funções para a captura de funções para a captura de parâmetros de formulários HTML; parâmetros de formulários HTML;

Page 26: Tecnologias para Internet - Aula 11

Servlets e Formulários Servlets e Formulários HTMLHTML

Exemplo: Vamos criar um formulário Exemplo: Vamos criar um formulário HTML que receberá dois números. HTML que receberá dois números. Tais dados serão enviados para um Tais dados serão enviados para um Servlet que irá efetuar operações Servlet que irá efetuar operações matemáticas com os mesmos:matemáticas com os mesmos:

SERVLET QUE RECEBERÁ OS DADOS

Page 27: Tecnologias para Internet - Aula 11

Servlets e Formulários Servlets e Formulários HTMLHTML

(continuação) Agora codificamos o (continuação) Agora codificamos o Servlet :Servlet :

FUNÇÃO PARA OBTER OS DADOS DE FORMULÁRIO

Page 28: Tecnologias para Internet - Aula 11

Servlets e Formulários Servlets e Formulários HTMLHTML

Através do método Através do método getParameter(“campo”)getParameter(“campo”) da classe da classe HttpServletRequestHttpServletRequest podemos obter podemos obter o valor de um determinado campo de o valor de um determinado campo de formulário;formulário;

No parâmetro desta função, inserimos No parâmetro desta função, inserimos o o mesmo nome de campo utilizado no mesmo nome de campo utilizado no formulário HTMLformulário HTML que submeteu os dados; que submeteu os dados;

O valor retornado por está função será um O valor retornado por está função será um dado do tipo dado do tipo StringString. Para atribuir tal valor a . Para atribuir tal valor a uma variável de outro tipo, devemos efetuar uma variável de outro tipo, devemos efetuar uma conversão; uma conversão;