Este documento apresenta uma introdução sobre Java EE e desenvolvimento web com Java usando Eclipse. Ele discute conceitos como conteúdo estático versus dinâmico, programação do lado do cliente versus do servidor, e especificações da plataforma Java EE como JSP, Servlets e EJB. O documento também descreve servidores de aplicação como Tomcat e Glassfish e como instalar o Tomcat.
1. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Programa¸˜o para Web
ca
Java EE
Ivo Calado
Instituto Federal de Educa¸˜o, Ciˆncia e Tecnologia de Alagoas
ca e
12 de Novembro de 2012
1 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
2. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Roteiro
1 Introdu¸˜o
ca
2 Java EE (Enterprise Edition)
3 Desenvolvimento Java Web com Eclipse
2 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
3. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Observa¸˜o sobre o conte´do
ca u
Parte deste material ´ baseada na apostila FJ-21 - Java para
e
Desenvolvimento Web desenvolvido pela Caelum
(www.caelum.com.br)
3 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
4. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Conte´do est´tico X Conte´do dinˆmico
u a u a
Revendo as diferen¸as
c
Existem v´rias diferen¸as entre aplica¸˜es Web de conte´do
a c co u
est´tico e conte´do dinˆmico. Quais seriam elas?
a u a
4 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
5. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Conte´do est´tico X Conte´do dinˆmico
u a u a
Revendo as diferen¸as
c
Existem v´rias diferen¸as entre aplica¸˜es Web de conte´do
a c co u
est´tico e conte´do dinˆmico. Quais seriam elas?
a u a
Momento da gera¸˜o
ca
Contexto da requisi¸˜o (conte´do personalizado)
ca u
Linguagem utilizada
Armazenamento em cache Web
4 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
6. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Programa¸˜o Client-Side x Server-Side
ca
Revendo as diferen¸as
c
Server-side
A programa¸˜o server-side ´ utilizada para gerar a informa¸˜o
ca e ca
a ser enviada
´
E transparente ao usu´rio!
a
5 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
7. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Programa¸˜o Client-Side x Server-Side
ca
Revendo as diferen¸as
c
Server-side
A programa¸˜o server-side ´ utilizada para gerar a informa¸˜o
ca e ca
a ser enviada
´
E transparente ao usu´rio! Ele enxerga apenas o HTML!
a
Diversas linguagens de programa¸˜o podem ser utilizadas
ca
(PHP, Java, Python, C++!)
Client-side
Client-side ´ utilizado para manipular a informa¸˜o recebida
e ca
O usu´rio tem acesso a todo o c´digo!
a o
Existem basicamente dois tipos de suporte a programa¸˜o:
ca
JavaScript e Applets!
5 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
8. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Programa¸˜o Client-Side x Server-Side
ca
Quest˜o de segurana¸a
a c
Porque uma aplica¸˜o servidora deve realizar a mesma checagem
ca
realizada por uma aplica¸˜o cliente?
ca
6 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
9. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Programa¸˜o Client-Side x Server-Side
ca
Quest˜o de segurana¸a
a c
Porque uma aplica¸˜o servidora deve realizar a mesma checagem
ca
realizada por uma aplica¸˜o cliente?
ca
Como o c´digo cliente est´ dispon´ a requisi¸˜o a ser enviada
o a ıvel ca
pode ser manipulada alterando o formato da requisi¸˜o!
ca
6 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
10. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Extendendo a arquitetura Java
Extendendo a arquitetura Java
At´ agora vocˆs viram a plataforma Java executada sobre apenas
e e
uma plataforma, por´m esta n˜o ´ a unica!
e a e ´
7 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
11. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Extendendo a arquitetura Java
Extendendo a arquitetura Java
At´ agora vocˆs viram a plataforma Java executada sobre apenas
e e
uma plataforma, por´m esta n˜o ´ a unica! Existem trˆs
e a e ´ e
plataformas para desenvolvimento com a linguagem Java
7 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
12. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Extendendo a arquitetura Java
Extendendo a arquitetura Java
At´ agora vocˆs viram a plataforma Java executada sobre apenas
e e
uma plataforma, por´m esta n˜o ´ a unica! Existem trˆs
e a e ´ e
plataformas para desenvolvimento com a linguagem Java
Java SE: Aplica¸˜es Desktop
co
Java Me: aplica¸˜es m´veis (A plataforma Android n˜o
co o a
implementa essa especifica¸˜o!)
ca
Java EE: Aplica¸˜es corporativas (Nosso foco! :))
co
7 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
13. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Introdu¸˜o
ca
O que ´?
e
Consiste de uma s´rie de especifica¸˜es bem detalhadas
e co
definidas pela Sun (agora Oracle), dando uma receita de como
deve ser implementado um Software
8 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
14. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Introdu¸˜o
ca
O que ´?
e
Consiste de uma s´rie de especifica¸˜es bem detalhadas
e co
definidas pela Sun (agora Oracle), dando uma receita de como
deve ser implementado um Software
Deve-se da ˆnfase ao termo especifica¸˜o e n˜o
e ca a
implementa¸˜o!
ca
8 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
15. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Introdu¸˜o
ca
O que ´?
e
Consiste de uma s´rie de especifica¸˜es bem detalhadas
e co
definidas pela Sun (agora Oracle), dando uma receita de como
deve ser implementado um Software
Deve-se da ˆnfase ao termo especifica¸˜o e n˜o
e ca a
implementa¸˜o! Mas, porque isso?
ca
Diversos grupos podem fazer a implementa¸˜o da mesma
ca
esperifica¸˜o (analogia ` classes abstratas e concretas!)
ca a
Antigamente conhecida como J2EE
8 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
16. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Introdu¸˜o
ca
Java EE ´ apenas uma especifica¸˜o de uma linguagem de
e ca
programa¸˜o?
ca
9 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
17. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Introdu¸˜o
ca
Java EE ´ apenas uma especifica¸˜o de uma linguagem de
e ca
programa¸˜o?
ca
˜
NAO!
Java EE pode ser considerada uma especifica¸˜o bastante
ca
complexa
Envolve conceitos que v˜o al´m de uma linguagem de
a e
programa¸˜o, como: persistˆncia em banco de dados,
ca e
transa¸˜o, acesso remoto, web services, gerenciamento de
ca
threads, gerenciamento de conex˜es HTTP, cache de objetos,
o
gerenciamento da sess˜o web, balanceamento de carga etc
a
9 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
18. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Introdu¸˜o
ca
Especifica¸oes Java EE
c˜
Como discutido, existem diversas especifica¸oes que fazem parte
c
do Java EE. Eis algumas:
JavaServer Pages (JSP), Java Servlets, Java Server Faces
(JSF)
Enterprise Javabeans Components (EJB) e Java Persistence
API (JPA). (objetos distribu´
ıdos, clusters, acesso remoto a
objetos etc)
Java API for XML Web Services (JAX-WS)
Java Autenthication and Authorization Services
Java Message Services
Java Naming and Directory Interface
10 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
19. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Servidores de aplica¸oes
c˜
O que s˜o?
a
Servidores de aplica¸˜o Java EE s˜o implementa¸˜es da
ca a co
especifica¸˜o Java EE ou de parte dela
ca
Recebem esse nome por serem software que tem papel de
servir sua aplica¸˜o para auxilia-la com servi¸os de
ca c
infraestrutura
A partir da vers˜o Java EE 6 passou-se a utilizar o termo
a
application server web profile para os servidores que n˜oa
oferecem suporta ` todas especifica¸˜es!
a co
11 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
20. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Servidores de aplica¸oes
c˜
Exemplos de servidores de aplica¸˜es
co
Glassfish: solu¸˜o desenvolvida pela Sun/Oracle. Trata-se de
ca
uma op¸˜o open source e gratuita por´m n˜o ´ l´
ca e a e ıder de
mercado
JBoss: ´ um dos l´
e ıderes do mercado e tem a vantagem de ser
gratuito e open source. Bastante utilizado por aplica¸˜es que
co
desejam um alto grau de escalabilidade!
Apache Tomcat: solu¸ao focada nas especifica¸˜es Web,
c co
mais especificamente JSP e Servlets
No nosso curso utilizaremos o servidor Tomcat mas todo
conhecimento adquirido aqui pode ser aplicado com facilidade para
os outros servidores compat´
ıveis, mudando apenas a forma de
configur´-los.
a
12 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
21. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Servidores de aplica¸oes
c˜
Instalando o Tomcat
Baixe o Tomcat em http://tomcat.apache.org
Mesmo no windows, dˆ preferˆncia a vers˜o zip, para vocˆ
e e a e
entender melhor o processo de inicializa¸˜o do servidor
ca
A vers˜o execut´vel ´ apenas um wrapper para executar a
a a e
JVM, j´ que o Tomcat ´ 100% Java.
a e
Entre no diret´rio de instala¸˜o e execute o script startup.sh
o ca
para iniciar o servidor
Entre no diret´rio de instala¸˜o e execute o script
o ca
shutdown.sh para parar o servidor
13 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
22. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Servidores de aplica¸oes
c˜
O plugin WTP
O WTP, Web Tools Platform, ´ um conjunto de plugins para
e
o Eclipse que auxilia o desenvolvimento de aplica¸˜es Java
co
EE, em particular, de aplica¸˜es Web
co
Cont´m desde editores para JSP, CSS, JS e HTML at´
e e
perspectivas e jeitos de rodar servidores de dentro do Eclipse
Para instalar o eclipse com WTP basta ir no site do Eclipse e
selecionar a op¸˜o Java EE Developers
ca
14 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
23. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Servidores de aplica¸oes
c˜
Configurando o Tomcat no WTP
Mude a perspectiva do Eclipse para Java (e n˜o Java EE, por
a
enquanto)
Abra a View de Servers na perspectiva atual. Aperte Ctrl + 3
e digite Servers
Clique com o bot˜o direito dentro da aba Servers e v´ em
a a
New > Server
Selecione o Apache Tomcat 6.0 e clique em Next
Na pr´xima tela, selecione o diret´rio onde vocˆ
o o e
descompactou o Tomcat e clique em Finish
Na aba Servers, dˆ dois cliques no servidor Tomcat que uma
e
tela de configura¸˜o se abrir´. Localize a se¸˜o Server
ca a ca
Locations. Repare que a op¸˜o use workspace metadata est´
ca a
marcada. Marque a op¸˜o Use Tomcat installation
ca
15 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
24. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Etapa inicial
Cria¸˜o do projeto
ca
Para criar um novo projeto Java Web siga as seguintes etapas:
V´ em New > Project e selecione Dynamic Web Project e
a
clique Next
Defina o nome do projeto e a vers˜o do Tomcat a ser utilizada
a
e selecione Finish
Na aba Servers, clique com o bot˜o direito no Tomcat e v´
a a
em Add and Remove e selecione a aplica¸˜o para associ´-la a
ca a
um container Web
16 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca
25. Introdu¸˜o
ca Java EE (Enterprise Edition) Desenvolvimento Java Web com Eclipse
Etapa inicial
Estrutura do projeto
src - c´digo fonte Java (.java)
o
build - onde o Eclipse compila as classes (.class)
WebContent - content directory (p´ginas, imagens, css etc
a
v˜o aqui)
a
WebContent/WEB-INF/ - pasta oculta com configura¸˜es e
co
recursos do projeto
WebContent/WEB-INF/lib/ - bibliotecas .jar
WebContent/WEB-INF/classes/ - arquivos compilados s˜o
a
copiados para c´
a
17 / 17 Ivo Calado IFAL
Programa¸˜o para Web
ca