DESENVOLVIMENTO DE APLICAÇÕES JAVA WEB



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

Programando em PHP. Conceitos Básicos

World Wide Web e Aplicações

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Curso de Aprendizado Industrial Desenvolvedor WEB

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

Programação WEB Introdução

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

WWW - World Wide Web

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

Web Design. Prof. Felippe

CONCEITOS BÁSICOS DE INTERNET. Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA

Linux - Servidor de Redes

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

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

Desenvolvimento de Aplicações Web

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

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

Sistemas para internet e software livre

Aula 03 - Projeto Java Web

Servlets e Applets, funcionamento e comparativo.

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

UFG - Instituto de Informática

CAPÍTULO 2. Este capítulo tratará :

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

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Java para Desenvolvimento Web

Aplicativos para Internet Aula 01

Desenvolvimento Web TCC Turma A-1

Conceitos Básicos

Programação Web Prof. Wladimir

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

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

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

INTRODUÇÃO À TECNOLOGIA SERVLETS

Autoria Web Apresentação e Visão Geral sobre a Web

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

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

A autoria - II. A autoria - II. Tecnologias básicas da Web. A autoria - II Wilson de Pádua Paula Filho. Tópicos:

Web Services. Autor: Rômulo Rosa Furtado

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

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Kassius Vargas Prestes

PRnet/2013. Linguagem de Programação Web

18/04/2006 Micropagamento F2b Web Services Web rev 00

Scriptlets e Formulários

UNIVERSIDADE. Sistemas Distribuídos

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli


HTML. Sessão 1 HTML. Cliente: browser (IE, por exemplo) Servidor: IIS (Internet Information Server), Apache, WebSphere,...

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Aula 1 Cleverton Hentz

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

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

INTERNET CONCEITOS. Internet é a "grande rede mundial de computadores"

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

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

TECNOLOGIAS WEB AULA 2 PROF. RAFAEL DIAS

Serviços Web: Introdução

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

Arquitetura de uma Webapp

Entendendo como funciona o NAT

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

Programação para Web Artefato 01. AT5 Conceitos da Internet

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

Tecnologias para Web Design

O que são DNS, SMTP e SNM

Cap 03 - Camada de Aplicação Internet (Kurose)

SISTEMAS DISTRIBUIDOS

Microsoft Internet Explorer. Browser/navegador/paginador

UFG - Instituto de Informática

Desenvolvendo Websites com PHP

Instalando o Internet Information Services no Windows XP

Capítulo 8 - Aplicações em Redes

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Organizar a estrutura do site

Adriano Reine Bueno Rafael Barros Silva

PHP AULA1. Prof. Msc. Hélio Esperidião

REDES DE COMPUTADORES

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo

Universidade Federal de Mato Grosso

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

CURSO DE PROGRAMAÇÃO EM JAVA

GERAÇÃO DE RELATÓRIOS

3º Exercício Prático: DNS

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação e Designer para WEB

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Transcrição:

DESENVOLVIMENTO DE APLICAÇÕES JAVA WEB FRWTC-220 32 horas

CAPÍTULO 1 PLATAFORMA WEB... 10 1.1. Introdução... 10 1.2. A Plataforma WEB... 10 1.2.1. Cliente HTTP... 11 1.2.2. Servidor HTTP... 11 1.3. Protocolo HTTP Básico... 12 1.3.1. Métodos GET e POST... 15 1.3.1.1. Método GET... 15 1.3.1.2. Método POST... 17 1.3.2. Contexto e Sessão... 18 1.4. Modalidades de Serviço Web... 19 1.4.1. Serviço de informações... 20 1.4.2. Serviço de aplicações locais (rodam no cliente)... 20 1.4.3. Serviço de aplicações cliente/servidor... 20 1.5. CGI... 21 1.5.1. Problemas e limitações do CGI... 21 1.6. APIs do Lado Servidor... 22 1.7. Java Web Container... 23 1.8. Apache HTTP Server... 25 CAPÍTULO 2 HTML (HYPERTEXT MARKUP LANGUAGE). Error! Bookmark not defined. 2.1. Introdução... Error! Bookmark not defined. 2.2. Conceitos Iniciais... Error! Bookmark not defined. 2.2.1. Web Stateless... Error! Bookmark not defined. 2.3. Hipertexto... Error! Bookmark not defined. 2

