You are on page 1of 70

Globalcode open4education 1

Programao Web com Java


Globalcode open4education 2
Introduo
Conceitos bsicos de Web
Desafios no desenvolvimento Web
Histrico do desenvolvimento para Internet
Plataforma Java Enterprise Edition
Arquiteturas Web com JavaEE
Agenda Parte terica
Globalcode open4education 3
Instalao de um servidor Web Java
Criando um aplicativo Web
Java Server Pages
Java Servlet
Demonstrao
Agenda Parte prtica
Globalcode open4education 4
Parte terica
Globalcode open4education 5
Introduo
Conceitos bsicos de Web
Desafios no desenvolvimento Web
Histrico do desenvolvimento para Internet
Plataforma Java Enterprise Edition
Arquiteturas Web com JavaEE
Agenda Parte terica
Globalcode open4education 6
Introduo
A primeira arquitetura popular foi a arquitetura
mono-camada / monoltica
Com o downsizing, aplicativos passaram a ser
desenvolvidos em duas camadas: client-server
Globalcode open4education 7
Introduo
A partir da dcada de 90, aplicativos passaram a
ser desenvolvidos em mltiplas camadas (3, 4 ou
mais):
Globalcode open4education 8
Introduo
A forma mais popular atualmente para
desenvolvimento em trs camadas, utilizando um
servidor Web:
Thin-client
Pequenas validaes
Terminal burro colorido
Servidor Web
Regras de negcio
Regras de apresentao
Database Server
Regras de
armazenamento
Regras de negcio
Globalcode open4education 9
Introduo
A arquitetura Web muito dinmica para mudanas, pois
no temos um aplicativo cliente nas mquinas dos usurios
A arquitetura Web acessvel, pois pode ser
disponibilizada na Internet
Arquiteturas Web podem atender a grandes demandas
Podemos acessar um aplicativo Web com diferentes
computadores e dispositivos: celular, PDAs wireless, PCs,
Apple, Unix, Torradeiras (TORRADEIRAS?!?!?)
Globalcode open4education 10
Introduo
Conceitos bsicos de Web
Desafios no desenvolvimento Web
Histrico do desenvolvimento para Internet
Plataforma Java Enterprise Edition
Arquiteturas Web com JavaEE
Agenda Parte terica
Globalcode open4education 11
Conceitos Web
Comunicao client-server ocorre atravs do protocolo
HTTP (HyperText Transfer Protocol);
HTTP um protocolo de alto nvel baseado no TCP/IP;
Tipicamente trafegamos arquivos / contedo HTML (Hyper
Text Markup Language)
HTTP
HTML
Globalcode open4education 12
HTTP
O protocolo HTTP foi criado para interligar
universidades americanas
Podemos enviar dados (formulrios e arquivos) por
um browser atravs de HTTP
Podemos receber dados de um servidor HTTP
Podemos receber dados em diferentes formatos:
HTML, TXT, PDF, Excel, GIF, JPG, BMP, etc.
Globalcode open4education 13
HTML
uma linguagem de marcao interpretada por browsers
Com as tags de marcao podemos criar pginas com
textos, tabelas, imagens e hyperlinks
Pginas HTML so documentos texto que contm cdigo
HTML, com a extenso .html ou .htm
HTML pode ser utilizado para construo de pginas
estticas ou em conjunto com outra linguagem (JSP, ASP,
PHP, entre outras) para construo de pginas dinmicas.
Globalcode open4education 14
Exemplo: exemploHTML.html
<HTML>
<HEAD>
<TITLE>Exemplo documento HTML</TITLE>
</HEAD>
<BODY>
Tabela de preos <br><br>
<TABLE border="1">
<TR>
<TD> Televiso </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
Globalcode open4education 15
CSS
Cascade Style Sheet
Quando utilizamos HTML, todas as configuraes (como
fontes, cores e tabelas) so colocadas dentro da pgina
HTML.
Em aplicaes com muitas pginas HTML, a alterao de
estilos tende a ser muito trabalhosa
O CSS utilizado para retirar estas configuraes de
dentro das pginas HTML, colocando-as dentro de um
arquivo com a extenso .css
Globalcode open4education 16
CSS
Podemos redefinir as tags existentes no HTML, como a tag
para hyper link, tabelas entre outros, ou podemos definir
nossas prprias 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
}
Globalcode open4education 17
Exemplo: exemploHTML.html
<HTML>
<HEAD>
<LINK
rel="stylesheet type="text/css href="exemplo.css" />
<TITLE> Exemplo documento HTML</TITLE>
</HEAD>
<BODY>
Tabela de preos <br><br>
<TABLE border="1">
<TR><TD> Televiso </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
Globalcode open4education 18
JavaScript
JavaScript uma linguagem propriamente dita e
possui tipos de dados, condicionais, loops e
funes
O JavaScript foi desenvolvido pela Netscape
JavaScript diferente de Java conceitualmente
JavaScript tem uma sintaxe muito semelhante
sintaxe de cdigo Java
Globalcode open4education 19
JavaScript
JavaScript utilizada em muitas pginas Web
para:
melhorar o design das pginas
fazer validao de campos em formulrios
esconder e exibir campos
identificar qual o browser est sendo utilizado
entre outras coisas
Globalcode open4education 20
JavaScript
O cdigo JavaScript pode ser colocado dentro do HTML ou
em um arquivo separado com a extenso .js
Exemplo testeJS.html
Vamos analisar o cdigo do testeJS
<SCRIPT type="text/javascript">
function validate(){
if (document.form1.nome.value.length < 1){
alert("Por favor digite seu nome!");
return false;
} else
return true;
}
</SCRIPT>
Globalcode open4education 21
<BODY>
<FORM name="form1"
action="exemploHTML.html"
onsubmit="return validate()">
Nome <INPUT type="text" name="nome" >
<INPUT type="submit" value="Enviar">
</FORM>
</BODY>
JavaScript
Globalcode open4education 22
XML
eXtensible Markup Language
um documento texto, assim como HTML,demarcado por
tags;
a evoluo do documento texto, pois inclui no s o dado
texto, mas tambm o que significa aquele dado
Suporte a mltiplos idiomas
Pode ser validado por um documento de regras de
formatao (DTD Data Type Definition)
Globalcode open4education 23
XML
Tipicamente utilizado para
troca de documentos entre instituies (governo com bancos)
documentos de configurao de aplicativos
gerao de PDFs, entre outros.
Contm dado e meta-dado:
<extrato>
<numeroConta>1234</numeroConta>
<nomeCliente>Bill Joy</nomeCliente>
<saldoAtual>12.32</saldoAtual>
</extrato>
Metadado
Dado
Globalcode open4education 24
Introduo
Conceitos bsicos de Web
Desafios no desenvolvimento Web
Histrico do desenvolvimento para Internet
Plataforma Java Enterprise Edition
Arquiteturas Web com JavaEE
Agenda Parte terica
Globalcode open4education 25
Desafios da Web
Mescla de tecnologias: Java, JavaScript, CSS, HTML, JSP,
SQL, HTTP, XML, etc
As telas no browser so pouco dinmicas
O protocolo HTTP sessionless, ou seja, no mantm
conexo TCP/IP ativa
O cliente tem que requisitar dados para o servidor HTTP
O servidor HTTP no pode empurrar dados para o cliente
sem que ele pea
Globalcode open4education 26
Desafios da Web
Telas com muito dinamismo exigem muito JavaScript, que
por sua vez, tm problemas de compatibilidade entre os
diversos navegadores do mercado
Concluso
melhor adotar mais de uma tecnologia para quando a tela for
complexa (tela de pedido...)
As alternativas para interfaces Web ricas (RIA - Rich
Internet Application) so:
Java Applet / Java Swing
Flash
Ajax
Globalcode open4education 27
Introduo
Conceitos bsicos de Web
Desafios no desenvolvimento Web
Histrico do desenvolvimento para Internet
Plataforma Java Enterprise Edition
Arquiteturas Web com JavaEE
Agenda Parte terica
Globalcode open4education 28
Histrico
O protocolo HTTP foi especificado para trabalhar
com arquivos estticos, ou seja, atua como um
protocolo de transferncia de arquivos
Para aplicativos, tipicamente precisamos de
contedo HTML com contedo dinmico fornecido
por um banco de dados
Foi adaptado para servir dados de aplicativos
Globalcode open4education 29
Histrico
Para servir arquivos por HTTP, o seguinte
processo executado:
arquivo.html
Humm... Sei que extenso HTML
um arquivo e no programa....
Vou ler o arquivo
do hard-disk e
entreg-lo para o
usurio...
Globalcode open4education 30
Histrico
Para servir arquivos por HTTP, o seguinte
processo executado:
Humm... Sei que extenso
EXE um programa....
1.Vou executar
este programa
por aqui...
2.Vou devolver
como resposta o
contedo que
este programa
imprimir na tela
Globalcode open4education 31
Histrico
Esta tcnica chamada de CGI Common
Gateway Interface
Foi a primeira tcnica utilizada no desenvolvimento
de aplicativos Web
O seu problema que os programas no so
residentes, ou seja:
A cada solicitao, o programa carregado e em
seguida descarregado
Globalcode open4education 32
Histrico
Com Java, o mesmo conceito utilizado porm os
programas (mquina virtual + classes) ficam
residentes na memria do servidor em questo
Podemos concluir que a arquitetura inicial oferece
um menor desempenho e consome mais hardware
que Java
Globalcode open4education 33
Histrico
Com Java podemos criar programas que so
executados no servidor HTTP atravs de
JavaServlet e JavaServer Page
Tambm podemos atender uma demanda maior
consumindo menor quantidade de recursos se
comparado com CGIs puros
Globalcode open4education 34
Introduo
Conceitos bsicos de Web
Desafios no desenvolvimento Web
Histrico do desenvolvimento para Internet
Plataforma Java Enterprise Edition
Arquiteturas Web com JavaEE
Agenda Parte terica
Globalcode open4education 35
JavaEE para Web
a plataforma Java para desenvolvimento Web
Tomcat, Websphere, Weblogic, JRun so
servidores Web compatveis com JavaEE
Para quem trabalha com Microsoft: o IIS do Java
Podemos adaptar o Internet Information Server
para adicionar suporta Java na plataforma
Microsoft
Globalcode open4education 36
JavaEE para Web
A plataforma JavaEE para Web consagrada e de
baixo risco
Muitos casos de sucesso
Ebay
Amazon
Instituies bancrias
Grandes redes de supermercados... Entre outros
Globalcode open4education 37
JavaEE para Web
Desenvolvemos aplicativos Web com Java e JavaEE
atravs 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
Pginas JSPs
Componentes JavaServet (classes Java que podem ser acionadas
por HTTP)
Arquivo de configurao XML
Um aplicativo Web pode ser compactado em um nico
arquivo com extenso .war
Globalcode open4education 38
Introduo
Conceitos bsicos de Web
Desafios no desenvolvimento Web
Histrico do desenvolvimento para Internet
Plataforma Java Enterprise Edition
Arquiteturas Web com JavaEE
Agenda Parte terica
Globalcode open4education 39
Arquiteturas Web
Podemos trabalhar com arquiteturas simples, onde
codificamos tudo em pginas JSPs
Podemos trabalhar arquiteturas que dividem as
responsabilidades da soluo em diversas classes
Uma forma tradicional de dividir responsabilidades
conhecida por M.V.C. (Model View and
Controller)
Com MVC podemos reaproveitar uma entidade em
diferentes visualizaes / telas
Globalcode open4education 40
Parte prtica
Globalcode open4education 41
Instalao de um servidor Web Java
Criando um aplicativo Web
Java Server Pages
Java Servlet
Demonstrao
Agenda Parte prtica
Globalcode open4education 42
Instalao
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 executvel installshield
A instalao simples, Next at Finish...
Globalcode open4education 43
Diretrio de instalao padro
Compilador, mquina virtual, documentador etc..
Aplicativos de exemplo
Ambiente de execuo (Java Runtime Environment)
Arquivos .h para integrao cdigo nativo
Instalao do JDK
Globalcode open4education 44
Instalao do JDK
JAVA_HOME & PATH
Devemos criar uma varivel de ambiente chamada
JAVA_HOME, indicando o local de instalao do Kit
Esta varivel utilizada para que aplicativos que
dependem de Java possam localizar a mquina virtual
Para facilitar o uso do compilador e interpretador,
recomendamos colocar o diretrio %JAVA_HOME%\bin no
PATH
Globalcode open4education 45
1. Clicar com boto direito no Meu Computador, em seguida
clique em propriedades:
Instalao do JDK
Globalcode open4education 46
2. Clique em Avanado /
Advanced
3. Clique em Variveis de
Ambiente / Environment
Variables
Instalao do JDK
Globalcode open4education 47
4. Clique em New / Novo
5. Preencha os campos com
os seguintes valores:
Ateno: no colocar \bin
Instalao do JDK
Globalcode open4education 48
6. Clique em PATH, em
seguida Edit / Editar
7. Preencha os campos com
os seguintes valores:
Se voc instalou em um diretrio
diferente do default, indique-o aqui!
Instalao do JDK
Globalcode open4education 49
Instalao do Web Server
Temos diversos servidores Web para Java:
Apache Tomcat (gratuito / referncia)
WebSphere
JRun
WebLogic
Oracle OC4J
Jetty
Sybase Application Server
Sun Application Server
E mais n opes...
Vamos utilizar Tomcat
tudo que funciona no Tomcat funciona em qualquer servidor Web
Java
Globalcode open4education 50
Instalao do Web Server
Download do Tomcat pode ser feito atravs da URL
http://tomcat.apache.org/
Recomendamos o uso da verso 5.x, evitar beta
Windows
uma verso EXE com installshield;
Outras plataformas
um arquivo ZIP
No esquecer do pr-requisito de instalar o JDK Standard
Edition...
Globalcode open4education 51
1. Ao
disparar a
instalao
...
2.
License
Agreeme
nt
3. Tipo da
instalao
4. Local
da
instalao
Instalao do Web Server
Globalcode open4education 52
5. Senha
de
administr
ador
6. Local
do JDK
7.
Instalao
concluida
Instalao do Web Server
Globalcode open4education 53
Instalao do Web Server
Para iniciar o Tomcat utilize os servios do
Windows:
Globalcode open4education 54
Por padro o Tomcat
utiliza a porta 8080,
portanto para
testarmos se est
funcionando, acesse
a URL:
http://localhost:8080
Instalao do Web Server
Globalcode open4education 55
Na URL:
http://localhost:8080/admin
voc pode
administrar e
configurar
caractersticas do
Tomcat
Instalao do Web Server
Globalcode open4education 56
Instalao de um servidor Web Java
Criando um aplicativo Web
Java Server Pages
Java Servlet
Demonstrao
Agenda Parte prtica
Globalcode open4education 57
As aplicaes so
instaladas (por
padro) no diretrio
webapps do Tomcat
Cada sub-diretrio
representa um
aplicativo Web
Criando um aplicativo Web
Globalcode open4education 58
Criando um aplicativo Web
Para criar um novo aplicativo, criar a seguinte
estrutura de diretrios:
Diretrio do aplicativo onde
colocaremos Web File JSPs,
HTMLs, GIFs, CSS, etc.
Diretrio especial de
configurao 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.
Globalcode open4education 59
Criando um aplicativo Web
Vamos colocar um arquivo index.html que servir
como pgina de entrada:
index.html
<html>
<body>
<p>Meu primeiro aplicativo
Web Java </p>
</body>
</html>
Globalcode open4education 60
Criando um aplicativo Web
Agora podemos acessar nosso aplicativo atravs
da URL: http://localhost:8080/MeuAplicativoWeb
Globalcode open4education 61
Instalao de um servidor Web Java
Criando um aplicativo Web
Java Server Pages
Java Servlet
Demonstrao
Agenda Parte prtica
Globalcode open4education 62
Java Server Pages
uma tecnologia Java para gerao de contedo Web
dinmico (esttico + banco de dados, por exemplo)
Permite mesclar cdigo HTML com cdigo Java:
<html>
<head>
<title>Ol Mundo</title>
</head>
<body>
Cdigo HTML puro <br>
<% for(int x=0;x<100;x++) { %>
<p>Ol Mundo com lao: <%= x %></p>
<%}%>
</body>
</html>
Globalcode open4education 63
Java Server Pages
Parecido com ASP, porm no lugar de Basic utilizamos
Java
Robusto, flexvel e componentizvel
Permite a criao de aplicativos simples, inteiramente
escritos dentro dos JSPs (model one)
Permite a criao de aplicativos profissionais, utilizando
tcnicas avanadas de modelagem como M.V.C.
Rpido
transformado em Servlet antes da sua execuo
Globalcode open4education 64
Instalao de um servidor Web Java
Criando um aplicativo Web
Java Server Pages
Java Servlet
Demonstrao
Agenda Parte prtica
Globalcode open4education 65
Java Servlet
Tecnologia que me 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 recepo/controle de requisies Web
JSP = mais utilizado para gerao de contedo
Globalcode open4education 66
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
Globalcode open4education 67
Java Servlet
Globalcode open4education 68
Instalao de um servidor Web Java
Criando um aplicativo Web
Java Server Pages
Java Servlet
Demonstrao
Agenda Parte prtica
Globalcode open4education 69
Demonstrao
Globalcode open4education 70
Alguns links
Minicursos: http://www.globalcode.com.br/gratuitos/miniCursos
Vdeo-palestras do Profisso 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/

You might also like