Baixe o app para aproveitar ainda mais
Prévia do material em texto
CURSO CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: DESENVOLVIMENTO DE APLICAÇÕES WEB TEMA: 05 – INTRODUÇÃO AO JAVA PARA APLICAÇÕES WEB TEXTO PARA APOIO AO ESTUDO 1) Contextualização Relembrando alguns aspectos da tecnologia Java, que é composta por linguagem de programação e plataforma. A linguagem de programação Java é de alto nível e orientada a objetos. A Plataforma Java é um ambiente particular no qual as aplicações desenvolvidas com a linguagem de programação Java rodam. Há diferentes plataformas Java: SE, EE, ME e FX. Todas as plataformas consistem de Java Virtual Machine (JVM) e de Application Programming Interface (API): ● JVM é um programa para um determinado hardware e Sistema Operacional; ● Uma API é uma coleção de componentes de softwares que podemos utilizar para criar outros componentes ou softwares; Java apresenta a característica de que uma aplicação, desenvolvida em uma plataforma, possa rodar em outras compatíveis. Quais são as diferenças entre as plataformas Java? Vamos analisar brevemente as características básicas destas plataformas: ● Java SE (Standard Edition): ○ As APIs de Java SE fornecem as funcionalidades principais da linguagem de programação Java; ○ Consiste de elementos básicos da linguagem de programação até classes utilizadas para networking, segurança, acesso a bancos de dados, interface gráfica, etc; ○ É recomendada para aplicações menores. ● Java EE (Enterprise Edition): ○ Java EE é uma ampliação do Java SE porque incorpora outras funcionalidades; ○ É possível desenvolver projetos de maior escala; ○ Recomendado para ambientes corporativos. ● Java ME (Micro Edition): ○ Java ME fornece VM e API específicas para executar aplicações em dispositivos pequenos como aparelhos celulares; ○ A API de Java ME é um subconjunto da API de Java SE e inclui ainda bibliotecas úteis para aplicações Mobile; ○ Recomendado para dispositivos Mobile e sistema embarcados. ● Java FX: ○ Java FX é uma plataforma para criação de aplicações de internet utilizando uma API de interface de usuário mais leve; ○ Utilizam hardware-acclerated graphics e midia engines para tirar proveito de clientes de alto desempenho; ○ Aplicações Java FX podem ser clientes de serviços da plataforma Java EE. O que são APIs? E por que usá-las? Se não bastasse a complexidade para se estabelecer a comunicação, envolvendo arquiteturas cliente-servidor, protocolos de internet, segurança, entre outros, os sistemas desenvolvidos profissionalmente são, normalmente, complexos. Então, se pudermos fazer uso de códigos testados e consagrados que realizem parte das tarefas será uma vantagem enorme. Imaginem se tivéssemos que fazer todos os códigos do zero? Fazer os códigos de comunicação dos protocolos de internet e os demais? Java, portanto, tem várias APIs e, toda vez que nos depararmos com alguma tarefa que demande uma aplicação que ainda não conhecemos, é interessante, primeiro, verificar se existe alguma API que tenha as funcionalidades necessárias para a execução dela, ao invés de partir para a implementação. Algumas APIs de Java são: ● Java Servlets; ● Java Server Pages (JSP); ● Java Server Faces (JSF); ● Enterprise Javabeans Components (EJB); ● Java Persistence API (JPA); ● Java Transaction API (JTA); ● Java Message Services (JMS); Há várias outras APIs. Entretanto, neste curso, estudaremos Servlets e Java Server Pages. 2) Introdução a Servlets No passado, a Web lidava com páginas HTML de conteúdos estáticos. Entretanto, pensar na Web atualmente significa também pensar em conteúdo dinâmico, ou seja, conteúdos gerados de acordo com as requisições dos usuários. O usuário (cliente) faz uma requisição ao servidor, que processa o pedido e retorna o conteúdo de acordo com a requisição realizada. É nesse nicho de atuação que entram as Servlets. Servlets permitem a criação de páginas com conteúdo dinâmico utilizando Java. Por meio da linguagem Java, criamos classes que têm, como objetivo, gerar conteúdo HTML dinamicamente. Então, Servlets são pequenas aplicações Java que recebem requisições via HTTP, processa e retorna a resposta desejada pelo cliente. Posteriormente, quando estudarmos o padrão de projeto denominado MVC2, utilizaremos as Servlets com funções mais específicas. Por enquanto, vamos considerar que elas serão as responsáveis por lidar com as requisições e fornecer a resposta para os clientes por meio de páginas com HTML. O cliente faz uma requisição de acesso a uma página web via URL no navegador e o Web Server recebe estas requisições dos clientes e envia os dados necessários via protocolo HTTP, conforme ilustra a Figura 1. E as Servlets são gerenciadas por um módulo do servidor Web chamado Web container, que é a parte do Web Server que interage com as Servlets, permitindo a criação de conteúdo dinâmico. Na Figura 1, há a referência ao servidor GlassFish, que pode ser instalado juntamente ou separadamente a interface NetBeans, padrão de IDE adotado para o curso. Existem outros servidores que podem ser utilizados. Figura 1 - Ciclo de requisição e resposta. E o Container pode ser entendido como parte de servidores Web destinados à tarefas específicas como lidar com Servlets ou JSP. Figura 2 - Ilustração do Container. O container transforma a requisição HTTP em um objeto do tipo HttpServletRequest, que será trabalhado pela servlet específica, implementada para trabalhar com tal requisição. A servlet então gera o conteúdo dinâmico, que é empacotado para um objeto do tipo HttpServletResponse. Depois, o objeto HttpServletResponse é convertido para uma resposta HTTP, que é finalmente enviada ao cliente. HttpServletRequest e HttpServletResponse são funcionalidades da API de Servlets. É importante ter familiaridade com estes nomes porque serão muito usados ao gerar os códigos das Servlets. O Container tem também a responsabilidade pelo gerenciamento do ciclo de vida das Servlets, que está ilustrado na Figura 3, contemplando as etapas: Delegação, Carregamento, Instanciação, Inicialização e Execução. Figura 3 - Ciclo de vida das Servlets. Como Java é uma linguagem orientada a objetos, a criação e tratamento de uma servlet é realizada por meio de uma classe denominada Servlet. E a classe Servlet é uma extensão de HttpServlet definida no pacote javax.servlet. As requisições a uma servlet são feitas por meio da URL que digitamos nos navegadores: Figura 4 - Requisições via URL. Quando um Servidor Web recebe uma requisição, é feita uma análise da URL e verificado se envolve a utilização de servlets. Se é necessário utilizar servlets, então a requisição é passada para o Servlet container, que verifica qual é o endereço especificado na requisição e faz o mapeamento para a servlet adequada. Portanto, o mapeamento faz a ponte de ligação entre a URL e a Servlet. O mapeamento pode ser feito de duas formas: ● Utilizando arquivo descritor web.xml; ● Utilizando anotação @WebServlet diretamente na classe do servlet (a partir da versão 3.0); Exemplo de mapeamento por arquivo descritor web.xml, que fica dentro da pasta WEB-INF: Figura 5 - Mapeamento por arquivo descritor. Agora, vamos ver um exemplo de mapeamento por anotação @WebServletna própria classe que define a servlet (a partir da versão 3): Figura 6 - Mapeamento por anotação. As servlets que criamos são extensões da classe abstrata HttpServlets que, por sua vez, é uma extensão de outra classe abstrata denominada GenericServlet. Para implementarmos uma servlet, criamos uma classe Java como extensão da classe HttpServlet, com o nome PrimeiraServlet, por exemplo: É preciso especificar o método como as requisições e respostas serão transmitidas via HTTP. No exemplo abaixo, o método é Get (doGet): O objeto request tem a requisição empacotada. É possível criar um outro objeto de resposta (response) dinamicamente, como mostrado: Figura 7 - Exemplo de código de Servlet.. O exemplo acima mostra ainda como criar o fluxo de saída com as tags HTML, que serão utilizadas para formar a página exibida para o cliente.
Compartilhar