2.4. HTML (HyperText Markup Language)... Error! Bookmark not defined. 2.4.1. Etiquetas (Tags)... Error! Bookmark not defined. 2.4.2. Edição de Documentos HTML... Error! Bookmark not defined. 2.4.2.1. Estrutura Básica de um Documento HTML... Error! Bookmark not defined. 2.4.3. Etiquetas de Cabeçalho <head>... Error! Bookmark not defined. 2.4.4. Etiquetas de Corpo <body>... Error! Bookmark not defined. 2.4.4.1. Etiquetas de Texto... Error! Bookmark not defined. 2.4.4.2. Etiquetas de Listas... Error! Bookmark not defined. 2.4.4.3. Etiquetas de Blocos... Error! Bookmark not defined. 2.4.4.4. Etiquetas de Apresentação... Error! Bookmark not defined. 2.4.4.5. Etiquetas de Objetos... Error! Bookmark not defined. 2.4.4.6. Etiquetas de Hiperligações... Error! Bookmark not defined. 2.4.4.7. Etiquetas de Caracteres Especiais e Símbolos.. Error! Bookmark not defined. 2.4.4.8. Etiquetas de Tabelas... Error! Bookmark not defined. 2.5. Formulários HTML... Error! Bookmark not defined. 2.5.1. Controles... Error! Bookmark not defined. 2.5.2. Elemento Form... Error! Bookmark not defined. 2.5.3. Tipos de Controles... Error! Bookmark not defined. 2.5.3.1. Input... Error! Bookmark not defined. 2.5.3.2. Botões... Error! Bookmark not defined. 2.5.3.3. CheckBoxes... Error! Bookmark not defined. 2.5.3.4. RadioButtons... Error! Bookmark not defined. 2.5.3.5. ComboBoxes... Error! Bookmark not defined. 2.5.3.7. Text Area... Error! Bookmark not defined. 2.5.3.6. Selecionar arquivo... Error! Bookmark not defined. 3

2.5.3.7. Controles Ocultos... Error! Bookmark not defined. 2.5.4. Focus... Error! Bookmark not defined. 2.5.4.1. Tabbing Navigation... Error! Bookmark not defined. 2.5.4.2. Access Key... Error! Bookmark not defined. 2.5.5. Controles Desabilitados... Error! Bookmark not defined. 2.6. Códigos de Retorno HTTP... Error! Bookmark not defined. CAPÍTULO 3 CSS (CASCADING STYLE SHEETS). Error! Bookmark not defined. 3.1. Introdução... Error! Bookmark not defined. 3.2. Conceitos Iniciais... Error! Bookmark not defined. 3.2.1. Vantagens... Error! Bookmark not defined. 3.2.2. Desvantagens... Error! Bookmark not defined. 3.3. Sintaxe... Error! Bookmark not defined. 3.3.1. Uso em HTML... Error! Bookmark not defined. 3.3.2. Comentários... Error! Bookmark not defined. 3.3.3. Seletor id... Error! Bookmark not defined. 3.3.4. Seletor class... Error! Bookmark not defined. 3.3.5. Background... Error! Bookmark not defined. 3.3.6. Text... Error! Bookmark not defined. 3.3.7. Font... Error! Bookmark not defined. 3.3.8. Link... Error! Bookmark not defined. CAPÍTULO 4 JAVASCRIPT... Error! Bookmark not defined. 4.1. Introdução... Error! Bookmark not defined. 4.2. Conceitos Iniciais... Error! Bookmark not defined. 4.2.1. Compatibilidade... Error! Bookmark not defined. 4.3. Arquitetura... Error! Bookmark not defined. 4.4. Sintaxe... Error! Bookmark not defined. 4

