introducao java web globalcode

70
Globalcode – open4education 1 Programação Web com Java

Upload: marcelapanda

Post on 21-Jul-2016

43 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Introducao Java Web Globalcode

Globalcode – open4education1

Programação Web com Java

Page 2: Introducao Java Web Globalcode

Globalcode – open4education2

• Introdução• Conceitos básicos de Web• Desafios no desenvolvimento Web• Histórico do desenvolvimento para Internet • Plataforma Java Enterprise Edition• Arquiteturas Web com JavaEE

Agenda – Parte teórica

Page 3: Introducao Java Web Globalcode

Globalcode – open4education3

• Instalação de um servidor Web Java• Criando um aplicativo Web• Java Server Pages• Java Servlet• Demonstração

Agenda – Parte prática

Page 4: Introducao Java Web Globalcode

Globalcode – open4education4

Parte teórica

Page 5: Introducao Java Web Globalcode

Globalcode – open4education5

• Introdução• Conceitos básicos de Web• Desafios no desenvolvimento Web• Histórico do desenvolvimento para Internet • Plataforma Java Enterprise Edition• Arquiteturas Web com JavaEE

Agenda – Parte teórica

Page 6: Introducao Java Web Globalcode

Globalcode – open4education6

Introdução

• A primeira arquitetura popular foi a arquitetura mono-camada / monolítica

• Com o downsizing, aplicativos passaram a ser desenvolvidos em duas camadas: client-server

Page 7: Introducao Java Web Globalcode

Globalcode – open4education7

Introdução

• A partir da década de 90, aplicativos passaram a ser desenvolvidos em múltiplas camadas (3, 4 ou mais):

Page 8: Introducao Java Web Globalcode

Globalcode – open4education8

Introdução

• A forma mais popular atualmente para desenvolvimento em três camadas, é utilizando um servidor Web:

Thin-clientPequenas validações

Terminal burro coloridoServidor Web

Regras de negócioRegras de apresentação

Database ServerRegras de

armazenamentoRegras de negócio

Page 9: Introducao Java Web Globalcode

Globalcode – open4education9

Introdução

• A arquitetura Web é muito dinâmica para mudanças, pois não temos um aplicativo cliente nas máquinas dos usuários

• A arquitetura Web é acessível, pois pode ser disponibilizada na Internet

• Arquiteturas Web podem atender a grandes demandas

• Podemos acessar um aplicativo Web com diferentes computadores e dispositivos: celular, PDA’s wireless, PC’s, Apple, Unix, Torradeiras (TORRADEIRAS?!?!?)

Page 10: Introducao Java Web Globalcode

Globalcode – open4education10

• Introdução• Conceitos básicos de Web• Desafios no desenvolvimento Web• Histórico do desenvolvimento para Internet • Plataforma Java Enterprise Edition• Arquiteturas Web com JavaEE

Agenda – Parte teórica

Page 11: Introducao Java Web Globalcode

Globalcode – open4education11

Conceitos Web

• Comunicação client-server ocorre através do protocolo HTTP (HyperText Transfer Protocol);

• HTTP é um protocolo de alto nível baseado no TCP/IP;

• Tipicamente trafegamos arquivos / conteúdo HTML (Hyper Text Markup Language)

HTTP

HTML

Page 12: Introducao Java Web Globalcode

Globalcode – open4education12

HTTP

• O protocolo HTTP foi criado para interligar universidades americanas

• Podemos enviar dados (formulários e arquivos) por um browser através de HTTP

• Podemos receber dados de um servidor HTTP

• Podemos receber dados em diferentes formatos:�HTML, TXT, PDF, Excel, GIF, JPG, BMP, etc.

Page 13: Introducao Java Web Globalcode

Globalcode – open4education13

HTML

• É uma linguagem de marcação interpretada por browsers

• Com as tags de marcação podemos criar páginas com textos, tabelas, imagens e hyperlinks

