Java Web Development Introdução DRAFT
Sobre esta apostila <ul><li>Esta apostila tem a finalidade de levar ao aluno os fundamentos do </li></ul><ul><li>desenvolv...
Sobre nossos cursos <ul><li>Nosso foco é trazer a nossos alunos um curso </li></ul><ul><li>dinâmico, abordando o conteúdo ...
Agenda <ul><li>Servlets e JSPs </li></ul><ul><li>Aplicações Web </li></ul><ul><li>Estrutura de uma aplicação Web </li></ul...
Servlets e JSPs
Servlets <ul><li>Um servlet é um componente do lado do servidor (classe Java), que possui a tarefa de receber requisições ...
Porque conteúdo dinâmico ? <ul><li>A página de resultado é baseado em dados que foram submetidos pelo cliente. </li></ul><...
Vantegens do Servlet  em relação ao CGI <ul><li>Eficiência </li></ul><ul><ul><li>Uso de threads no lugar de processos do S...
Popularidade <ul><li>Popular: </li></ul><ul><ul><li>A tecnologia Java mais utilizada </li></ul></ul><ul><ul><li>A tecnolog...
Java Server Pages - JSP <ul><li>Usa HTML normal </li></ul><ul><li>Exibe conteúdo dinâmico com tags especiais </li></ul><ul...
Documentação on-line <ul><li>Servlets and JSP </li></ul><ul><ul><li>http://java.sun.com/products/servlet/reference/api/ind...
Aplicações Web
Aplicações Web <ul><li>Uma aplicação web é óbviamente uma aplicação acessível pela internet. Um exemplo simples de uma apl...
Aplicações Web
Aplicações Web <ul><li>Uma aplicação web é formada de “web components” (Servlets e JSPs), que executam tarefas específicas...
Recursos <ul><li>Aplicações Web utilizam recursos, que podem ser ativos ou passivos. </li></ul><ul><li>Um recurso é classi...
Recursos (exemplo) <ul><li>Quando um browser envia uma requisição para  www.meusite.com.br/arquivo.html , o servidor web e...
Recursos (exemplo) <ul><li>Uma aplicação Web é sempre uma mistura de recursos ativos e passivos, mas é a presença dos recu...
Aplicações web e o  servidor de aplicações <ul><li>Uma aplicação web reside dentro de um servidor de aplicações. Este mesm...
Aplicações web e o  servidor de aplicações <ul><li>Uma aplicação web é descrita usando-se um  deployment descriptor . Um d...
Motivação da aplicação web <ul><li>Diretório único ou arquivo </li></ul><ul><ul><li>Servlets, páginas JSP, arquivos HTML, ...
Propósito das  aplicações Web <ul><li>Organização </li></ul><ul><ul><li>Os arquivos relacionados são agrupados juntos em a...
Estrutura de uma aplicação Web
Estrutura de aplicações Web <ul><li>JSP e demais arquivos (HTML, css, imagens, etc) </li></ul><ul><ul><li>No diretório pri...
Estrutura de  aplicações Web
Instalando o eclipse
Instalando o eclipse <ul><li>Introdução </li></ul><ul><ul><li>O eclipse é uma IDE open-source, que possui suporte ao Java ...
Configurando o eclipse <ul><li>Configure o eclipse para integrar com o Tomcat : </li></ul><ul><ul><li>Clique na tab “Serve...
Criando uma nova aplicação no Eclipse <ul><li>Crie um novo projeto </li></ul><ul><ul><li>File -> New -> Project -> Web -> ...
Estrutura do projeto no Eclipse <ul><li>Estrutura </li></ul><ul><ul><li>src </li></ul></ul><ul><ul><ul><li>Código Java </l...
Iniciando o servidor no Eclipse <ul><li>Iniciando o Tomcat </li></ul><ul><ul><li>Selecione a tab servers </li></ul></ul><u...
Deployment da aplicação <ul><li>Deploy project (instalação) </li></ul><ul><ul><li>Clique com o botão direito na tab “Serve...
Testando o deployment <ul><li>Inicie um browser </li></ul><ul><li>Teste a URL base </li></ul><ul><ul><li>http://localhost/...
Deployment structure ( IDE x JavaEE Standard) <ul><li>Eclipse </li></ul><ul><li>Código Java </li></ul><ul><ul><li>Src/subD...
Criando uma aplicação Web manualmente <ul><li>Crie um diretório chamado app-vazia </li></ul><ul><ul><li>app-vazia/WEB-INF/...
Definindo URLs Customizadas <ul><li>Código Java </li></ul><ul><ul><li>Package meuPacote; ... </li></ul></ul><ul><ul><li>Pu...
Custom URL, exemplo (com o projeto testeWeb2) <ul><li><?xml version= &quot;1.0&quot;  encoding= &quot;UTF-8&quot; ?> </li>...
Custom URL, resultado
URLs customizadas, porque definí-las ? <ul><li>Devemos SEMPRE definir URL customizadas em projetos que irão para produção ...
Arquivos de instalação (war ) <ul><li>Arquivos WAR são na verdade arquivos JAR com uma outra extensão. </li></ul><ul><ul><...
URLs relativas, soluções <ul><li>Use o nome da aplicação Web na URL. </li></ul><ul><ul><li><img src=“/testeWeb/diretorio/s...
Sumário <ul><li>Benefícios das aplicações Web </li></ul><ul><ul><li>Organização e instalação fáceis </li></ul></ul><ul><ul...
Próximos SlideShares
Carregando em…5
×