4.4.1. Uso em HTML... Error! Bookmark not defined. 4.4.2. Variáveis... Error! Bookmark not defined. 4.4.3. Funções e Eventos... Error! Bookmark not defined. 4.4.4. Alerts... Error! Bookmark not defined. CAPÍTULO 5 INTRODUÇÃO AO APACHE TOMCAT... Error! Bookmark not defined. 5.1. Introdução... Error! Bookmark not defined. 5.1.1. Conceitos Essenciais... Error! Bookmark not defined. 5.2. O Software Tomcat... Error! Bookmark not defined. 5.2.1. Linguagens: Java, HTML e XML... Error! Bookmark not defined. 5.2.2. Servlets e Java Server Pages (JSP)... Error! Bookmark not defined. 5.2.3. Instalando o Tomcat... Error! Bookmark not defined. 5.2.4. Configurando o Tomcat... Error! Bookmark not defined. 5.2.5. Iniciando o Tomcat... Error! Bookmark not defined. 5.2.6. Estrutura de Diretórios... Error! Bookmark not defined. 5.2.6.1. Descritores de Aplicação web.xml... Error! Bookmark not defined. CAPÍTULO 6 SERVLETS... Error! Bookmark not defined. 6.1. Introdução... Error! Bookmark not defined. 6.2. Conceitos Iniciais... Error! Bookmark not defined. 6.3. Principais Características... Error! Bookmark not defined. 6.4. Java Servlets... Error! Bookmark not defined. 6.4.1. Estrutura de uma Servlet... Error! Bookmark not defined. 6.4.2. Criando, Compilando e Executando uma Servlet... Error! Bookmark not defined. 6.4.3. Arquivo web.xml... Error! Bookmark not defined. 6.4.4. Aplicações Web... Error! Bookmark not defined. 6.4.5. Entrada e Saída em Servlets... Error! Bookmark not defined. 5

6.4.5.1. Limitações de Servlets, CGIS e tecnologias similares... Error! Bookmark not defined. 6.4.6. Passagem de Parâmetros... Error! Bookmark not defined. CAPÍTULO 7 JSP (JAVA SERVER PAGES)... Error! Bookmark not defined. 7.1. Introdução... Error! Bookmark not defined. 7.2. Conceitos Iniciais... Error! Bookmark not defined. 7.3. Java Server Pages... Error! Bookmark not defined. 7.3.1. Tags JSP... Error! Bookmark not defined. 7.3.1.1. Declaration tag... Error! Bookmark not defined. 7.3.1.2. Expression tag... Error! Bookmark not defined. 7.3.1.3. Directive tag... Error! Bookmark not defined. 7.3.1.4. Scriplet tag... Error! Bookmark not defined. 7.3.1.5. Action tag... Error! Bookmark not defined. 7.4. Controle de Sessão... Error! Bookmark not defined. 7.5. Cookies... Error! Bookmark not defined. 7.6. Sessões Web... Error! Bookmark not defined. CAPÍTULO 8 TAGLIBS... Error! Bookmark not defined. 8.1. Introdução... Error! Bookmark not defined. 8.2. Conceitos Iniciais... Error! Bookmark not defined. 8.3. Sintaxe... Error! Bookmark not defined. 8.3.1. Tipos de Tags... Error! Bookmark not defined. 8.3.1.1. Tags Simples... Error! Bookmark not defined. 8.3.1.2. Tags Com Atributos... Error! Bookmark not defined. 8.3.1.3. Tags Com Corpo... Error! Bookmark not defined. 8.3.2. Definindo Tags... Error! Bookmark not defined. 8.3.3. Criando Tags... Error! Bookmark not defined. 6

CAPÍTULO 9 FILTERS... Error! Bookmark not defined. 9.1. Introdução... Error! Bookmark not defined. 9.2. Conceitos Iniciais... Error! Bookmark not defined. CAPÍTULO 10 SECURITY... Error! Bookmark not defined. 10.1. Introdução... Error! Bookmark not defined. 10.2. Conceitos Essenciais... Error! Bookmark not defined. 10.3. Autenticação... Error! Bookmark not defined. 10.4. Autorização... Error! Bookmark not defined. 10.5. JAAS (Java Authentication and Authorization Service)... Error! Bookmark not defined. CAPÍTULO 11 WEBSERVICES... Error! Bookmark not defined. 11.1. Introdução... Error! Bookmark not defined. 11.2. Sessões Web... Error! Bookmark not defined. 11.3. Web Services... Error! Bookmark not defined. 11.3.1. Definição de serviços Web... Error! Bookmark not defined. 11.3.1. Modelos de Serviços WEB... Error! Bookmark not defined. 11.3.2. Padrões... Error! Bookmark not defined. 11.3.3. Aplicação de Serviços Web... Error! Bookmark not defined. 11.4. JAX-WS... Error! Bookmark not defined. 11.4.1. A Anotação Web Service... Error! Bookmark not defined. 11.4.2. A Anotação Web Method... Error! Bookmark not defined. 11.4.3. A Anotação Web Param... Error! Bookmark not defined. 11.4.4. A Anotação Web Result... Error! Bookmark not defined. 11.5. Contratos de Serviço Web... Error! Bookmark not defined. 11.6. Criando um Serviço Web simples... Error! Bookmark not defined. 11.6.1. Criando o Projeto Servidor... Error! Bookmark not defined. 7