• Páginas HTML são documentos texto que contém códigoHTML, com a extensão .html ou .htm

• HTML pode ser utilizado para construção de páginasestáticas ou em conjunto com outra linguagem (JSP, ASP, PHP, entre outras) para construção de páginas dinâmicas.

Page 14: Introducao Java Web Globalcode

Globalcode – open4education14

Exemplo: exemploHTML.html

<HTML><HEAD>

<TITLE>Exemplo documento HTML</TITLE></HEAD><BODY>

Tabela de pre ços <br><br><TABLE border="1">

<TR><TD> Televisão </TD><TD> R$ 400,00 </TD>

</TR><TR>

<TD> Coca-cola </TD><TD> R$ 2,00 </TD> </TR>

</TABLE><BR><BR><A HREF="http://www.globalcode.com.br">Globalcode</ A>

</BODY></HTML>

HTML

Page 15: Introducao Java Web Globalcode

Globalcode – open4education15

CSS

• Cascade Style Sheet

• Quando utilizamos HTML, todas as configurações (como fontes, cores e tabelas) são colocadas dentro da página HTML.

• Em aplicações com muitas páginas HTML, a alteração de estilos tende a ser muito trabalhosa

• O CSS é utilizado para retirar estas configurações de dentro das páginas HTML, colocando-as dentro de um arquivo com a extensão .css

Page 16: Introducao Java Web Globalcode

Globalcode – open4education16

CSS

• Podemos redefinir as tags existentes no HTML, como a tag para hyper link, tabelas entre outros, ou podemos definirnossas próprias tags

• Vamos analisar o exemplo exemplo.css que altera a tag para hyper link

a{

text-decoration: none;font-family: Arial, Helvetica, sans-serif;font-weight: bold; color: #FFCC33

}

Page 17: Introducao Java Web Globalcode

Globalcode – open4education17

Exemplo: exemploHTML.html

<HTML><HEAD>

<LINK rel="stylesheet “ type="text/css “ href="exemplo.css" />

<TITLE> Exemplo documento HTML</TITLE></HEAD>

<BODY> Tabela de pre ços <br><br><TABLE border="1">

<TR><TD> Televisão </TD><TD> R$ 400,00 </TD></TR><TR><TD> Coca-cola </TD><TD> R$ 2,00 </TD></TR>

</TABLE><BR><BR><A HREF="http://www.globalcode.com.br">Globalcode < /A>

</BODY></HTML>

CSS

Page 18: Introducao Java Web Globalcode

Globalcode – open4education18

JavaScript

• JavaScript é uma linguagem propriamente dita e possui tipos de dados, condicionais, loops e funções

• O JavaScript foi desenvolvido pela Netscape

• JavaScript é diferente de Java conceitualmente

• JavaScript tem uma sintaxe muito semelhante àsintaxe de código Java

Page 19: Introducao Java Web Globalcode

Globalcode – open4education19

JavaScript

• JavaScript é utilizada em muitas páginas Web para:� melhorar o design das páginas� fazer validação de campos em formulários � esconder e exibir campos� identificar qual o browser está sendo utilizado� entre outras coisas

Page 20: Introducao Java Web Globalcode

Globalcode – open4education20

JavaScript

• O código JavaScript pode ser colocado dentro do HTML ouem um arquivo separado com a extensão .js� Exemplo testeJS.html

• Vamos analisar o código do testeJS

<SCRIPT type="text/javascript">function validate(){

if (document.form1.nome.value.length < 1){alert("Por favor digite seu nome!");return false;

} elsereturn true;

}</SCRIPT>

Page 21: Introducao Java Web Globalcode

Globalcode – open4education21

<BODY><FORM name="form1"

action="exemploHTML.html" onsubmit="return validate() ">

Nome <INPUT type="text" name="nome" > <INPUT type="submit" value="Enviar">

</FORM></BODY>

JavaScript

Page 22: Introducao Java Web Globalcode

Globalcode – open4education22

XML

• eXtensible Markup Language

