Tecnologias para Internet - Aula 11

Preview:

DESCRIPTION

Tecnologias para Internet - Aula 11

Citation preview

Tecnologias para Tecnologias para InternetInternet

Thyago Maia Tavares de Thyago Maia Tavares de FariasFarias

Aula 11Aula 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;

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;

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;

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;

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;

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

Navegador

(Cliente)

ServletContaine

r(Servidor

)Servlet(Classe Java)

REQUISIÇÃO

RESPOSTA

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;

Servlet ContainersServlet Containers

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

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.);

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.);

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;

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;;

Meu primeiro ServletMeu primeiro Servlet

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; ;

Meu primeiro ServletMeu primeiro Servlet

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;;

Meu primeiro ServletMeu primeiro Servlet

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;;

Meu primeiro ServletMeu primeiro Servlet

Meu primeiro Servlet Meu primeiro Servlet

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;;

Meu primeiro ServletMeu primeiro Servlet

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;

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;

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

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

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;