11.6.2. Criando a Interface de Serviço... Error! Bookmark not defined. 11.6.3. Criando a Implementação do Serviço... Error! Bookmark not defined. 11.6.4. Criando o Publicador... Error! Bookmark not defined. 11.6.5. Publicando o Web Service... Error! Bookmark not defined. 11.6.6. Criando o Cliente... Error! Bookmark not defined. 11.6.7. Executando o Cliente... Error! Bookmark not defined. ANEXO I. ORIENTAÇÃO POR OBJETOS... Error! Bookmark not defined. 1. Principais Características... Error! Bookmark not defined. 2. Vantagens... Error! Bookmark not defined. 3. Desvantagens... Error! Bookmark not defined. 4. JAVA e Orientação por Objetos... Error! Bookmark not defined. 4.1. Classe... Error! Bookmark not defined. 4.2. Atributo... Error! Bookmark not defined. 4.3. Método... Error! Bookmark not defined. 4.4. Modificadores de Acessos... Error! Bookmark not defined. 4.5. Encapsulamento... Error! Bookmark not defined. 4.6. Construtor... Error! Bookmark not defined. 4.7. Pacote... Error! Bookmark not defined. 4.8. Herança... Error! Bookmark not defined. 4.9. Interface... Error! Bookmark not defined. 4.10. Objeto... Error! Bookmark not defined. 4.11. Polimorfismo... Error! Bookmark not defined. 4.12. Sobrecarga... Error! Bookmark not defined. 4.13. Sobrescrita... Error! Bookmark not defined. ANEXO II. CONCEITOS DE UML... Error! Bookmark not defined. 1. Diagrama de Classes... Error! Bookmark not defined. 8

ANEXO III. ECLIPSE... Error! Bookmark not defined. 1. Introdução... Error! Bookmark not defined. 1.1. Principais Características... Error! Bookmark not defined. 1.2. Versões... Error! Bookmark not defined. 1.3. Instalação... Error! Bookmark not defined. 2. Conceitos Essenciais... Error! Bookmark not defined. 2.1. Configurando o JRE... Error! Bookmark not defined. 2.2. Elementos de Interfaces... Error! Bookmark not defined. 2.2.1. Package Explorer... Error! Bookmark not defined. 2.2.2. Editor... Error! Bookmark not defined. 2.2.3. Área de Mensagens e Erros... Error! Bookmark not defined. 2.3. Executando um Programa JAVA... Error! Bookmark not defined. 2.4. Debug de um Programa JAVA... Error! Bookmark not defined. 2.4.1. Teclas de Atalho para Debug... Error! Bookmark not defined. 2.5. Pilotando o Eclipse (Teclas de Atalho)... Error! Bookmark not defined. ANEXO IV. JUNIT (TESTE UNITÁRIO)... Error! Bookmark not defined. 1. Introdução ao JUNIT... Error! Bookmark not defined. 2. Utilizando o JUNIT... Error! Bookmark not defined. ANEXO V. JDBC (JAVA DATABASE CONNECTIVITY)... Error! Bookmark not defined. 1. Conceitos... Error! Bookmark not defined. 2. Métodos do JDBC... Error! Bookmark not defined. Referências Bibliográficas... 27 9

CAPÍTULO 1 PLATAFORMA WEB 1.1. Introdução Este capítulo tem por objeto apresentar para o aluno o funcionamento arquitetural de aplicações que rodam sobre a WEB. Este capítulo apresenta os conceitos de servidor de aplicações, web container, CGI, http, HTML, Contexto e Sessão WEB. 1.2. A Plataforma WEB A plataforma web é baseada no protocolo HTTP. Este protocolo define um formato simples de transferência de dados entre um cliente (geralmente um Web Browser) e um servidor HTTP. O protocolo foi originalmente desenvolvido para permitir a visualização de páginas HTML e imagens estáticas, porém sua popularidade fez com que fosse utilizado também para a criação de aplicações Web. 10