• É um documento texto, assim como HTML,demarcado por tags;

• É a evolução do documento texto, pois inclui não só o dado texto, mas também o que significa aquele dado

• Suporte a múltiplos idiomas

• Pode ser validado por um documento de regras de formatação (DTD Data Type Definition)

Page 23: Introducao Java Web Globalcode

Globalcode – open4education23

XML

• Tipicamente utilizado para� troca de documentos entre instituições (governo com bancos)� documentos de configuração de aplicativos� geração de PDF’s, entre outros.

• Contém dado e meta-dado:

<extrato><numeroConta>1234</numeroConta><nomeCliente>Bill Joy</nomeCliente><saldoAtual>12.32</saldoAtual>

</extrato>

MetadadoDado

Page 24: Introducao Java Web Globalcode

Globalcode – open4education24

• Introdução• Conceitos básicos de Web• Desafios no desenvolvimento Web• Histórico do desenvolvimento para Internet • Plataforma Java Enterprise Edition• Arquiteturas Web com JavaEE

Agenda – Parte teórica

Page 25: Introducao Java Web Globalcode

Globalcode – open4education25

Desafios da Web

• Mescla de tecnologias: Java, JavaScript, CSS, HTML, JSP, SQL, HTTP, XML, etc

• As telas no browser são pouco dinâmicas

• O protocolo HTTP é “sessionless”, ou seja, não mantém conexão TCP/IP ativa

• O cliente tem que requisitar dados para o servidor HTTP

• O servidor HTTP não pode “empurrar” dados para o cliente sem que ele peça

Page 26: Introducao Java Web Globalcode

Globalcode – open4education26

Desafios da Web

• Telas com muito dinamismo exigem muito JavaScript, que por sua vez, têm problemas de compatibilidade entre os diversos navegadores do mercado

• Conclusão� é melhor adotar mais de uma tecnologia para quando a tela for

complexa (tela de pedido...)

• As alternativas para interfaces Web ricas (RIA - RichInternet Application) são:� Java Applet / Java Swing� Flash� Ajax

Page 27: Introducao Java Web Globalcode

Globalcode – open4education27

• Introdução• Conceitos básicos de Web• Desafios no desenvolvimento Web• Histórico do desenvolvimento para Internet• Plataforma Java Enterprise Edition• Arquiteturas Web com JavaEE

Agenda – Parte teórica

Page 28: Introducao Java Web Globalcode

Globalcode – open4education28

Histórico

• O protocolo HTTP foi especificado para trabalhar com arquivos estáticos, ou seja, atua como um protocolo de transferência de arquivos

• Para aplicativos, tipicamente precisamos de conteúdo HTML com conteúdo dinâmico fornecido por um banco de dados

• Foi “adaptado” para servir dados de aplicativos

Page 29: Introducao Java Web Globalcode

Globalcode – open4education29

Histórico

• Para servir arquivos por HTTP, o seguinte processo é executado:

arquivo.html

Humm... Sei que extensão HTML é um arquivo e não programa....

Vou ler o arquivo do hard-disk e

entregá-lo para o usuário...

Page 30: Introducao Java Web Globalcode

Globalcode – open4education30

Histórico

• Para servir arquivos por HTTP, o seguinte processo é executado:

Humm... Sei que extensão EXE é um programa....

1.Vou executar este programa por aqui...

2.Vou devolver como resposta o conteúdo que este programa imprimir na tela

Page 31: Introducao Java Web Globalcode

Globalcode – open4education31

Histórico

• Esta técnica é chamada de CGI – CommonGateway Interface

• Foi a primeira técnica utilizada no desenvolvimento de aplicativos Web

• O seu problema é que os programas não são residentes, ou seja:�A cada solicitação, o programa é carregado e em

seguida descarregado

Page 32: Introducao Java Web Globalcode

Globalcode – open4education32

Histórico

• Com Java, o mesmo conceito é utilizado porém os programas (máquina virtual + classes) ficam residentes na memória do servidor em questão

