O que é a Plataforma Java?

Transcrição

O que é a Plataforma Java?
A Plataforma Java
Prof. Vinicius Rosalen
A Plataforma Java







Por que Java?
Histórico
Visão Geral
A Linguagem Java
Pacotes JDK
Ferramentas do JDK
Plataformas Java: Visão Geral
• JSE
• JEE



Mercado de TI e Java
E o Futuro?
Referências
Por que Java?

Write once, run everywhere!

Java abstrai alguns conceitos “baixo níveis” tais como
aritmética de ponteiros e alocação de memória;
Por que Java?

Porque futuramente praticamente todos os aparelhos
eletrônicos terão Java; (JME)
Por que Java?
Ei! Vê se diminui
a temperatura
para que a carne
não me
esquente!!
Blz!
Por que Java?

Grandes empresas investindo....
Por que Java?

“Grandes empresas” investindo....
• Big Brother
Por que Java?

Porque todos os concursos pedem Java!
Por que Java?

Principalmente: Porque é uma das linguagens OO mais
usadas;
• OK, mas por que Orientação a Objetos?

Padrão para desenvolvimento de sistemas;

Vantagens sobre paradigma estruturado:

Abstração mais próxima do mundo real;

Foco na reusabilidade;

Maior manutenibilidade;

Maior grau de qualidade da solução final.
• Java vem dar suporte a isso...
Por que Java?

Características Gerais de Java:
• Simples,

Porém versátil, robusta e muito segura;
• Portável

Independente de sistema operacional;
• Gratuita e com código disponível para consulta;
• Dirigida por uma especificação aberta;
• Popular,

•
•
•
-
Rodeada por uma comunidade muito ativa;
De alta aceitação e com suporte da indústria;
Muitas ferramentas disponíveis;
Muita documentação disponível.
Permite multi-thread,
Fácil programação para rede
O que é Java?







Uma tecnologia;
Uma linguagem de programação;
Uma plataforma de desenvolvimento;
Um software distribuído pela Internet;
Um ambiente de execução de programas;
Uma marca de café;
Uma ilha da Indonésia.
É tudo isso!!! 

Antes vamos conversar um pouco sobre a sua história…
Um pouco de História

Em 1991, a Sun Microsystems patrocinou um projeto de
pesquisa interna com o codinome Green.
• O projeto resultou no desenvolvimento por James Gosling de
uma linguagem baseada em C e C++ chamada Oak (carvalho).

Beneficiou-se dos erros e acertos das linguagens OO anteriores.
• Descobriu-se então que já havia uma linguagem com o nome
Oak.



Então, numa visita a cafeteira local pela equipe da Sun, foi sugerido o
nome Java.
Java é a cidade de origem de um tipo de café importado.
A pretensão de se criar uma linguagem que funcionasse
em diversos dispositivos eletrônicos sempre norteou a
arquitetura do Java.
• Um programa Java deveria “rodar” de forma idêntica em uma
torradeira, uma máquina de lavar ou uma geladeira.

Para isso procurou-se atender requisitos como....
Um pouco de História

Os requisitos da linguagem Java:
• Robustez e Segurança

Capacidade de uma linguagem funcionar com baixa
probabilidade de ocorrerem problemas.
Java foi projetado para o programador tenha um melhor controle
sobre os erros potenciais.
 Assim, erros de execução ocorrem no momento da compilação e erros
de IO podem ser tratados pelo próprio programador.

• Baixo Custo

Torna-se necessário uma vez que cada um dos dispositivos
conterá componentes Java,

Caso contrário, o custo de produção e implementação seria
impraticável.
• A independência dos chips

Garante que um programador Java se concentre na lógica e
não em características específicas do hardware.
Um pouco de História

O projeto Green enfrenta algumas dificuldades.
• O mercado para dispositivos eletrônicos inteligentes destinados ao consumidor
final não estava se desenvolvendo tão rapidamente quanto a Sun havia
previsto.