Aplicações Web se caracterizam por realizar a maior parte de seu processamento no servidor, deixando para o cliente apenas as tarefas de formatação e exibição do conteúdo. Esta característica foi a responsável pela popularização das aplicações Web: não é necessário instalar nada além do Web Browser na máquina cliente, o que resolve uma série de problemas de instalação e configuração presentes em aplicações desktop tradicionais. 1.2.1. Cliente HTTP O Cliente HTTP é geralmente um Web Browser (Firefox, Internet Explorer, Google Chrome, Opera, etc.). Suas principais tarefas são a formatação e exibição de conteúdo. No entanto, com o advento da linguagem JavaScript estes clientes tem se tornado cada vez mais sofisticados, o que na prática tem movido algumas funções de processamento do servidor de volta para o cliente. 11

1.2.2. Servidor HTTP O servidor HTTP é responsável por processar as requisições HTTP enviadas pelos clientes. Ele normalmente faz isso através de leitura de arquivo (no caso de páginas HTML estáticas, imagens e documentos) ou através da execução de programas (no caso das aplicações web). Um site web ou aplicação web é geralmente composta por uma combinação de recursos estáticos e dinâmicos. 12

1.3. Protocolo HTTP Básico O protocolo HTTP é implementado sobre conexões TCP. Um cliente web normalmente abre uma conexão TCP para o servidor (normalmente na porta 80) e envia um comando GET ou POST. Mas para que este comando chegue até o servidor ele passa por um longo caminho. Qual é a mágica por trás de uma requisição HTTP simples que o usuário faz através do browser até que a página seja exibida em seu computador? Esta mágica acontece graças à arquitetura de funcionando da WEB. Quando um usuário faz uma requisição utilizando o browser esta requisição deve primeiramente encontrar o servidor que irá atendê-la. A localização do servidor se dá através da URL contida na requisição do usuário. Uma URL (Uniform Resource Locator) ou localizador padrão de recursos é o endereço de um recurso (um arquivo, uma impressora etc.), disponível em uma rede, seja a Internet ou uma rede corporativa ou uma intranet. Uma URL tem a seguinte estrutura: protocolo://máquina/caminho/recurso 13

O protocolo poderá ser HTTP, FTP, etc. O campo máquina designa o servidor que disponibiliza o documento ou recurso designado. O caminho especifica o local (geralmente num sistema de arquivos) onde se encontra o recurso dentro do servidor. Exemplo: http://www.frameworksystem.com/cursos/frwtc-220.html O protocolo é o HTTP, o servidor é designado por www.frameworksystem.com, o caminho do recurso é cursos e o recurso propriamente dito é a página frwtc-220.html. Quando o usuário faz uma chamada ao servidor www.frameworksystem.com é necessário que este servidor seja encontrado na rede. Para isto ele é endereçado com um endereço chamado IP. Este endereço permite que qualquer computador conectado a uma rede seja localizado de forma rápida e segura. Para que isto ocorra entra no processo um outro servidor chamado Servidor de DNS. O DNS (Domain Name System - Sistema de Nomes de Domínios) é um sistema de gerenciamento de nomes hierárquico e distribuído operando segundo duas definições: Examinar e atualizar seu banco de dados. Resolver nomes de servidores em endereços de rede (IPs). O servidor DNS traduz nomes para os endereços IP e endereços IP para nomes respectivos, e permitindo a localização de hosts em um domínio determinado. O servidor DNS secundário é uma espécie de cópia de segurança do servidor DNS primário. Quando não é possível encontrar um domínio através do servidor primário o sistema tenta resolver o nome através do servidor secundário. Existem 13 servidores DNS raiz no mundo todo e sem eles a Internet não funcionaria. Destes, dez estão localizados nos Estados Unidos da América, um na Ásia e dois na Europa. Para Aumentar a base instalada destes servidores, foram criadas Réplicas localizadas por todo o mundo, 14

inclusive no Brasil desde 2003. Ou seja, os servidores de diretórios responsáveis por prover informações como nomes e endereços das máquinas são normalmente chamados servidores de nomes. Na Internet, os serviços de nomes usado é o DNS, que apresenta uma arquitetura cliente/servidor, podendo envolver vários servidores DNS na resposta a uma consulta. Para que você possa fazer um teste simples para verificar a rota que sua requisição faz através da rede utilize no prompt do DOS o comando tracert e em seguida digite o domínio que você deseja localizar a rota. 15

1.3.1. Métodos GET e POST Os tópicos abaixo irão apresentar os conceitos dos métodos GET e POST. 1.3.1.1. Método GET 16