• Podemos concluir que a arquitetura inicial oferece um menor desempenho e consome mais hardware que Java

Page 33: Introducao Java Web Globalcode

Globalcode – open4education33

Histórico

• Com Java podemos criar programas que são executados no servidor HTTP através de JavaServlet e JavaServer Page

• Também podemos atender uma demanda maior consumindo menor quantidade de recursos se comparado com “CGI’s puros”

Page 34: Introducao Java Web Globalcode

Globalcode – open4education34

• Introdução• Conceitos básicos de Web• Desafios no desenvolvimento Web• Histórico do desenvolvimento para Internet • Plataforma Java Enterprise Edition• Arquiteturas Web com JavaEE

Agenda – Parte teórica

Page 35: Introducao Java Web Globalcode

Globalcode – open4education35

JavaEE para Web

• É a plataforma Java para desenvolvimento Web

• Tomcat, Websphere, Weblogic, JRun são servidores Web compatíveis com JavaEE

• Para quem trabalha com Microsoft: é o IIS do Java

• Podemos adaptar o Internet Information Server para adicionar suporta à Java na plataforma Microsoft

Page 36: Introducao Java Web Globalcode

Globalcode – open4education36

JavaEE para Web

• A plataforma JavaEE para Web é consagrada e de baixo risco

• Muitos casos de sucesso�Ebay�Amazon� Instituições bancárias�Grandes redes de supermercados... Entre outros

Page 37: Introducao Java Web Globalcode

Globalcode – open4education37

JavaEE para Web

• Desenvolvemos aplicativos Web com Java e JavaEEatravés de:� Classes Java comunicam com banco de dados� Classes Java que representam as entidades em objetos� Classes Java que processam dados das entidades� Arquivos Web: HTML / CSS / JavaScript� Páginas JSP’s� Componentes JavaServet (classes Java que podem ser acionadas

por HTTP)� Arquivo de configuração XML

• Um aplicativo Web pode ser compactado em um único arquivo com extensão .war

Page 38: Introducao Java Web Globalcode

Globalcode – open4education38

• Introdução• Conceitos básicos de Web• Desafios no desenvolvimento Web• Histórico do desenvolvimento para Internet • Plataforma Java Enterprise Edition• Arquiteturas Web com JavaEE

Agenda – Parte teórica

Page 39: Introducao Java Web Globalcode

Globalcode – open4education39

Arquiteturas Web

• Podemos trabalhar com arquiteturas simples, onde codificamos tudo em páginas JSP’s

• Podemos trabalhar arquiteturas que dividem as responsabilidades da solução em diversas classes

• Uma forma tradicional de dividir responsabilidades é conhecida por M.V.C. (Model View andController)

• Com MVC podemos reaproveitar uma entidade em diferentes visualizações / “telas”

Page 40: Introducao Java Web Globalcode

Globalcode – open4education40

Parte prática

Page 41: Introducao Java Web Globalcode

Globalcode – open4education41

• Instalação de um servidor Web Java

• Criando um aplicativo Web• Java Server Pages

• Java Servlet• Demonstração

Agenda – Parte prática

Page 42: Introducao Java Web Globalcode

Globalcode – open4education42

Instalação

• Antes de instalar um servidor Web Java, precisamos instalar o JDK Standard Edition

• Download a partir da URL: http://java.sun.com/javase/downloads/index.jsp

• Pode ser feito o download com o Netbeans

• No Windows é um executável installshield

• A instalação é simples, Next até Finish...

Page 43: Introducao Java Web Globalcode

Globalcode – open4education43

Diretório de instalação padrão

Compilador, máquina virtual, documentador etc..

Aplicativos de exemplo

Ambiente de execução (Java Runtime Environment)

Arquivos .h para integração código nativo

Instalação do JDK

Page 44: Introducao Java Web Globalcode

Globalcode – open4education44

Instalação do JDK

JAVA_HOME & PATH