Java Web Dev Introdução

6.313 visualizações

Publicada em

Apostila de introdução ao desenvolvimento Web com Java

1 comentário
5 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
6.313
No SlideShare
0
A partir de incorporações
0
Número de incorporações
29
Ações
Compartilhamentos
0
Downloads
0
Comentários
1
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Java Web Dev Introdução

  1. 1. Java Web Development Introdução DRAFT
  2. 2. Sobre esta apostila <ul><li>Esta apostila tem a finalidade de levar ao aluno os fundamentos do </li></ul><ul><li>desenvolvimento web utilizando a linguagem Java. Mostraremos seu </li></ul><ul><li>funcionamento, comportamento, configuração, setup de ambiente e toda </li></ul><ul><li>informação básica que darão ao aluno o conhecimento técnico suficiente para a </li></ul><ul><li>preparação de sua vida como programador Web Java, e cobrir os pré-requisitos </li></ul><ul><li>para os próximos módulos de desenvolvimento de componentes </li></ul><ul><li>distribuídos ( EJB ) e demais módulos. </li></ul><ul><li>ESTE MATERIAL DEVE SER UTILIZADO SOMENTE PARA ESTUDOS, </li></ul><ul><li>NÃO PODENDO SER REPRODUZIDO OU VENDIDO DE FORMA ALGUMA. </li></ul><ul><li>Para cursos presenciais, compra ou obtenção do material em outro regime, por </li></ul><ul><li>favor, visite nosso site. </li></ul>
  3. 3. Sobre nossos cursos <ul><li>Nosso foco é trazer a nossos alunos um curso </li></ul><ul><li>dinâmico, abordando o conteúdo da linguagem e da </li></ul><ul><li>plataforma, e também as melhores práticas e </li></ul><ul><li>Bibliotecas Utilizadas pelo mercado. E foi pensando </li></ul><ul><li>nisso que a Jet Software elaborou sua grade de </li></ul><ul><li>cursos, afim de que ao término de cada módulo o aluno </li></ul><ul><li>esteja dominando a tecnologia / plataforma, e também </li></ul><ul><li>conhecendo tudo aquilo que o mercado utiliza, estando </li></ul><ul><li>assim melhor preparado para as futuras oportunidades. </li></ul>
  4. 4. Agenda <ul><li>Servlets e JSPs </li></ul><ul><li>Aplicações Web </li></ul><ul><li>Estrutura de uma aplicação Web </li></ul><ul><li>Configurando o Tomcat </li></ul>
  5. 5. Servlets e JSPs
  6. 6. Servlets <ul><li>Um servlet é um componente do lado do servidor (classe Java), que possui a tarefa de receber requisições via HTTP, fazer parsing de parâmetros e gerar a resposta dinamicamente para o browser do cliente. </li></ul>
  7. 7. Porque conteúdo dinâmico ? <ul><li>A página de resultado é baseado em dados que foram submetidos pelo cliente. </li></ul><ul><ul><li>Ex: resultado de pesquisa no google. </li></ul></ul><ul><li>A página de resultado é baseada em dados que mudam frequentemente. </li></ul><ul><ul><li>Ex: relatório </li></ul></ul><ul><li>A página de resultado usa dados provenientes de bancos de dados ou outros recursos dinâmicos. </li></ul><ul><ul><li>Ex: Um site de comércio eletrônico </li></ul></ul>
  8. 8. Vantegens do Servlet em relação ao CGI <ul><li>Eficiência </li></ul><ul><ul><li>Uso de threads no lugar de processos do SO. </li></ul></ul><ul><li>Conveniência </li></ul><ul><ul><li>Vários utilitários de alto nível </li></ul></ul><ul><li>Poder </li></ul><ul><ul><li>Compartilhamento de dados, pooling, persistência. </li></ul></ul><ul><li>Portável </li></ul><ul><ul><li>Roda em qualquer SO que tenha um servidor de aplicações Java. </li></ul></ul><ul><li>Barato </li></ul><ul><ul><li>Existem inúmeros servidores free. </li></ul></ul><ul><li>Seguro </li></ul><ul><ul><li>Utiliza toda infra-estrutura do servidor de aplicações. </li></ul></ul><ul><li>Largamente Utilizado por empresas através do mundo </li></ul>
  9. 9. Popularidade <ul><li>Popular: </li></ul><ul><ul><li>A tecnologia Java mais utilizada </li></ul></ul><ul><ul><li>A tecnologia líder para aplicações de média para grande porte. </li></ul></ul><ul><li>Suportado por grandes “players” </li></ul><ul><ul><li>Apache, Oracle, IBM, Sybase, BEA, Macromedia, Caucho, Sun/iPlanet, New Atlanta, ATG, Fujitsu, Lutris, Silverstream, the World Wide Web Consortium (W3C), e etc. </li></ul></ul><ul><li>Roda em vários SOs </li></ul><ul><ul><li>Windows, Unix, Linux, MacOS, VMs, Mainframe, etc. </li></ul></ul><ul><li>Usado em: </li></ul><ul><ul><li>E-commerce, hotéis, sites de busca, redes sociais, bancos, sistema financeiros, ec. </li></ul></ul>
  10. 10. Java Server Pages - JSP <ul><li>Usa HTML normal </li></ul><ul><li>Exibe conteúdo dinâmico com tags especiais </li></ul><ul><li><%@ page language= &quot;java&quot; contentType= &quot;text/html; charset=ISO-8859-1&quot; </li></ul><ul><li>pageEncoding= &quot;ISO-8859-1&quot; %> </li></ul><ul><li><%@ taglib prefix= &quot;f&quot; uri= &quot;http://java.sun.com/jsf/core&quot; %> </li></ul><ul><li><%@ taglib prefix= &quot;h&quot; uri= &quot;http://java.sun.com/jsf/html&quot; %> </li></ul><ul><li><!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;> </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><meta http-equiv= &quot;Content-Type&quot; content= &quot;text/html; charset=ISO-8859-1&quot; > </li></ul><ul><li><title>Insert title here</title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><f:view> </li></ul><ul><li></f:view> </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul>
  11. 11. Documentação on-line <ul><li>Servlets and JSP </li></ul><ul><ul><li>http://java.sun.com/products/servlet/reference/api/index.html </li></ul></ul><ul><ul><li>http://java.sun.com/products/jsp/reference/api/index.html </li></ul></ul><ul><li>Java 6 or Java 5 </li></ul><ul><ul><li>http://java.sun.com/javase/6/docs/api/ </li></ul></ul>
  12. 12. Aplicações Web
  13. 13. Aplicações Web <ul><li>Uma aplicação web é óbviamente uma aplicação acessível pela internet. Um exemplo simples de uma aplicação web seria um website que oferece um serviço de rede social. </li></ul><ul><li>O grande benefício de uma aplicação web é facilidade com que os usuários a conseguem acessá-las. Tudo que o usuário precisa é de um navegador ( IE, Firefox, Opera, Chrome, etc ); não existe nada mais a ser instalado na máquina do cliente. </li></ul><ul><li>Isto aumenta em muito o alcançe das aplicações de forma grandiosa, e ao mesmo tempo alivia os problemas de versionamento e upgrade. </li></ul>
  14. 14. Aplicações Web
  15. 15. Aplicações Web <ul><li>Uma aplicação web é formada de “web components” (Servlets e JSPs), que executam tarefas específicas e podem expor os seus serviços via Web. </li></ul>
  16. 16. Recursos <ul><li>Aplicações Web utilizam recursos, que podem ser ativos ou passivos. </li></ul><ul><li>Um recurso é classificado como passivo quando o mesmo não tem nenhum poder de processamento em si mesmo. </li></ul><ul><li>Recursos ativos possuem a capacidade de processar algo. </li></ul>
  17. 17. Recursos (exemplo) <ul><li>Quando um browser envia uma requisição para www.meusite.com.br/arquivo.html , o servidor web em meusite.com.br procura pelo arquivo arquivo.html, que é um recurso passivo, e o retorna para o browser. </li></ul><ul><li>Da mesma forma, quando o browser envia uma requisição para www.meusite.com.br/meuServlet , o servidor web em meusite.com.br passa a requisição para meuServlet, um recurso ativo. O Servlet gera o HTML de retorno e o entrega para o servidor web. O servidor web então passa o resultado para o browser. </li></ul><ul><li>Um recurso passivo também é chamado de recurso estático, pois o seu conteúdo não é modificado pelas requisições. </li></ul>
  18. 18. Recursos (exemplo) <ul><li>Uma aplicação Web é sempre uma mistura de recursos ativos e passivos, mas é a presença dos recursos ativos que fazem com que a aplicação web seja parecida com as aplicações tradicionais (desktop). </li></ul><ul><li>Recursos ativos em aplicações web geralmente proporcionam conteúdo dinâmico para os usuários, possibilitando-os assim executarem alguma lógica de negócio via browser. </li></ul>
  19. 19. Aplicações web e o servidor de aplicações <ul><li>Uma aplicação web reside dentro de um servidor de aplicações. Este mesmo servidor de aplicações provê a aplicação um acesso gerenciado aos recursos do sistema. </li></ul><ul><li>Ele também provê serviços de baixo nível, tal como HTTP e gerenciamento a conexões de banco de dados, serviços de nomes e mensageria. Um servlet container é parte do servidor de aplicações. </li></ul><ul><li>http://tomcat.apache.org/ </li></ul><ul><li>www.jboss.org </li></ul>
  20. 20. Aplicações web e o servidor de aplicações <ul><li>Uma aplicação web é descrita usando-se um deployment descriptor . Um deployment descriptor é um arquivo xml chamado web.xml, e o mesmo contém a descrição de todos os componentes dinâmicos da aplicação. </li></ul><ul><li>Este arquivo possui entradas para cada servlet usado na aplicação e também declara aspectos de segurança dos componentes. </li></ul><ul><li>Um servidor de aplicações usa este arquivo para inicializar os componentes da aplicação web e torná-los disponíveis para os clientes. </li></ul>
  21. 21. Motivação da aplicação web <ul><li>Diretório único ou arquivo </li></ul><ul><ul><li>Servlets, páginas JSP, arquivos HTML, classes utilitárias, beans, tag libraries, e etc, são colocadas juntas em uma única hierarquia de diretórios ou arquivo. </li></ul></ul><ul><li>Prefixo de URL comum </li></ul><ul><ul><li>Acesso ao conteúdo da aplicação Web é sempre através de uma URL que possui um prefixo comum </li></ul></ul><ul><ul><ul><li>http://meusite.com.br/appWeb/algo </li></ul></ul></ul><ul><li>Configuração centralizada no arquivo web.xml </li></ul><ul><ul><li>Quase que todos os aspectos da aplicação web é controlado através do seu deployment descriptor. </li></ul></ul>
  22. 22. Propósito das aplicações Web <ul><li>Organização </li></ul><ul><ul><li>Os arquivos relacionados são agrupados juntos em arquivo ou diretório. </li></ul></ul><ul><li>Portabilidade </li></ul><ul><ul><li>Roda em qualquer servidor que suporte aplicações web. </li></ul></ul><ul><ul><li>Pode ser reinstalado em outro servidor, apenas copiando-se o arquivo. </li></ul></ul><ul><li>Separação </li></ul><ul><ul><li>Cada aplicação Web possui seu próprio : </li></ul></ul><ul><ul><ul><li>ServletContext </li></ul></ul></ul><ul><ul><ul><li>Class Loader </li></ul></ul></ul><ul><ul><ul><li>Session </li></ul></ul></ul><ul><ul><ul><li>Prefixo de URL </li></ul></ul></ul><ul><ul><ul><li>Estrutura de diretórios </li></ul></ul></ul>
  23. 23. Estrutura de uma aplicação Web
  24. 24. Estrutura de aplicações Web <ul><li>JSP e demais arquivos (HTML, css, imagens, etc) </li></ul><ul><ul><li>No diretório principal ou subdiretório </li></ul></ul><ul><li>Servlets </li></ul><ul><ul><li>WEB-INF/classes ( se o servlet não estiver empacotado  pacote default ) </li></ul></ul><ul><ul><li>Um subdiretório que possui o mesmo nome do pacote. </li></ul></ul><ul><li>Arquivos não empacotados e classes utilitárias : </li></ul><ul><ul><li>No mesmo lugar dos servlets ( lembre-se dos pacotes ) </li></ul></ul><ul><li>Arquivos empacotados ( .jar ) </li></ul><ul><ul><li>WEB-INF/lib </li></ul></ul><ul><li>web.xml </li></ul><ul><ul><li>WEB-INF </li></ul></ul><ul><li>Arquivo descritor de Tag library : </li></ul><ul><ul><li>WEB-INF ou subdiretório adjacente. </li></ul></ul><ul><li>Arquivos em WEB-INF não são acessiveis diretamente pelos clientes. </li></ul><ul><ul><li>O servidor pode usar o objeto RequestDispatcher para redirecionar páginas no diretório WEB-INF </li></ul></ul>
  25. 25. Estrutura de aplicações Web
  26. 26. Instalando o eclipse
  27. 27. Instalando o eclipse <ul><li>Introdução </li></ul><ul><ul><li>O eclipse é uma IDE open-source, que possui suporte ao Java e muitas outras linguagens de programação. </li></ul></ul><ul><li>Download </li></ul><ul><ul><li>http://www.eclipse.org/home/categories/index.php?category=enterprise </li></ul></ul><ul><li>Instalação </li></ul><ul><ul><li>Apenas descompacte o arquivo para um diretório. </li></ul></ul>
  28. 28. Configurando o eclipse <ul><li>Configure o eclipse para integrar com o Tomcat : </li></ul><ul><ul><li>Clique na tab “Servers”, na janela de baixo da IDE. </li></ul></ul><ul><ul><li>New, Server, Apache, Tomcat V6.0, </li></ul></ul><ul><ul><li>Next, vá para o diretório de instalação, finish. </li></ul></ul>
  29. 29. Criando uma nova aplicação no Eclipse <ul><li>Crie um novo projeto </li></ul><ul><ul><li>File -> New -> Project -> Web -> Dynamic Web Project. </li></ul></ul><ul><ul><li>Dê a ele o nome de testeWeb </li></ul></ul><ul><ul><li>Aceite todos os outros valores default </li></ul></ul>
  30. 30. Estrutura do projeto no Eclipse <ul><li>Estrutura </li></ul><ul><ul><li>src </li></ul></ul><ul><ul><ul><li>Código Java </li></ul></ul></ul><ul><ul><li>WebContent </li></ul></ul><ul><ul><ul><li>Páginas e recursos </li></ul></ul></ul><ul><ul><ul><li>( HTML, javascript, CSS, </li></ul></ul></ul><ul><ul><ul><li>JSP, imagens, etc) </li></ul></ul></ul><ul><ul><li>WebContentWEB-INF </li></ul></ul><ul><ul><ul><li>web.xml </li></ul></ul></ul>
  31. 31. Iniciando o servidor no Eclipse <ul><li>Iniciando o Tomcat </li></ul><ul><ul><li>Selecione a tab servers </li></ul></ul><ul><ul><li>Clique com o botão direito sobre tomcat </li></ul></ul><ul><ul><li>Selecione start </li></ul></ul><ul><li>Para ver se o servidor está funcionando </li></ul><ul><ul><li>Abra um browser </li></ul></ul><ul><ul><li>Digite http://localhost:8080 </li></ul></ul>
  32. 32. Deployment da aplicação <ul><li>Deploy project (instalação) </li></ul><ul><ul><li>Clique com o botão direito na tab “Servers” </li></ul></ul><ul><ul><li>Clique com o botão direito em Tomcat </li></ul></ul><ul><ul><li>Selecione “Add and Remove Projects” </li></ul></ul><ul><ul><li>Escolha o projeto testWeb </li></ul></ul><ul><ul><li>Clique em Add </li></ul></ul><ul><ul><li>Clique em “Finish” </li></ul></ul><ul><li>Reiniciando o Servidor </li></ul><ul><ul><li>Clique com o botão direito em Tomcat </li></ul></ul><ul><ul><li>Restart </li></ul></ul>
  33. 33. Testando o deployment <ul><li>Inicie um browser </li></ul><ul><li>Teste a URL base </li></ul><ul><ul><li>http://localhost/testWeb </li></ul></ul><ul><ul><ul><li>No Tomcat aparecerá a listagem dos recursos no servidor </li></ul></ul></ul><ul><ul><ul><li>No JBoss a visualização estará bloqueada </li></ul></ul></ul><ul><li>Acesso um conteúdo </li></ul><ul><ul><li>http://localhost:8080/testeWeb/alo.jsp </li></ul></ul><ul><ul><li>http://localhost:8080/testeWeb/teste.html </li></ul></ul><ul><li>Acessando nosso servlet </li></ul><ul><ul><li>http://localhost:8080/testeWeb/AloServlet </li></ul></ul>
  34. 34. Deployment structure ( IDE x JavaEE Standard) <ul><li>Eclipse </li></ul><ul><li>Código Java </li></ul><ul><ul><li>Src/subDiretório </li></ul></ul><ul><li>HTML, JSP, Imagens </li></ul><ul><ul><li>WebContent </li></ul></ul><ul><ul><li>WebContent/qqDir </li></ul></ul><ul><li>web.xml </li></ul><ul><ul><li>WebContent/WEB-INF </li></ul></ul><ul><li>JavaEE </li></ul><ul><li>Código Java </li></ul><ul><ul><li>deployDir/nomeAplicação/classes/pacote </li></ul></ul><ul><li>HTML, JSP, Imagens </li></ul><ul><ul><li>deployDir/nomeAplicação/ </li></ul></ul><ul><ul><li>deployDir/nomeAplicação/qqDir </li></ul></ul><ul><ul><li>web.xml </li></ul></ul><ul><ul><ul><li>deployDir/nomeAplicação/WEB-INF </li></ul></ul></ul>
  35. 35. Criando uma aplicação Web manualmente <ul><li>Crie um diretório chamado app-vazia </li></ul><ul><ul><li>app-vazia/WEB-INF/web.xml </li></ul></ul><ul><ul><li>app-vazia/WEB-INF/classes ( vazio ) </li></ul></ul><ul><li>Colocando as coisas no seu devido lugar </li></ul><ul><ul><li>Conteúdo web ( HTML, JSP, imagens e outros) vão para o diretório de mais alto nível “app-vazia”, ou qualquer outro subdiretório que não seja o WEB-INF. </li></ul></ul><ul><ul><li>Os servlets e outras classes vão para dentro do subdiretório WEB-INF/classes, respeitando é claro os seus respectivos pacotes. </li></ul></ul><ul><li>Copie a aplicação para o diretório de deployment </li></ul><ul><ul><li>No Tomcat este diretório está em tomcat_instalação/webapps </li></ul></ul><ul><ul><li>No JBoss este diretório está em instalação_jboss/server/default </li></ul></ul><ul><li>Atenção com o CLASSPATH </li></ul><ul><ul><li>Adicione o diretório nomeAplicação/WEB-INF/classes </li></ul></ul><ul><ul><li>Adicione as bibliotecas adicionais a nomeAplicação/WEB-INF/lib </li></ul></ul>
  36. 36. Definindo URLs Customizadas <ul><li>Código Java </li></ul><ul><ul><li>Package meuPacote; ... </li></ul></ul><ul><ul><li>Public class MeuServlet extends HttpServlet{} </li></ul></ul><ul><li>Entrada do web.xml (<web-app>..</web-app>) </li></ul><ul><ul><li>Nomeando um servlet </li></ul></ul><ul><ul><li><servlet> </li></ul></ul><ul><ul><ul><li><servlet-name>MeuNome</servlet-name> </li></ul></ul></ul><ul><ul><ul><li><servlet-class>meuPacote.MeuServlet</servlet-class> </li></ul></ul></ul><ul><ul><li></servlet> </li></ul></ul><ul><ul><li>Coloque um endereço ( URL mapping ) ao servlet </li></ul></ul><ul><ul><li><servlet-mapping> </li></ul></ul><ul><ul><ul><li><servlet-name>MeuNome</servlet-name> </li></ul></ul></ul><ul><ul><ul><li><url-pattern>/MeuEndereco</url-pattern> </li></ul></ul></ul><ul><ul><li></servlet-mapping> </li></ul></ul><ul><li>Resultado </li></ul><ul><ul><li>http://hostname/aplicaçãoWeb/MeuEndereo </li></ul></ul>
  37. 37. Custom URL, exemplo (com o projeto testeWeb2) <ul><li><?xml version= &quot;1.0&quot; encoding= &quot;UTF-8&quot; ?> </li></ul><ul><li><web-app xmlns:xsi= &quot;http://www.w3.org/2001/XMLSchema-instance&quot; ... version= &quot;2.5&quot; > </li></ul><ul><li><display-name>testeWeb</display-name> </li></ul><ul><li><servlet> </li></ul><ul><li><description></description> </li></ul><ul><li><display-name>MeuServlet</display-name> </li></ul><ul><li><servlet-name>MeuServlet</servlet-name> </li></ul><ul><li><servlet-class> br . com . jetsoftware .controller.MeuServlet</servlet-class> </li></ul><ul><li></servlet> </li></ul><ul><li><servlet-mapping> </li></ul><ul><li><servlet-name>MeuServlet</servlet-name> </li></ul><ul><li><url-pattern>/Oi</url-pattern> </li></ul><ul><li></servlet-mapping> </li></ul><ul><li></web-app> </li></ul>
  38. 38. Custom URL, resultado
  39. 39. URLs customizadas, porque definí-las ? <ul><li>Devemos SEMPRE definir URL customizadas em projetos que irão para produção </li></ul><ul><ul><li>Definição de URLs limpas, simples e com nomes curtos </li></ul></ul><ul><ul><li>URL com nomes com sentido </li></ul></ul><ul><ul><li>Não expor nomes de classes proprietárias </li></ul></ul><ul><ul><li>Pode-se usar o web.xml posteriormente para definir parâmetros iniciais. </li></ul></ul><ul><ul><li>Pode-se aplicar filtros e diretivas de segurança. </li></ul></ul>
  40. 40. Arquivos de instalação (war ) <ul><li>Arquivos WAR são na verdade arquivos JAR com uma outra extensão. </li></ul><ul><ul><li>E arquivos JAR são simplesmente arquivos ZIP </li></ul></ul><ul><li>Todos os servidores ( servlet containers) suportam arquivos WAR. </li></ul><ul><ul><li>Eles não são obrigados a suportar arquivos não compactados ( ex: diretórios ) </li></ul></ul><ul><li>Para criar um arquivo WAR, vá para o diretório de mais alto nível da aplicação e faça: </li></ul><ul><ul><li>jar cvf aplicacaoWeb.war * </li></ul></ul><ul><ul><li>Ou podemos usar qualquer utilitário de ZIP (WinZip, WinRar) </li></ul></ul><ul><ul><li>O Eclipse pode exportar um arquivo WAR automáticamente </li></ul></ul><ul><ul><ul><li>Botaão direito em project, Export -> WAR file. </li></ul></ul></ul><ul><li>O registro da aplicação é específica do servidor </li></ul><ul><ul><li>No Tomcat é só colocar o arquivo em webapps </li></ul></ul>
  41. 41. URLs relativas, soluções <ul><li>Use o nome da aplicação Web na URL. </li></ul><ul><ul><li><img src=“/testeWeb/diretorio/seta.gif”> </li></ul></ul><ul><li>Use o arquivo web.xml para atribuir URLs que estão no topo das aplicações web. </li></ul><ul><ul><li>Troque http://host/testeWeb/servlet/NomeDoServlet para http://localhost/testeWeb/NomeSimples </li></ul></ul><ul><ul><li>Mais utilizado para servlets do que em JSPs </li></ul></ul><ul><li>Usando getContextPath </li></ul><ul><ul><li>Invoque request.getContextPath() e adicione a URL de resultado manualmente. </li></ul></ul>
  42. 42. Sumário <ul><li>Benefícios das aplicações Web </li></ul><ul><ul><li>Organização e instalação fáceis </li></ul></ul><ul><ul><li>Isolamento de outras aplicações </li></ul></ul><ul><li>Estrutura </li></ul><ul><ul><li>Diretório ou sub-diretório “Top-level”, diferente de WEB-INF </li></ul></ul><ul><ul><ul><li>JSP, HTML, e outros conteúdos. </li></ul></ul></ul><ul><ul><li>WEB-INF </li></ul></ul><ul><ul><ul><li>web.xml </li></ul></ul></ul><ul><ul><li>WEB-INF/classes/diretorioComPacote </li></ul></ul><ul><ul><ul><li>Servlets, beans, classes utilitárias </li></ul></ul></ul><ul><ul><li>Criando uma aplicação Web no Eclipse </li></ul></ul><ul><ul><ul><li>Crie um novo Dynamic Web Project </li></ul></ul></ul><ul><ul><ul><li>O Eclipse criará a estrutura do projeto e o seu deployment automáticamente. </li></ul></ul></ul><ul><ul><li>Criando uma aplicação Web no Tomcat </li></ul></ul><ul><ul><ul><li>Crie um diretório com a estrutura correta ( WEB-INF e WEB-INF/classes ) </li></ul></ul></ul><ul><ul><ul><li>Copie para diretorio_comtac/webapps </li></ul></ul></ul>

×