Академический Документы
Профессиональный Документы
Культура Документы
Programao
Web com Java
ndice
Apresentao................................................................................................... 3
Sobre o autor................................................................................................. 3
Referncias................................................................................................... 4
JavaEE......................................................................................................... 5
Preparando o ambiente...................................................................................... 6
Pr-requisitos................................................................................................ 6
Servlet Container vs Servidor de aplicao........................................................6
Instalando o Tomcat........................................................................................ 7
Instalando o Eclipse........................................................................................ 7
Configurando o Tomcat no Eclipse....................................................................8
Criando um novo projeto.................................................................................. 12
Novo projeto usando o Eclipse.......................................................................12
Entendendo a estrutura do projeto..................................................................16
Executando e testando o projeto....................................................................17
Servlets......................................................................................................... 21
Servlets...................................................................................................... 21
Enviando parmetros atravs de uma requisio..............................................23
Recuperando parmetros de uma requisio....................................................24
JSP - Java Server Pages.................................................................................. 26
Trabalhando com Java no JSP.......................................................................26
Apresentando dados dinamicamente com Expression Language........................27
Separando JAVA e HTML.............................................................................. 28
MVC - Model View Controller............................................................................ 29
Servlet ou JSP?........................................................................................... 29
Request Dispatcher...................................................................................... 30
Concluso...................................................................................................... 34
Notas de reviso.......................................................................................... 34
Referncias bibliogrficas................................................................................. 35
Apresentao
Prezado aluno, seja bem-vindo a disciplina. Neste material voc encontrar um
resumo didtico sobre o contedo abordado em sala de aula. Este material
prope apresentar os conceitos bsicos sobre desenvolvimento de sistemas
para internet utilizando Java como a tecnologia base.
Durante a disciplina juntamente com a ajuda deste material sero apresentados
os conceitos de programao web utilizando Java, qual ambiente necessrio
para o desenvolvimento uma aplicao, conceitos de Servlet, JSP, tpicos
importantes sobre a Servlet API, boas prticas de desenvolvimento arquitetura
MVC, entre outros assuntos.
Lembre-se que este um guia que lhe ajudar a esclarecer os principais
conceitos, porm no deve ser utilizado como nica referncia durante a
disciplina. A seguir voc ver algumas referncias que iro consolidar os
conceitos aqui apresentados permitindo que voc se aprofunde no assunto.
Bons estudos!
Sobre o autor
Este material foi desenvolvido pelo Instrutor Bruno Eustquio Faleiro de
Andrade juntamente com a equipe tcnica e pedaggica do SENAI Contagem
CFP Euvaldo Lodi. Bruno formado em Cincia da Computao, especialista
Ps Graduado em Engenharia de Software gil. Atua como Instrutor no curso
Tcnico em Informtica - onde se formou - e tambm no mercado de TI em
empresas e projetos de diversos portes sempre como membro de equipes de
engenharia de software.
Referncias
O Mundo Java como um todo muito rico e possui uma comunidade muito
forte e colaborativa. Voc pode facilmente encontrar excelentes referncias
sobre assuntos gerais e especficos ligados ao tema. Como na maioria das
tecnologias que utilizamos atualmente a maior quantidade est em ingls,
porm como a comunidade Java no Brasil grande e madura segue abaixo
referncias em nativas em portugus ou traduzido para nosso idioma:
Frum do Grupo de Usurios Java
guj.com.br
Frum Stack Overflow
stackoverflow.com
Portal Devmedia
devmedia.com.br
Frum Javafree
javafree.org
Blog Caelum
blog.caelum.com.br
Editora Casa do Cdigo
casadocodigo.com.br
Apostilas Caelum
caelum.com.br/apostilas
Use a Cabea! Servlets & JSP
Bryan Basham, Kathy Sierra & Ber
JavaEE
Java EE ou Java Enterprise Edition se trata de uma srie de especificaes de
software desenvolvidas com o intuito de definir um padro de desenvolvimento
de solues com o intuito de resolver problemas comuns no processo de
desenvolvimento de software.
Utilizando as especificaes do Java EE voc poder contar com solues j
testadas para implementao de solues utilizadas frequentemente pelo
mercado. Assim voc e sua equipe tcnica no gastaro tempo elaborando
uma soluo de arquitetura para um problema que comum entre projetos de
software.
Outra caracterstica do Java EE que por se tratar de uma especificao voc
no fica preso a uma implementao nica. Voc pode optar em utilizar cdigo
de terceiros da sua preferncia ou at mesmo desenvolver sua prpria
implementao para determinado servio de acordo com a especificao.
Assim sua aplicao continua trabalhando de forma integrada e ao mesmo
tempo desacoplada.
Tais especificaes so implementadas em forma de APIs (Application
programming interface). A lista abaixo mostra as principais e mais utilizadas
implementaes Java EE:
Java Servlets
JSP - JavaServer Pages
JSF - Java Server Faces
EJB - Enterprise Javabeans Components
JPA - Java Persistence API
JAX-WS - Java API for XML Web Services
JAX-B - Java API for XML Binding
JAAS - Java Autenthication and Authorization Service
JTA - Java Transaction API
JMS - Java Message Service
JNDI - Java Naming and Directory Interface
JMX - Java Management Extensions
Preparando o ambiente
Pr-requisitos
O desenvolvimento de aplicaes Java tem como uma de suas caractersticas
o funcionamento multiplataforma. Um fator que fez chamou a ateno da
comunidade e contribui para o crescimento da tecnologia.
Por tanto voc como desenvolvedor pode optar em utilizar qualquer sistema
operacional com suporte a Java como Windows, Linux ou MacOS. Como
plataforma nativa os sistemas baseados em Unix normalmente apresentaram
melhor compatibilidade com as aplicaes.
Para que possamos iniciar a parte especfica da disciplina voltada para
desenvolvimento de aplicaes Web como pr requisito basta que voc tenha
instalado o JDK (Java Developer Kit) em seu sistema.
oracle.com/technetwork/java
Instalando o Tomcat
Faa o download do Tomcat em sua pgina oficial tomcat.apache.org. Escolha uma
Instalando o Eclipse
Iremos utilizar durante curso o Eclipse como IDE. Uma das IDEs mais
populares do mundo para o desenvolvimento Java. Voc pode utilizar tambm
outra plataforma como, por exemplo, o Netbeans que, alm de muito popular,
tambm muito eficiente.
Faa o download do Eclipse em sua pgina oficial - eclipse.org - e vamos
utilizar a verso mais indicada para trabalhar com desenvolvimento Java EE
Eclipse IDE for Java EE Developers
Novamente atente-se para para a plataforma que est sendo utilizada (32bits
ou 64bit) no momento do download. A instalao funciona de forma similar a ao
Tomcat. Basta extrair o arquivo compactado para o um local de preferncia e
assim feito voc j pode inciar a IDE.
1. Abra a view Servers atravs do menu Window > Show View > Servers
2. Clique com o boto direito na aba Servers e escolha a opo New >
Server
src
Comeamos pela pasta src que j conhecida dos projetos Java. Nela sero
armazenado todos os pacotes e classes que iremos criar durante o projeto.
Todo cdigo fonte que for escrito em Java deve estar nesse diretrio.
build
A pasta build um padro criado para o Eclipse que foge um pouco do que
normalmente utilizado em um projeto Java comum. As classes escritas em
Java so compiladas e armazenadas nessa pasta. Ns no utilizaremos este
diretrio em momento algum. As classes compiladas so automaticamente
salvas nessa pasta pela IDE.
WebContent
Nosso projeto ser composto por diversas pginas web e tambm outros
recursos como arquivos javascript, css e imagens. Todos esses recursos
devem ser acessados diretamente pelo navegador. Para isso precisamos ter
um contexto web disponvel para acesso. A pasta WebContent delimita esse
contexto. Todos os arquivos que estaro disponveis para acesso atravs de
uma requisio sero armazenados nesse diretrio.
Para acessar esse contedo precisamos conhecer o contexto da aplicao que
acabamos de criar. Para descobrir ou alterar o contexto acesse o menu Project
> Properties > Web Project Settings. No caso da aplicao criada no captulo
anterior o contexto pode ser acessado atravs da seguinte url
http:localhost:8080/ola-java-web/
WebContent > WEB-INF
A pasta WEB-INF armazena arquivos de configuraes que so necessrios
para que o projeto seja executado pelo servidor. Um dos arquivos
armazenados o web.xml. Arquivo que armazena algumas configuraes
bsicas sobre a aplicao. Essas configuraes so lidas pelo Tomcat no
assim que a aplicao for iniciada.
Nota: Apesar da pasta WEB-INF estar dentro da pasta WebContent ela no
pode ser acessada atravs do navegador.
WebContent > WEB-INF > lib
Dentro da pasta WEB-INF tambm encontramos uma pasta chamada lib que
utilizada como padro para armazenar todas as bibliotecas externas que
formem utilizadas no projeto. muito comum utilizar bibliotecas escritas para
resolver um problema comum como por exemplo enviar e-mails ou fazer upload
de arquivos.
WebContent > WEB-INF > classes
Por ltimo e no menos importante existe um diretrio classes que no aparece
na lista de diretrios pois se trata de uma pasta oculta que armazena todos os
arquivos compilados dentro da pasta WebContent para que possam ser
acessadas pelo servidor.
Agora com o arquivo aberto vamos criar uma pgina bem simples com o
cdigo HTML abaixo.
Servlets
Apresentar pginas ricas em contedo para o usurio que acessa
atravs de seu navegador muito mais do que apenas arquivos HTML
que exibam contedos estticos.
A maior parte do contedo que acessamos hoje atravs de aplicaes
web so contedos gerados dinamicamente que faz com que o potencial
dessas aplicaes seja to grande.
Para isso o desenvolvimento web evolui e surgiram as tecnologias
capazes de executar programas de acordo com cada requisio. Em
Java a tecnologia utilizada para processar as requisies e devolver o
contedo dinmico ao usurio de responsabilidade da Servlet API.
Servlets
O objetivo das Servlets receber uma requisio HTTP, enviadas ao
servidor de aplicaes, processa-la e devolver uma resposta ao cliente.
Esse processo feito em Java atravs de uma classe Servlet capas de
gerar contedo HTML. A ideia bsica que cada servlet seja responsvel
por uma pgina onde o objeto responsvel por receber uma requisio
(request) e retornar uma resposta (resposnse).
Portanto, para escrevermos uma servlet basta criar uma classe Java que
estenda a classe HttpServlet e sobrescrever o mtodo service que tem
como parmetros request (HttpServletRequest) e response
(HttpServletResponse):
Ao fim deste capitulo podemos criar uma aplicao dinmica que recebe
dados de uma requisio e consegue enviar uma reposta ao usurio de
acordo com os dados informados.
No prximo captulo veremos como trabalhar com outra API JEE o
JavaServer Pages.
Servlet ou JSP?
Entendendo basicamente o conceito acima podemos entender que
desenvolver uma aplicao utilizando apenas a API Servlet ou apenas a
API JSP pode dificultar as coisas. Tanto a lgica de negcios quanto a
lgica de apresentao e tambm a camada de acesso a dados estaro
sempre no mesmo nvel. Isso prejudica o desenvolvimento e a
manuteno de qualquer sistema.
Portanto escolher uma das duas tecnologias como padro arquitetural de
uma aplicao no o ideal. No diagrama abaixo podemos ver o fluxo de
uma requisio HTTP utilizando o modelo MVC aplicando a tecnologia
Java e em seguida, como podemos aplicar o conceito desenvolvendo o
exemplo de login e senha.
Request Dispatcher
Visto o conceito acima j chegamos concluso de que poderamos
melhorar muito a organizao do nosso cdigo se utilizssemos o Servlet
apenas para escrever o cdigo Java responsvel pelo controle da
requisio e para as regras de negcio do sistema e o cdigo JSP
apenas para renderizar o cdigo HTML que ser enviado como resposta.
Introduo a Programao Web com Java
Esse recurso faz com que o cdigo fique limpo e claro tanto do lado do
cdigo Java escrito na Casse Servlet quanto do cdigo HTML escrito no
JSP e o resultado apresentado.
Concluso
Chegamos ao fim do primeiro passo, mas os estudos no devem parar
por aqui. O que foi apresentado nesse material apenas o incio de um
contedo vasto e cheio de possibilidades. Com o que aprendemos aqui
j temos condies de evoluir e continuar o desenvolvimento tanto
conceitual quanto prtico dessa disciplina.
No incio da apostila foram citadas diversas referncias onde voc pode
dar continuidade em sua formao, no deixe de conferir todas as
indicaes e tambm no deixei de buscar suas prprias referncias.
Atuar no mercado de tecnologia exige do profissional a busca contnua
pelo conhecimento.
Notas de reviso
Caso voc encontre algum erro de qualquer natureza ou mesmo uma o
oportunidade de melhora ser muito bem vinda. Esse material ser
revisado periodicamente buscando cada vez mais qualidade no contedo
oferecido. Envie suas sugestes para bruno.andrade@fiemg.com.br
Obrigado!
Referncias bibliogrficas
Basham, B., & Sierra, K. (2008). Use a Cabea! Servlets & JSP (2 ed.). Alta
Books.
Caelum. (Junho de 2014). Java para Desenvolvimento Web. Acesso em Junho
de 2014, disponvel em Caelum: http://www.caelum.com.br/apostilajava-web/
Jandl Junior, P. (2009). Desenvolvendo Aplicaes Web com Jsp e Jstl (1 ed.).
Novatec.