• Devemos criar uma variável de ambiente chamada JAVA_HOME, indicando o local de instalação do Kit

• Esta variável é utilizada para que aplicativos que dependem de Java possam localizar a máquina virtual

• Para facilitar o uso do compilador e interpretador, recomendamos colocar o diretório %JAVA_HOME%\bin no PATH

Page 45: Introducao Java Web Globalcode

Globalcode – open4education45

1. Clicar com botão direito no “Meu Computador”, em seguida clique em propriedades:

Instalação do JDK

Page 46: Introducao Java Web Globalcode

Globalcode – open4education46

2. Clique em “Avançado” / “Advanced”

3. Clique em “Variáveis de Ambiente” / “EnvironmentVariables”

Instalação do JDK

Page 47: Introducao Java Web Globalcode

Globalcode – open4education47

4. Clique em “New” / “Novo”

5. Preencha os campos com os seguintes valores:

Atenção: não colocar \bin

Instalação do JDK

Page 48: Introducao Java Web Globalcode

Globalcode – open4education48

6. Clique em “PATH”, em seguida “Edit” / “Editar”

7. Preencha os campos com os seguintes valores:

Se você instalou em um diretório diferente do default, indique-o aqui!

Instalação do JDK

Page 49: Introducao Java Web Globalcode

Globalcode – open4education49

Instalação do Web Server

• Temos diversos servidores Web para Java:� Apache Tomcat (gratuito / referência)� WebSphere� JRun� WebLogic� Oracle OC4J� Jetty� Sybase Application Server� Sun Application Server� E mais n opções...

• Vamos utilizar Tomcat� tudo que funciona no Tomcat funciona em qualquer servidor Web

Java

Page 50: Introducao Java Web Globalcode

Globalcode – open4education50

Instalação do Web Server

• Download do Tomcat pode ser feito através da URL http://tomcat.apache.org/

• Recomendamos o uso da versão 5.x, evitar beta

• Windows� uma versão EXE com installshield;

• Outras plataformas� um arquivo ZIP

• Não esquecer do pré-requisito de instalar o JDK Standard Edition...

Page 51: Introducao Java Web Globalcode

Globalcode – open4education51

1. Ao disparar a instalação...

2. LicenseAgreement

3. Tipo da instalação

4. Local da instalação

Instalação do Web Server

Page 52: Introducao Java Web Globalcode

Globalcode – open4education52

5. Senha de administrador

6. Local do JDK

7. Instalação concluida

Instalação do Web Server

Page 53: Introducao Java Web Globalcode

Globalcode – open4education53

Instalação do Web Server

• Para iniciar o Tomcat utilize os serviços do Windows:

Page 54: Introducao Java Web Globalcode

Globalcode – open4education54

• Por padrão o Tomcat utiliza a porta 8080, portanto para testarmos se estáfuncionando, acesse a URL: http://localhost:8080

Instalação do Web Server

Page 55: Introducao Java Web Globalcode

Globalcode – open4education55

• Na URL: http://localhost:8080/admin

você pode administrar e configurar características do Tomcat

Instalação do Web Server

Page 56: Introducao Java Web Globalcode

Globalcode – open4education56

• Instalação de um servidor Web Java• Criando um aplicativo Web• Java Server Pages• Java Servlet• Demonstração

Agenda – Parte prática

Page 57: Introducao Java Web Globalcode

Globalcode – open4education57

• As aplicações são instaladas (por padrão) no diretório webapps do Tomcat

• Cada sub-diretório representa um aplicativo Web

Criando um aplicativo Web

Page 58: Introducao Java Web Globalcode

Globalcode – open4education58

Criando um aplicativo Web

• Para criar um novo aplicativo, criar a seguinte estrutura de diretórios:

Diretório do aplicativo onde colocaremos Web File JSP’s, HTML’s, GIF’s, CSS, etc.

Diretório especial de configuração e classes Java,, conterá um arquivo chamado web.xml. Configura o aplicativo web.