O método GET é utilizado normalmente para requisitar a exibição de uma página estática ou dinâmica. As informações enviadas pelo Cliente neste método têm tamanho limitado, o que não permite a passagem de parâmetros muito grandes. Geralmente a chamada do método GET é explícita, a qual pode ser utilizada para montar links em uma página HTML. Ainda assim, é possível no método GET passar parâmetros para aplicações no servidor através do uso da Query String: Formato: GET <uri> <protocolo>/<versão> <Cabeçalhos HTTP>: <valores> (RFC 822) <linha em branco> Exemplo: GET /checkmail?user=xxxxx&pass=yyyy HTTP/1.1 Host: www.example.com Accept: text/html 17

ATENÇÃO: Repare que a passagem de parâmetros através do método GET tem o formato par=valor, onde é possível a passagem de vários parâmetros separados pelo caracter especial &. O caracter? indica o início da passagem de parâmetros. 1.3.1.2. Método POST O método POST é utilizado para transferir informações de forma oculta. Este método tem uma série de vantagens sobre o método GET: 18

O número de caracteres enviados é muito alto não ficando limitado aos 255 do método GET. O usuário não saberá quais os dados que foram enviados para o servidor. Este é um método dinâmico onde o programador tem total controle da passagem de parâmetros. Formato: POST <uri> <protocolo>/<versão> <Cabeçalhos HTTP>: <valores> <linha em branco> <dados> Exemplo: POST /servlet/helloservlet HTTP/1.1 Host: www.example.com Accept: text/html Content-Type: application/x-www-form-urlencoded Content-Length: 32 home=cosby&favorite+flavor=flies 1.3.2. Contexto e Sessão Contexto de aplicação web Separa (isola) cada aplicação web no contêiner Engloba/organiza arquivos e recursos da aplicação web 19

Recursos da aplicação (pasta WEB-INF/): classes (classes/) e bibliotecas (lib/) Java, configurações (descritor web.xml etc.) Associado a um caminho URL inicial (/caminho) Em geral instalado (deployment) como pacote zip(.war) Sessão de usuário Associa um conjunto de páginas acessadas pelo mesmo usuário (cliente) web na aplicação, dentro de um intervalo de tempo (configurável) Gerida pelo contêiner web, via cookie ou parâmetro 1.4. Modalidades de Serviço Web Serviços web podem ser implementados em diferentes modalidades: 20

1.4.1. Serviço de informações Finalidade: Publicação de informações, multimídia Interatividade: Limitada a hipertexto Tecnologias (passivas): HTML, folhas de estilo (CSS) Estes serviços foram os serviços originalmente pensados para a Web. Eles se limitam a disponibilizar informações de forma passiva para o consumo do cliente. 1.4.2. Serviço de aplicações locais (rodam no cliente) Finalidade: Oferecer mais recursos interativos ao cliente Interatividade: Limitada pelo cliente Tecnologias (ativas): JavaScript, applets Java, Flash, ActiveX Estes serviços foram uma das primeiras extensões da web. Neles as páginas HTML contém referências para objetos mais sofisticados, que executam código na máquina cliente. 1.4.3. Serviço de aplicações cliente/servidor Finalidade: Oferecer interface para aplicações no servidor Interatividade: Limitada pela aplicação e servidor Web Tecnologias (ativas): CGI, ASP, ISAPI, Servlets, JSP 21

Os serviços do lado servidor são os mais sofisticados: combinam a interatividade das aplicações locais com a facilidade de implantação e poder de processamento do servidor HTTP. 1.5. CGI A especificação CGI (Common Gateway Interface) foi a primeira tentativa de estender o funcionamento de servidores Web através da execução de programas externos. Programas CGI podem ser escritos em qualquer linguagem de programação. A especificação limita-se a determinar os formatos de entrada e saída dos dados (HTTP). A característica principal é que o programa externo deve ser capaz de: Obter dados de entrada a partir de uma requisição HTTP Gerar uma resposta HTTP ncluindo os dados e parte do cabeçalho O CGI se tornou muito popular, pois permite a invocação de programas pelos clientes web e a geração de conteúdo dinâmico no servidor HTTP sem que seja necessário alterar o cliente web ou o protocolo HTTP. 1.5.1. Problemas e limitações do CGI O principal problema com a especificação CGI é o desempenho: a interface CGI requer que o servidor sempre execute um programa externo 22