Por exemplo, celulares, geladeiras com acesso Internet, palms.
Por pura sorte, a World Wide Web explodiu em popularidade em
1993
• E o pessoal da Sun viu um imediato potencial de utilizar Java para adicionar
conteúdo dinâmico as páginas Web.

Em 1995 a Sun anunciou Java formalmente em uma importante
conferência.
• Nascem as Applets, Java é incluída no Netscape, disponibilizada ao público e
deslancha;



A Aplicabilidade de Java à Internet garantiu um interesse imediato a nova
linguagem.
A primeira versão de JDK foi lançada em janeiro de 96.
Java fez 12 anos em 2007.
Um pouco de História

Em 20 Abril de 2009 a Oracle comprou a Sun Microsystems
e com ela a plataforma Java.

Alguns consideram que foi uma boa outros não…

De qualquer forma a discussão ainda está aberta,
esperando as decisões futuras…
Java - Hoje

A plataforma Java evoluiu bastante.
• Versões atuais do JDK é a 1.6 ou Java 6 –



http://java.sun.com/
www.java.sun.com
Várias empresas investindo na tecnologia:
• Apple, HP, Hitachi, IBM, Nasa, Novell, Oracle, SunSoft,
SCO, Xerox...
Há diversas ferramentas visuais (IDEs) para
desenvolvimento em Java.
•
•
•
•
Eclipse (http://www.eclipse.org);
NetBeans (http://www.netbeans.org);
IntelliJ IDEA (http://www.jetbrains.com/idea);
JBuilder (http://www.borland.com/br/products/jbuilder/);
Java - Hoje

Recursos para aprendizado da plataforma Java
• Comunidades virtuais:
http://www.portaljava.com
 http://www.guj.com.br
 http://www.javafree.com.br

• JUGs – Grupos de Usuários Java

http://esjug.dev.java.net
• Revistas:
Mundo Java;
 Java Magazine.

• Livros.
Java: Visão Geral

Bom, vocês devem ter observado que:
• Quando me referi ao estado da linguagem nos dias
atuais, utilizei o termo plataforma Java
• Então por que plataforma e não somente linguagem?

Primeiro: O que é Plataforma?
• Plataforma = SO + Hardware:
Windows + PC (Intel / AMD);
 Linux + PC;
 MacOS X + Macintosh.

• Java situa-se um nível acima do SO, formando uma nova
plataforma de computação
Java: Visão Geral

Java é considerado uma plataforma pelo fato de ser
constituída de linguagem + arquitetura
• Arquitetura

Pelo fato de proporcionar uma estrutura que permite projetar sistemas
complexos, de forma independente da arquitetura do hardware;
• Linguagem

Pelo poder de expressão que Java oferece para o desenvolvimento de
software;


Lembrar da linguagem natural: Se ela for pobre, como seria a nossa
comunicação
Propriedades desejáveis em LPs...









Foco no programador e não no programa;
Legibilidade;
Escritabilidade;
Confiabilidade;
Eficiência;
Facilidade de aprendizado;
Reusabilidade de código;
Flexibilidade;
Harmonia com a metodologia de projeto.
Java: Visão Geral

Um programa compilado em Java...
• Pode ser executado em qualquer arquitetura e
sistema operacional


Celulares, Java, Unix, Windows, Mac OS
A filosofia/característica de que:
• Um mesmo código possa ser executado nos mais
diferente tipos de computadores é denominado:
“Write once, run anywhere”

Como isso é possível?
• Antes temos que entender o funcionamento das
linguagens de programação....
Java: Visão Geral

Funcionamento das linguagens
• O computador é um hardware que só entende
operações muito básicas (zeros e uns);

Programa executável = coleção de instruções em linguagem
de máquina;
• Criar programas em linguagem de máquina é
extremamente difícil e improdutivo;

Usamos linguagens de programação de alto nível;
• Precisamos de um programa que transforme uma
linguagem em outra:

Um tradutor.
Java: Visão Geral

Tradução de programas
• Existe duas maneiras de se traduzir um programa:

Compilação e Interpretação.
Java: Visão Geral

Compilação x Interpretação
• Compilação:


Execução mais rápida;
Somente o executável é carregado em memória.
• Interpretação:

Portabilidade.
• Compilação + Interpretação = Tradução Híbrido

Une as vantagens de ambos.
Java: Visão Geral

Bom, observando a figura do slide anterior,
• Um primeiro elemento que podemos destacar na estrutura de
execução do Java é o ByteCode

Conceitos importantes da linguagem
• Bytecode

É o código de máquina da Máquina Virtual Java


Formato bytecodes foi feito pensando na geração de código de máquina,
de maneira otimizado


Bytecode é interpretado: Código passado para máquina on-the-fly
Lembra das opções de otimização de código em C???
Desempenho do código final (bytecodes transformados em binário) é
praticamente o mesmo de código feito em C/C++.


Uso da HotSpot, nova tecnologia de JVM: aos poucos um bytecode Java vai
virando código em linguagem de máquina
Em última instância, integra-se com códigos em C/C++.
Java: Visão Geral

Bom, observando a figura do slide anterior,
• Um segundo elemento que podemos destacar na estrutura de
execução do Java é a Maquina Virtual Java

Conceitos importantes da linguagem
• Java Virtual Machine (JVM)


É o programa que executa/interpreta os bytecodes Java.
Elemento que permite a portabilidade


Um mesmo código compilado (bytecode) pode ser executado em diferentes
JVMs sem qualquer modificação.


Esconde as diferenças entre os diversos sistemas operacionais que executam
código Java.
“Arquiteturalmente Neutra”
Para cada Sistema Operacional há uma JVM específica.


O usuário deve instalar uma JVM para poder executar um programa Java.
JVMs são gratuitas.
Diagrama de criação e execução de código Java
Código
fonte
.java
compilação
.class
Bytecodes
Um código Java é
compilado para um
código
intermediário
(bytecode), que é
executado por uma
Máquina Virtual
Java (Java Virtual
Machine)
Execução/interpretado
Máquina Virtual Java - JVM
Sistema Operacional
Java: Visão Geral

Exemplo
• Ao compilar o programa temos...

Java: Visão Geral
Ao executar o programa temos…
•
•
•
•

O “JVM class loader” carrega todas as classes necessárias;
O “JVM verifier” verifica os bytecodes ilegais;
O bytecode é interpretado;
Caso tenha o JIT, o código nativo da máquina é gerado.
Ao terminar
• O gestor de memória da JVM libera memória de volta ao sistema operacional.
A Plataforma Java
Programa Java
Compilador Java
bytecodes
JVM
UNIX
JVM
Windows
JVM
MacOS
Para cada
Sistema
Operacional há
uma JVM
específica.
O usuário deve
instalar uma JVM
para poder
executar um
programa Java.
JVMs são
gratuitas.
JVM
OS2
A Linguagem Java

Bom, nós falamos que a plataforma Java é formada pela arquitetura
e pela linguagem.
• Até agora a gente viu questões relacionadas a arquitetura da plataforma,
agora vamos estudar questões relacionadas a linguagem Java

Características Gerais da LP Java
• Linguagem simples, sem ambigüidades, com poder de abstração;

Permite modelagem por objetos

Java tomou o lugar de Pascal como linguagem para ensino;
• Não é só uma linguagem pra fazer software, mas fazer software com
qualidade, flexibilidade e robustez

Essencial pra Engenharia de Software
• Java fornece várias abstrações e ferramentas que abrem caminho para a
adoção de excelentes práticas de programação.


Aplicações de Padrões de Projetos
Vamos agora falar de algumas características especiais de Java......
A Ling. Java é Orientada a Objetos

Características
• Paradigma bem conhecido que provê:


Reutilização de código
Poder de abstração e modelagem
• Tudo são objetos, exceto os tipos primitivos (int, float, boolean,
...)

Mesmo assim temos objetos que encapsulam esses tipos primitivos
• Não implementa múltipla herança de classes, apenas de
interface.

Motivos: recurso pouco/mal usado, complexo, pode ser substituído por
outras construções


Ex: delegação
Uso do conceito de Interface para implementação de herança múltipla de
interface

Determina apenas as assinaturas e não as implementações
A Ling. Java possui Simplicidade

Características
• Sintaxe parecida com C/C++:

Facilidade de aprendizado e construções familiares.
• Pouquíssimas palavras reservadas

Delphi (90 keywords) vs. Java (48 keywords)

Evita redundância
• Evitou-se o uso de conceitos mal compreendidos e
pouco usados:

Sobrecarga de operadores, múltipla herança, conversões
automáticas
A Ling. Java possui Robustez

Características
• Fortemente tipada (Compilador “chato” :-)

Os tipos são respeitados, ou seja, não pode ocorrer atribuição de um
valor X para um tipo Y
• Sem conversões automáticas de um tipo numérico “menor para
outro maior” (downcast)
• Checagens estáticas e dinâmicas

Ex:. limite de arrays
A Ling. Java possui Robustez

Características
• “Ausência de ponteiros”

São utilizados implicitamente na manipulação de objetos.
(referência interna)
• Programador não precisa se preocupar com a alocação
e desalocação de espaço em memória.

Alocação de memória está implícita na construção de objetos
(construtores)


Uso de heaps de memória
A desalocação é feita por um componente da JVM chamado
coletor de lixo (Garbage Collector)
Quando um objeto em memória não é mais referenciado por
nenhuma variável ele entra para a lista de objetos desalocáveis
 Sempre que possível o GC varre a memória, apagando objetos
desalocáveis

A Ling. Java possui Poder de
Programação

Características
• Java possui suporte para:
Exceções;
 Iteradores;
 Mecanismo de threads incorporado à linguagem;
 Excelente mecanismo de documentação de classes;


Applets
Internacionalização
 Suporte a redes de computadores e sistemas distribuídos
 Componentes


Vamos falar um pouquinho sobre essas características...
A Ling. Java possui Tratamento de
Exceções

Características
• Exceções e tratadores de exceção

Permitem a definição de situações de exceção no programa e
o seu tratamento em tempo de execução.


O usuário pode escrever um código no qual estão separados o
algoritmo principal e o código que manipula as situações de exceção
do programa.
Este mecanismo é utilizado intensivamente em programas
Java
A Ling. Java possui Iteradores

Características
• Abstrações que encapsulam a navegação ou iteração sobre
uma estrutura de dados

Iteradores não são um conceito incorporado na própria linguagem mas
uma particularidade da implementação da biblioteca de containeres
(vetor, lista, árvore, tabela hash,...)
• Permitem navegar (iterar) sobre uma estrutura de dados sem
precisar saber a sua natureza
Collection vetorStr = new Vector();
vetorStr.add(new String(“String 1”));
vetorStr.add(new String(“String 2”));
Iterator it = vetorStr.iterator();
while (it.hasNext()) {
String str = (String) it.next();
String strClone = new String(str);
}
A Ling. Java possui Threads

Características
• Uma thread é um único fluxo de controle seqüencial
num programa.

Usamos threads para executar várias tarefas ao mesmo
tempo

Exemplo: browser recuperando texto e imagens em threads
simultâneas.
• Java trata com muita naturalidade a criação e
sincronia de threads.
A Ling. Java possui Documentação de
Código

Características
• Simples mas excelente solução para documentação do
código: Javadoc

Comentários no código podem ser usados para gerar uma
documentação rica e completa das classes
/** Compara duas strings lexicograficamente
* @param anotherString string a comparar
* @return 0, se uma string....
* @throws NullPointerException se a string for nula
*/
public int compareTo(String anotherString){
A Ling. Java possui Documentação de
Código
A Ling. Java possui Boas Práticas de
Programação

Características
• Implementação, divulgação e incentivo ao uso de padrões de projeto (design
patterns).

Alguns deles são específicos de arquitetura: J2EE
• As convenções incluem:

Nomes de arquivos


Nomes de Classes


getCustomerName(), setRentalItemPrice()
Standard para variáveis


Customer, RentalItem
Nomes de Métodos


Customer.java, RentalItem.java
customerName, customerCreditLimit
Standard para constantes

MIN_WIDTH, MAX_NUMBER_OF_ITEMS
• Testes de Unidade: JUnit
A Ling. Java possui Applets

Características
• São pequenos programas em Java que são
executados a partir de programas como:

Appletviewer, Netscape Navigator, Internet Explorer ou
FireFox
• Utilizado para prover dinamismo em uma página
HTML.
 Aplicação de Geoprocessamento via Internet;
A Ling. Java possui Internacionalização

Características
• Java oferece facilidades para o uso de qualquer língua.

Permite internacionalizar os diversos elementos de uma aplicação que têm
representações regionais diferentes (moeda, data, ordem alfabética, etc.)
• Além disso permite adequar as características da interface de
acordo com o sistema.

LookAndFeel – utilizado para definir o estilo de um programa. (Windows,
Java, Motif/Sun)
A Ling. Java possui suporte a Networking
e Internet

Características
• A infraestrutura para desenvolver aplicações para uso na
Internet e em intranets usando Java é simples e
eficiente
O mesmo código pode ser utilizado em ambos os ambientes
 J2EE

• Suporte a Sockets em alto nível
Não precisa se preocupar com as funções de baixo nível.
 Existem classes e funções que encapsulam certas
características;


“Baixarias” da programação Socket são substituídos por
encapsulamento das funcionalidades e manipulação de objetos

A Ling. Java possui suporte a Sistemas
Distribuídos
Características
• Java oferece mecanismos para o desenvolvimento de aplicações distribuídas.
 RMI (Java Remote Method Invocation);


invocação remota de métodos
JNDI: (Java Naming and Directory Interface)

acesso a servidores de nomes;
• Inclui as especificações para desenvolvimento Web



Servlets;
JSP (JavaServer Pages);
XML: (eXtensible Markup Language)


processamento de XML e afins;
Web Services;
JSF (Java Server Faces);
 JavaServer Faces is a new framework for building Web applications using Java.
 SOA (Service-oriented architecture);
 SOA is an architectural style for building software applications that use services
available in a network such as the web.
Etc....


• Exemplo de aplicação distribuída:

Projeto de codificação de sinais de rádio vindo do espaço
A Ling. Java possui Componentes

Características
• Java pode ser usado com ferramentas visuais, da
mesma maneira que outras linguagens como Delphi
eVisual Basic.

Utilização de JavaBeans => Componentes de Software

Construção de sistema por meio de união de componentes.
A Ling. Java possui Pacotes JDK

Características
• Pacotes em Java é um modo de organizar grupos de classes.

Possuem uma estrutura hierárquica


Reduz os problemas com conflitos de nomes
Podem ser usados para identificar as classes de forma exclusiva

Pode estar organizado de acordo com a estrutura da empresa


br.ufmg.dcc.syerngia.implementacao.Interface
Se a classe implementada não for declarada como parte de um pacote,
ela será colocada no pacote default;

Ou seja, no mesmo diretório de compilação;
A Ling. Java possui Pacotes JDK

Características
• Exemplo de pacotes Java são:












java.applet (applets)
java.awt (interface (AWT - Abstract Windowing Toolkit )
java.io
 arquivos ( entrada e saída )
java.lang
 Pode-se usar as classe desse pacote diretamente. As classes java.lang estão disponíveis
automaticamente em todos os programas
java.lang.reflect
java.math
 aritmética de números inteiros e fracionários de precisão arbitrária
java.net
java.text
 suporte à internacionalização
java.util
 classes de utilidade genéricas (estruturas de dados, etc)
java.util.zip
 compactação e descompactação de dados
java.beans
 beans ( componentes configuráveis )
java.rmi.*


java.sql


remote method invocation
conexão com banco de dados ( JDBC )
java.swing.*

nova interface gráfica
Algumas ferramentas do JDK
 appletviewer
 visualiza um applet
 jar
 cria arquivos jar
 javadoc
 cria documentação baseada em
comentários especiais presentes no
código
 java
 executa a máquina virtual Java
 javac
 compila arquivos .java
Sumário de Vantagens e Desvantagens

Vantagens
•
•
•
•
•
•
•
•
•
Portabilidade;
Simplicidade;
Manutenção;
Robustez;
Segurança;
Orientação a Objetos;
Multithreading;
Networking;
Padronização;
Características sofisticadas
incorporadas à linguagem
Sumário de Vantagens e Desvantagens

Desvantagens
• Desempenho: relacionado com uso da JVM


Hot Spot  aumentou bastante o desempenho
Geração de código compilado – JIT (Just-in Time)
• Necessidade de uma JVM na máquina;
• Uso de memória:

Usuário não distingue a memória usada pelo programa da usada pela
JVM e usualmente é iniciada uma JVM para cada aplicação;
Plataformas Java

Vocês já devem ter ouvido falar que tal empresa está
usando procurando gente pra trabalhar com JME, JEE, etc..
• Mas não é tudo Java?? Qual a diferença??

Java é distribuída em três edições específicas para cada
área de aplicação :
• Java Standard Edition (Java SE);

Também pertence as demais arquiteturas/plataformas: linguagem Java +
conjunto de bibliotecas e tecnologias adicionais para computadores pessoais
• Java Enterprise Edition (Java EE);

Aplicações cliente-servidor, sobretudo baseada em Web (Web Services –
Servlets/JSP)
• Java Mobile Edition (Java ME).

Aplicações para dispositivos portáteis: celulares, PDAs, eletrodomésticos,
smart cards.
Plataformas Java - SDK vs. JRE

Todas elas possuem.....
• SDK – Software Development Kit

Contém todos os programas e utilitários necessários para criar, compilar e executar
um programa Java (Somente para programadores;)
 Contém:







Ferramentas de desenvolvimento;
Ambiente de execução (JRE);
API Java SE (compilada e código-fonte);
Programas de demonstração;
Utilitários, como: javadoc, debuggers, profilers
Bibliotecas adicionais;
Documentação (obtida separadamente).
• JRE – Java Runtime Environment


Conjunto mínimo de programas e bibliotecas necessários para executar um
programa Java
 Necessária para rodar programas Java (bytecodes compilados);
 É a única parte da plataforma Java que os clientes precisam instalar;
 Em alguns SOs já vem instalada (ex.: MacOS X);
 A Sun provê suporte oficial às plataformas Windows, Solaris e Linux;
Ex:. Plug-in para executar o teclado virtual dos bancos via Web
Plataformas Java – Visão Geral
Servidores +
Computação
Empresarial
Servidores +
Computadores
Pessoais
Java – Micro Edition (J2ME)
PDAs +
Celulares +
Eletrodom. +
PDAs
Computação
básicos
Embutida
Pacotes
Opcionais
Pacotes
Opcionais
Pacotes
Opcionais
Java
Enterprise
Edition
(JEE)
Java
Standard
Edition
(JSE)
Personal
Profile
JVM
JVM
Smart
Cards
Pacotes
Opcionais
Foundation
Profile
MIDP
CDC
CLDC
JVM
KVM
Agora vamos falar mais um pouco sobre algumas características de cada plataforma.....
Java
Card
Card
VM
Plataforma JSE

Características da plataforma JSE
• A API Java SE é composta pelos seguintes pacotes

















AWT/Swing: interfaces gráficas;
Java2D: desenho;
JDBC: acesso a bancos de dados;
JNDI: acesso a servidores de nomes;
RMI: invocação remota de métodos ;
i18n: suporte à internacionalização;
I/O: entrada e saída (arquivos);
JNI: integração com linguagens nativas;
Math: cálculos matemáticos;
Networking: transmissão de dados via rede;
Security: segurança;
Serialization: persistência por serialização;
XML: processamento de XML e afins;
Lang & Util: núcleo da linguagem, utilitários;
Concurrency: programação concorrente;
Logging: funções de relatório (log);
Reflection: RTTI (reflexão, introspecção).
Plataforma JSE
Plataforma JEE

Características da plataforma JEE
• O que está presente na plataforma JEE é basicamente

Ferramentas e tecnologias voltada para serviços Web
• Permite o desenvolvimento de aplicações corporativas:

Multi-camadas, distribuídas, centradas em servidores, altamente robustas, estáveis e
escaláveis.
• Inclui as especificações para desenvolvimento Web:

Servlets, JSP, Web Services, JSF, etc.;
• Inclui especificações da plataforma Enterprise Java Beans (EJB):

Componentes gerenciados integrados a outras tecnologias Java EE para prover
acesso remoto, persistência e transações transparentes, etc.
• Outras tecnologias relacionadas:

RMI/IIOP e Java IDL: conectividade;
JDNI: servidor de nomes;
JAC e JNI: acesso a sistemas legados;
JAAS: segurança;
JTA: transações em bancos de dados;
JMS e JavaMail: envio de mensagens;

E tudo o mais que temos no Java SE...





Plataforma JEE: JSP e Servlets

Dentro da plataforma JEE, as duas principais tecnologias são:
• Os Servlets e a JSP.

Tecnologias que permitem:
• A criação de paginas HTML dinâmicas,
• Bem como a integração delas com aplicações, por meio de programas ou
scripts escritos em Java.

Novo conceito: Servidores de Aplicação
• Não mantém meramente páginas HTML, mas aplicações capazes de realizar
qualquer processamento e gerar código HTML

Tipicamente servem aplicações Java e Visual Basic (ASP) em páginas HTML
• Os servidores de aplicação tornam muito mais fácil a tarefa de criar/manter
aplicações que interagem via Web e geram HTMLs.
Servlets

Mas, o que são servlets??
• Servlets são classes Java, compiladas previamente, e que são
capazes de processar requisições Web;

Facilitam a geração de páginas HTML dinamicamente, produzindo páginas
que são alteradas em resposta à entrada e aos dados do usuário

Instruções Java são usadas para gerar o texto HTML.
• Para compilar um Servlet é necessário utilizar uma biblioteca
Java JEE.

Esta biblioteca não está incluída no JSDK.
• Os servidores de aplicação costumam disponibilizar tal biblioteca.

Servidores Tomcat e Apache
Servlets - Ciclo de Vida
Compilador Java
Cliente Web
.java
Armazenagem
.class
Requisições
Servidor de Aplicações
Servidor Web
JSP - Java Server Pages

Bom, mas qual era o grande problema do Servlets =>
• Criação de conteúdo HTML estático dentro do código Java =>
Muito trabalhoso.

Mas, o que são Java Server Pages??
• É uma tecnologia para criar documentos HTML que misturam:



HTML estático, com a
Saída de servlets e
Elementos da linguagem Java (como expressões e instruções Java)
• Ou seja, É uma tecnologia para criar e executar código Java
dentro de código HTML

Isso facilita a manutenção e construção de textos estáticos em HTML


No servlets isso deveria ser feito dentro da classe em vez de ser no próprio
.html
O código Java é inserido na forma de scripts, chamados scriptlets.
• Não é necessário preencher o código com out.println, (se
preocupar com formatação).

O próprio desenvolvedor da interface ou página Web pode fazê-lo.
JSP – Ciclo de Vida
.jsp
1. Envia dados e
ações e cuida da
formatação do
texto
Compilador Java
.class
3. compila
.java
4. executa
2. gera servlet
Servidor de Aplicações
Servidor Web
Plataforma JME

Permite o desenvolvimento de aplicações para
dispositivos móveis:
• Telefones celulares;

Ex: TCC do curso que aplicou o Robocode no celular,
possibilitando o controle de robôs virtuais via celular
• PDAs (Palm, iPaq, etc.);
• Dispositivos embarcados (embedded);
• Etc.

Java Card:
• Aplicações para Smart Cards e outros dispositivos
muito limitados.
E o Futuro ?

A utilização de Java nas aplicações desktops e não apenas
servidores está em franca expansão,
• Fato que deixou James Gosling muito feliz no último JavaOne.

Celulares e PDA´s utilizando Java estão concretizando a idéia da
Sun de 12 anos atrás,
• Isto é, a utilização em dispositivos eletrônicos.

A Sun mudou sutilmente a estratégia da plataforma de modo que
esta se torne conhecida também do homem comum, e não apenas
dos desenvolvedores.
• Está ressaltando para o consumidor final que ele está usando um produto
com tecnologia Java.

É muito provável que em breve tenhamos uma Virtual Machine
• Para nosso automóvel, nossa geladeira assim como temos para nossos
celulares.
E o futuro?

A versão 1.5 (Java 5). do Java privilegia a facilidade de
codificação para o programador, as novas características tornarão
o desenvolvedor mais feliz.
• Apresenta asserts e outras “coisitas” mais...
• A impressão é que o consórcio que desenvolve o Java sabe que sua força
vem principalmente do programador.

Se souber respeitá-lo acredito que a meta de 10 milhões de desenvolvedores
será alcançada.

Versão 1.6 (Java 6) já está disponível

Versão Java 7 já está no forno pronto para sair... (2010/2011)
Referências

Fontes básicas
• http://java.sun.com : tutoriais, documentação completa, livros
on-line, APIs, exemplos, download...

Revistas
• http://www.javaworld.com
• http://www.ibm.com/developerworks/java/

Sites específicos
• http://www.theserverside.com
• http://jakarta.apache.org
Referências

No Brasil
• Grupo de Usuários Java - http://www.guj.com.br/
• Sociedade de Usuários Java (responsável pelo evento
JustJava) - http://www.soujava.com.br
• DFJug (Brasilia Java User Group) - http://www.dfjug.org
Referências

Livros
•  Core Java: vol. 1 e 2 (iniciante  avançado)
•  Java: Guia Prático de Programação (intermediário
 avançado)
•  Java: 1001 Dicas (iniciante)
•  Java: Como Programar - Deitel & Deitel (iniciante
 avançado): pobre em conceitos / confuso
• Thinking in Java – Bruce Eckel (iniciante em OO 
intermediário em OO)
• Patterns in Java – Grand (intermediário  avançado)
• Concurrent Programming in Java – Doug Lea
 - disponível na biblioteca
Exercícios

Pra fechar a conta…
• Vamos ver o que ficou “guardado na cachola” hoje... Responda as
perguntas abaixo:

1)Quais as características da OO?

2) Por que Java é uma Plataforma?

3) Qual a diferença entre compilado e interpretado? E o Java o que é?

4) O que é o byteCode?


5) Por que Java é portável e permite “escrever 1 vez e executar em vários
lugares”?
6) Cite algumas características da linguagem Java.


Pelo menos 5.....
7) Quais são as plataformas Java disponíveis para desenvolvimento?
Exercícios

Pra fechar a conta…
• Vamos ver o que ficou “guardado na cachola” hoje... Responda as
perguntas abaixo:



8)Qual a diferença entre o JRE e o SDK? O que significam estas siglas?
9) Que programas são necessários para que um desenvolvedor possa
desenvolver com Java? É necessário ter o Eclipse ou NetBeans para
desenvolver com Java?
10) O que é necessário instalar na máquina cliente para executar um
programa Java?

11) Que tecnologias Java oferere para o desenvolvimento para Web?

12) Qual a sua expectativa em relação a Java?

Documentos relacionados