Colocaremos as classes Java de processamento, acesso a banco de dados, servlets, etc.

Page 59: Introducao Java Web Globalcode

Globalcode – open4education59

Criando um aplicativo Web

• Vamos colocar um arquivo index.html que servirácomo página de entrada:

index.html

<html><body><p>Meu primeiro aplicativo Web Java </p></body></html>

Page 60: Introducao Java Web Globalcode

Globalcode – open4education60

Criando um aplicativo Web

• Agora podemos acessar nosso aplicativo através da URL: http://localhost:8080/MeuAplicativoWeb

Page 61: Introducao Java Web Globalcode

Globalcode – open4education61

• Instalação de um servidor Web Java• Criando um aplicativo Web• Java Server Pages• Java Servlet• Demonstração

Agenda – Parte prática

Page 62: Introducao Java Web Globalcode

Globalcode – open4education62

Java Server Pages

• É uma tecnologia Java para geração de conteúdo Web dinâmico (estático + banco de dados, por exemplo)

• Permite mesclar código HTML com código Java:

<html ><head >

<title >Olá Mundo </ title ></ head ><body >

Código HTML puro <br ><% for ( int x=0;x<100;x++) { %>

<p>Olá Mundo com laço: <%= x %></ p><%} %>

</ body ></ html >

Page 63: Introducao Java Web Globalcode

Globalcode – open4education63

Java Server Pages

• Parecido com ASP, porém no lugar de Basic utilizamos Java

• Robusto, flexível e componentizável

• Permite a criação de aplicativos simples, inteiramente escritos dentro dos JSP’s (model one)

• Permite a criação de aplicativos profissionais, utilizando técnicas avançadas de modelagem como M.V.C.

• Rápido

• É transformado em Servlet antes da sua execução

Page 64: Introducao Java Web Globalcode

Globalcode – open4education64

• Instalação de um servidor Web Java• Criando um aplicativo Web• Java Server Pages• Java Servlet• Demonstração

Agenda – Parte prática

Page 65: Introducao Java Web Globalcode

Globalcode – open4education65

Java Servlet

• Tecnologia que “mãe” do JSP

• Todo JSP é transformado em um Servlet

• É uma classe Java que estende HttpServlet

• Deve ser declarado e configurado no web.xml

• Servlet Vs. JSP:� Servet = mais utilizado para recepção/controle de requisições Web� JSP = mais utilizado para geração de conteúdo

Page 66: Introducao Java Web Globalcode

Globalcode – open4education66

package xpto ;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;

public class OlaMundo extends HttpServlet {public void doGet(HttpServletRequest request,

HttpServletResponse response) throws IOException, ServletException

{response.setContentType(" text/html ");PrintWriter out = response.getWriter();out.println(" <html> ");out.println(" <body> ");out.println(" <head> ");out.println(" <title>Hello World!</title> ");out.println(" </head> ");out.println(" <body> ");out.println(" <h1>Hello World!</h1> ");out.println(" </body> ");out.println(" </html> ");

}}

Java Servlet

Page 67: Introducao Java Web Globalcode

Globalcode – open4education67

Java Servlet

Page 68: Introducao Java Web Globalcode

Globalcode – open4education68

• Instalação de um servidor Web Java• Criando um aplicativo Web• Java Server Pages• Java Servlet• Demonstração

Agenda – Parte prática

Page 69: Introducao Java Web Globalcode

Globalcode – open4education69

Demonstração

Page 70: Introducao Java Web Globalcode

Globalcode – open4education70

Alguns links Minicursos: http://www.globalcode.com.br/gratuitos/miniCursos

Vídeo-palestras do Profissão Java: http://www.profissaojava.com.br/edicoes/2010/videos

The Developers Conference (TDC): http://www.thedevelopersconference.com.br/tdc/2010/sp/videos/

Globalcoders: http://blog.globalcode.com.br/

EletronLivre: http://www.eletronlivre.com.br/