para processar cada requisição HTTP. Processos externos consomem muitos recursos, o que limita o desempenho e escalabilidade dos servidores. Além disso, o uso de processos externos dificulta a comunicação entre o servidor HTTP e o programa CGI, uma vez que a única forma de troca de informações é através dos fluxos de entrada e saída do programa CGI e de variáveis de ambiente. 1.6. APIs do Lado Servidor A fim de tentar contornar os problemas com a especificação CGI diversas outras APIS foram implementadas: ISAPI (Microsoft) NSAPI (Netscape) Apache Server API 23

Estas APIS possuem a vantagem de executar os programas no mesmo espaço de endereçamento do servidor HTTP, o que facilita a comunicação e permite o uso de Threads ao invés de processos para processar as requisições. A principal desvantagem da utilização destas APIs está no fato de que elas não são portáveis entre plataformas e servidores HTTP diferentes. 1.7. Java Web Container Quando falamos dos diversos serviços disponíveis para fornecer conteúdo na WEB, é importante termos em mente os conceitos fundamentais destes serviços. Em muitos casos, alguns serviços possuem internamente a funcionalidade de outros serviços (ex: Tomcat). Mas conhecer o significado de cada serviço é muito importante na hora de decidir qual servidor será aplicado para cada situação. Abaixo serão apresentados os conceitos para cada tipo de serviço que podemos colocar na WEB: Web Server (Servidor Web) é um software que conversa com o browser via HTTP e presa pela escalabilidade de conteúdo estático, ou seja, supre as requisições de vários browsers ao mesmo tempo 24

(Ex: Apache Web Server). Um web server usa o protocolo HTTP para enviar ao browser conteúdo estático tal como páginas html, imagens, videos, etc. Não há programação do lado do servidor. Web Container é essencialmente um ambiente que controla Servlets (Ex: Apache Tomcat). Normalmente o significado é estendido para se referir a todo o software incluindo um mini-webserver, especialmente quando se fala de Tomcat como produto independente. O Tomcat além de prover a acesso a páginas estáticas como o Apache, também provê páginas dinâmicas através de Servlets e JSP. Um web container está sempre apto a fornecer conteúdo dinâmico. 25

Application Server (Servidor de Aplicação) é o resultado da especificação java EE (Ex: JBoss). É um software que contém um Web Container, um EJB Container, acesso JNDI e JMS ambiente tansacional com JTA e muitas outras tecnologias como Java Mail, JDBC e CORBA que juntas formam o ambiente EE. 1.8. Apache HTTP Server O Apache HTTP Server, comumente chamado de Apache é um software que implementa um Web Server notável que desempenha um papel chave no crescimento inicial da World Wide Web. Em 2009 tornou-se o 26

primeiro Web Server a superar o marco de 100 milhões de sites. O Apache foi a primeira alternativa viável para o antigo Communications Corporation Netscape (atualmente chamado Oracle Server Web iplanet), e desde então tem evoluído para rivalizar com outros servidores web em termos de funcionalidade e desempenho. Neste material não iremos abordar diretamente o uso do Apache HTTP Server, mas iremos abordar o Apache Tomcat. Como apresentado anteriormente, o Apache HTTP Server é capaz de prover apenas conteúdo estático nativamente. Para que este possa prover conteúdos dinâmicos como PHP e Perl é necessário que sejam incluídos módulos (mods) como plug-ins no Apache HTTP Server. No caso do Apache Tomcat, podemos caracterizá-lo como um Web Container que possui embutido um Apache HTTP Server. Desta forma, o Apache Tomcat é capaz de prover conteúdos estáticos (HTML, imagens, sons e vídeos) e dinâmicos (JSP e Servlets). CAPITULO II Acesse www.frameworksystem e veja o calendário da próxima turma. (31) 3646 1612 contato@frwtc.com 27

Referências Bibliográficas 1. Core Java 2, Volume I--Fundamentals, 6/E Cay S. Horstmann Gary Cornell, University of Connecticut 2. Core Java 2, Volume II--Fundamentals, 6/E Cay S. Horstmann Gary Cornell, University of Connecticut 3. Java: Como Programar Paul J. Deitel 4. Head First Java Sierra Kathy Bates Bert 5. UML Essencial Martin Fowler 6. Documentação Oficial Oracle http://docs.oracle.com/javase/ 28