Baixe o app para aproveitar ainda mais
Prévia do material em texto
© Ser Educacional 2019 Rua Treze de Maio, nº 254, Santo Amaro Recife-PE – CEP 50100-160 *Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência. Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal. Imagens de ícones/capa: © Shutterstock Presidente do Conselho de Administração Diretor-presidente Diretoria Executiva de Ensino Diretoria Executiva de Serviços Corporativos Diretoria de Ensino a Distância Autoria Projeto Gráfico e Capa Janguiê Diniz Jânyo Diniz Adriano Azevedo Joaldo Diniz Enzo Moreira Leandro Agostini do Amaral DP Content DADOS DO FORNECEDOR Análise de Qualidade, Edição de Texto, Design Instrucional, Edição de Arte, Diagramação, Design Gráfico e Revisão. SER_SER_ADS_DAI_UNID1.indd 2 21/10/2019 13:21:57 Boxes ASSISTA Indicação de filmes, vídeos ou similares que trazem informações comple- mentares ou aprofundadas sobre o conteúdo estudado. CITANDO Dados essenciais e pertinentes sobre a vida de uma determinada pessoa relevante para o estudo do conteúdo abordado. CONTEXTUALIZANDO Dados que retratam onde e quando aconteceu determinado fato; demonstra-se a situação histórica do assunto. CURIOSIDADE Informação que revela algo desconhecido e interessante sobre o assunto tratado. DICA Um detalhe específico da informação, um breve conselho, um alerta, uma informação privilegiada sobre o conteúdo trabalhado. EXEMPLIFICANDO Informação que retrata de forma objetiva determinado assunto. EXPLICANDO Explicação, elucidação sobre uma palavra ou expressão específica da área de conhecimento trabalhada. SER_SER_ADS_DAI_UNID1.indd 3 21/10/2019 13:21:57 Unidade 1 - Introdução ao desenvolvimento de aplicações para internet Objetivos da unidade ........................................................................................................... 12 Introdução à web.................................................................................................................. 13 Client-side e server-side ................................................................................................ 13 Funcionamento básico do protocolo HTTP ..................................................................... 15 HTTPS ................................................................................................................................ 16 Cookies .............................................................................................................................. 17 Introdução à linguagem HTML .......................................................................................... 18 Versões da linguagem HTML ......................................................................................... 19 Prática de edição básica de documentos HTML ....................................................... 21 Geração dinâmica de documentos HTML ................................................................... 25 CSS ......................................................................................................................................... 27 Webfonts ........................................................................................................................... 28 Responsividade..................................................................................................................... 29 A pilha de desenvolvimento HTML, CSS e JavaScript e os frameworks de apoio..... 31 O framework Bootstrap .................................................................................................. 31 Biblioteca para JavaScript: o jQuery ........................................................................... 33 Prática de layout com HTML e CSS .................................................................................. 34 Java EE e suas principais APIs ......................................................................................... 36 Servidores de aplicação e web containers .................................................................... 38 Sintetizando ........................................................................................................................... 40 Referências bibliográficas ................................................................................................. 41 Sumário SER_SER_ADS_DAI_UNID1.indd 4 21/10/2019 13:21:57 Sumário Unidade 2 - Introdução ao desenvolvimento de aplicações para internet Objetivos da unidade ........................................................................................................... 43 Ambiente de desenvolvimento .......................................................................................... 44 Java Development Kit (JDK) e o Java EE Web Profile SDK ..................................... 48 Eclipse ............................................................................................................................... 52 Apache Tomcat ................................................................................................................ 56 Servlet API ............................................................................................................................. 61 Geração de conteúdo dinâmico com Servlets ................................................................ 62 Parâmetros de requisição (GET e POST) ......................................................................... 65 Sintetizando ........................................................................................................................... 68 Referências bibliográficas ................................................................................................. 69 DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 5 SER_SER_ADS_DAI_UNID1.indd 5 21/10/2019 13:21:57 Sumário Unidade 3 - Deployment Descriptor, escopos de aplicação e scriplets Objetivos da unidade ........................................................................................................... 71 Deployment descriptor (arquivo web.xml) ...................................................................... 72 Escopos de aplicação, sessão, requisição e página .................................................... 77 Páginas JSP........................................................................................................................... 79 Scriptlets e suas variantes ................................................................................................. 81 Diretivas ............................................................................................................................ 81 Objetos implícitos ................................................................................................................ 83 Funcionamento interno do JSP .......................................................................................... 88 Upload de arquivos ......................................................................................................... 94 Sintetizando ........................................................................................................................... 97 Referências bibliográficas ................................................................................................. 98 DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 6 SER_SER_ADS_DAI_UNID1.indd 6 21/10/2019 13:21:57 Sumário Unidade 4 - Escolha de opções na tecnologia Java para Web e arquitetura da aplicação Objetivos da unidade ......................................................................................................... 100 Interação com banco de dados ....................................................................................... 101Criação e implantação de arquivos WAR ...................................................................... 104 Criando um arquivo WAR ............................................................................................. 105 Enviando um arquivo WAR para o servidor .............................................................. 108 Servlet X JSP ....................................................................................................................... 109 A arquitetura MVC .............................................................................................................. 111 A arquitetura MVC no desenvolvimento em Java para Web ................................. 112 Benefícios da arquitetura MVC ................................................................................... 116 O padrão Data Access Object (DAO) ......................................................................... 116 Request Dispatcher ............................................................................................................ 117 Obtenção da Request Dispatcher ............................................................................... 119 Método de inclusão (include) ...................................................................................... 120 Método de encaminhamento (forward) ..................................................................... 121 Adicionando atributos .................................................................................................. 122 Sintetizando ......................................................................................................................... 123 Referências bibliográficas ............................................................................................... 124 DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 7 SER_SER_ADS_DAI_UNID1.indd 7 21/10/2019 13:21:57 DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 8 SER_SER_ADS_DAI_UNID1.indd 8 21/10/2019 13:21:57 A área de desenvolvimento de aplicações para internet vem se desenvol- vendo signifi cativamente para suprir uma demanda do mercado pelo desen- volvimento de serviços que funcionem remotamente pela web, e utilizando sistemas de bases de dados e servidores na internet para facilitar ao usuário o acesso a serviços em diferentes locais e por variados dispositivos, desde com- putadores desktop e notebooks até smartphones e tablets. Assim, visamos propiciar ao aluno o aprendizado de conceitos teóricos e práticos para o desenvolvimento direcionado à web, suas linguagens de pro- gramação e protocolos para comunicação. Como linha tecnológica, será utilizada a plataforma Java EE e seus compo- nentes, além de interface de programação, do termo em inglês bastante co- nhecido Application Programming Interface (API). Para o bom funcionamento das aplicações, também será introduzido o estudo das tecnologias Servlet e JSP na arquitetura comumente utilizada no mercado Model View Controller (MVC). É importante ressaltar que essa arquitetura poderá ser utilizada em outras linguagens de programação para web, sendo esse um conhecimento impres- cindível para manter a organização e a boa manutenibilidade dos artefatos de software produzidos. Desejamos a todos um excelente estudo! DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 9 Apresentação SER_SER_ADS_DAI_UNID1.indd 9 21/10/2019 13:21:57 Dedico este material primordialmente a Deus e a meus pais, Wilson e Marlene, que sempre me auxiliaram ao longo da minha formação, acreditando em mim e ressaltando a importância do esforço e do respeito ao próximo. Agradeço, ainda, aos meus sábios mestres, que me guiaram nessa trajetória de aprendizado contínuo. O professor Leandro Agostini do Amaral é doutor (2019) e mestre (2014) em Ciências de Computação e Mate- mática Computacional, na linha de pesquisa de Engenharia de Software e Sistemas de Informação/Sistemas web e Multimídia Interativos, na Universida- de de São Paulo - USP e graduado em Engenharia de Computação pela Uni- versidade de São Paulo - USP (2010). Tem publicações em anais de congressos e periódicos importantes e possui expe- riência, na área da indústria, com em- preendedorismo em startups e pesquisa no desenvolvimento de sistemas web. Currículo Lattes: http://lattes.cnpq.br/6798864284254487 DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 10 O autor SER_SER_ADS_DAI_UNID1.indd 10 21/10/2019 13:21:58 INTRODUÇÃO AO DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 1 UNIDADE SER_SER_ADS_DAI_UNID1.indd 11 21/10/2019 13:22:18 Objetivos da unidade Tópicos de estudo Fornecer ao aluno conceitos básicos de funcionamento das aplicações para internet, incluindo o protocolo de comunicação HTTP, que realiza a transferência de dados no modo cliente-servidor; Ampliar conhecimentos básicos de HTML com características da XHTML, JavaScript e detalhes de como funciona a geração dinâmica das páginas no servidor; Demonstrar como formatar páginas web utilizando folhas de estilos; Apresentar conceitos da plataforma Java EE e suas principais APIs, explicando os detalhes e as diferenças entre servidores de aplicação para web containers. Introdução à web Client-side e server-side Funcionamento básico do proto- colo HTTP HTTPS Cookies Introdução à linguagem HTML Versões da linguagem HTML Prática de edição básica de docu- mentos HTML Geração dinâmica de documen- tos HTML CSS Webfonts Responsividade A pilha de desenvolvimento HTML, CSS e JavaScript e os frame- works de apoio O framework Bootstrap Biblioteca para JavaScript: o jQuery Prática de layout com HTML e CSS Java EE e suas principais APIs Servidores de aplicação e web containers DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 12 SER_SER_ADS_DAI_UNID1.indd 12 21/10/2019 13:22:18 Introdução à web Tim Berners-Lee, cientista britânico, desenvolveu a World Wide web (WWW ou simplesmente web) no ano de 1989, enquanto trabalhava no CERN – Orga- nização Europeia para a Investigação Nuclear. A web foi originalmente concebi- da para atender à demanda de compartilhamento digital de informações entre cientistas de universidades e institutos em todo o mundo, segundo Barry M. Leiner, diretor do RIACS (Instituto de Pesquisa de Ciência da Computação Avan- çada), em parceria com outros oito autores e pesquisadores no artigo “A brief history of the internet”, publicado em 2009 no periódico ACM SIGCOMM Computer Communicaton Review. Em dezembro de 1990, Berners-Lee já havia fi nalizado a versão inicial das ferramentas necessárias para o uso da web: o protocolo de transferência de hi- pertexto (HTTP), a linguagem de marcação de hipertextos (HTML), o primeiro navegador (browser), chamado WorldWideWeb, o primeiro servidor de HTTP e as primeiras páginas web descreviam o projeto todo. Já em abril de 1993, o CERN declarou a WWW como domínio público. Assim, o número de servidores passou dos 500 daquele ano para mais de dez mil no ano seguinte e não parou mais de crescer, chegando a alcançar atualmente mais da metade da população mundial, revolucionando nossa comunicação. Em 1994, é fundado o Consórcio World Wide web (W3C), uma organização internacional no qual entidades fi liadas, uma equipe operando em tempo inte- gral e o público trabalham juntos para desenvolver padrões para a web. O W3C torna-se então o órgão ofi cial para a gestão da internet e seus padrões (gratuitos e abertos), que evoluem constantemente, trazendo novos recursos aos usuários. Client-side e server-side O modelo cliente/servidor é amplamente utilizado em redes de computadores nas quais as máquinas fornecem uma signifi cativa gama de informações ou bases de dados, chamadas de servidores, para se comunicarem com máquinas de clien- tes. Nesse modelo, um único servidor pode cuidar de muitos clientes, utilizando uma rede de computadores para realizar a comunicação entre essas entidades, como afi rma AndrewTanenbaum no livro Redes de computadores, de 2003. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 13 SER_SER_ADS_DAI_UNID1.indd 13 21/10/2019 13:22:18 Esse modelo é adotado pelo fato de servidores serem tipicamente mais po- derosos e confiáveis se comparados com dispositivos de usuários. Eles são alo- cados com hardwares que usam componentes em duplicidade, e são mantidos sob condições de segurança rígidas, com controle de acesso. Atualmente, com a utilização de computação em nuvem, os custos de implementação desse modelo foram reduzidos. Na web, o cliente utiliza um navegador, constituindo o que chamamos de client-side (lado do cliente) para se conectar a um servidor no server-side (lado do servidor) por meio de um endereço ou URL (Uniform Resource Locator) que, em português, é conhecido como localizador padrão de recursos. O uso da URL foi a forma textual encontrada para facilitar o direcionamento a um endereço Internet Protocol (IP), sendo que essa tradução é feita por meio de servidores de DNS (Domain Name Server, ou sistema de nomes de domínio). Os softwares, divididos nos chamados scripts, que compõem uma aplicação web, realizam execuções tanto no client-side como no server-side. A execução de verificações no lado do cliente diminui a necessidade de comunicação com o lado do servidor para itens simples, como para verificar se determinado campo obri- gatório de um formulário foi preenchido. Desse modo, executar ações no lado do cliente diminui a latência de resposta, por dispensar a necessidade de enviar requisições ao servidor. O desenvolvimento da interação no client-side é feito quase exclusivamente na linguagem JavaScript (JS), além do código de hipertexto HTML e da folha de es- tilos CSS. Tais códigos são recebidos pelo navegador, executando diferentes ações no lado do cliente após carregar uma página da web. EXPLICANDO Apesar da similaridade de nomes, JavaScript não faz parte da plataforma Java da Oracle, correspondendo a linguagens diferentes. O client-side agrega os elementos que o usuário visualiza em uma página, como imagens, texto, botões, campos de formulário e as ações executadas na interação desses com o navegador. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 14 SER_SER_ADS_DAI_UNID1.indd 14 21/10/2019 13:22:19 O server-side, por sua vez, inclui tudo que acontece no servidor, o que, de modo geral, inclui receber requisições dos clientes, efetuar seu processamento, com interações com bases de dados, e enviar requisições de resposta aos clientes. É importante ressaltar que a utilização de validações no lado do cliente não dispensa a implementação dessas verifi cações no lado do servidor; isso ocorre porque não é possível garantir consistência nos scripts do cliente, pois esses po- dem ser facilmente alterados pelo usuário junto ao navegador. Funcionamento básico do protocolo HTTP O Hypertext Transfer Protocol (HTTP) é o protocolo ofi cial de comunicação de dados da web, que permite a troca de dados padronizada, em nível de aplicação, entre um navegador cliente e o servidor. O HTTP funciona a partir do protocolo de transporte Transmission Control Protocol (TCP), que realiza uma conexão ponto a ponto, geralmente utilizando a porta 80. Ele é um protocolo do tipo stateless, ou seja, que não armazena seu estado ou a memória sobre suas requisições e respostas recebidas. O cliente envia uma solicitação HTTP para um servidor, chamada de requi- sição, e então o servidor responde a essa solicitação por meio de uma ou mais mensagens de resposta. Tanto a requisição quanto a resposta são feitas em texto puro, seguindo a tabela ASCII, por meio de comandos simples escritos na língua inglesa. Uma solicitação/requisição HTTP é basicamente composta por três compo- nentes, conforme Budi Kurniawan em seu livro Java para a web com Servlets, JSP e EJB, de 2002: • Método – URI (Uniform Resource Identifi er – identifi cador de recurso unifor- me) – protocolo/versão; • Cabeçalhos de solicitação; • Corpo da entidade. De modo análogo às solicitações, uma resposta HTTP também é formada por três componentes: • Protocolo – código de status – descrição; • Cabeçalhos de resposta; • Corpo da entidade. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 15 SER_SER_ADS_DAI_UNID1.indd 15 21/10/2019 13:22:19 HTTPS O Hyper Text Transfer Protocol Secure (HTTPS) se diferencia do HTTP prin- cipalmente por realizar a encriptação dos dados trafegados, requerendo para isso a autenticação dos servidores e o recebimento de um certifi cado de uma autoridade certifi cadora (AC). Para tanto, ele utiliza a tecnologia Transport Layer Security (TLS), ou seu antecessor Secure Sockets Layers (SSL), para realizar o pro- cesso de comunicação segura. Para sua utilização, o usuário deve digitar “https://” antes do endereço do site e, geralmente, é utilizada a porta 443 com certifi cados validados nesse tipo de comunicação. Com a validação da comunicação segura, os navegadores são in- formados desse status normalmente por meio de um ícone de cadeado fechado ao lado da URL, na barra do navegador. A utilização do HTTPS nos servido- res é altamente recomendada, visto que o HTTP é inseguro e sujeito a ata- ques de escuta ilegais, que podem le- var intrusos a terem acesso a informa- ções alheias. Como modo de incentivo a esse uso, buscadores reconhecidos, como o Google, têm priorizado servido- res que usam HTTPS nos seus resulta- dos de pesquisa – conforme afi rmado por Zineb Ait Bahajji e Gary Illyes, ana- listas de tendências para webmasters da Google, em 2014, no texto “HTTPS as a ranking signal”, disponível no Offi cial Google Webmaster Central Blog. DICA Desde 2015, já é possível utilizar uma autoridade certifi cadora gratuita, a Let’s Encrypt, que permite a geração e renovação de certifi cados de modo automatizado e aberto. Esse projeto surgiu graças à organização sem fi ns lucrativos Internet Security Research Group (ISRG) e visa promover a popularização e difusão da utilização de criptografi a na web. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 16 SER_SER_ADS_DAI_UNID1.indd 16 21/10/2019 13:22:29 Cookies Um cookie HTTP é um conjunto de informações que um servidor envia para o navegador do usuário para armazenar dados, e os recebe de volta na próxima re- quisição. Normalmente, ele é utilizado para identifi car as diferentes requisições que vieram do mesmo navegador e resgatar informações anteriores acerca dele, mantendo um usuário logado, por exemplo. Assim, tem por objetivo guardar in- formações para o protocolo HTTP, que não faz esse papel, por ter a característica básica de não reter seu estado. De modo geral, os cookies são utilizados pelos desenvolvedores com as se- guintes fi nalidades: • Gerenciamento de sessão: gerenciar logins em áreas restritas e carrinhos de compra; • Personalização de interfaces: registro de preferências de usuário, temas e outras confi gurações de utilização de um determinado sistema; • Rastreamento: gravação e análise de comportamento do usuário. Existem dois tipos de cookies: os cookies de sessão e os transitórios. Os tran- sitórios fi cam em uma memória temporária e são apagados quando o usuário encerra a sessão do navegador; eles normalmente não identifi cam o usuário pessoalmente. Já o cookie persistente ou permanente fi ca armazenado no disco rígido do usuário até que expire, ou seja, após a data de validade defi nida pelo desenvolvedor, ou até que o usuário o exclua; os cookies persistentes são, então, utilizados para coletar informações de identifi cação do usuário, como comporta- mento de navegação ou de suas preferências para um site específi co. CURIOSIDADE A inspiração para o nome cookie veio dos objetos do sistema operacional Unix, chamados de “cookies mágicos”, que são tokens associados a um usuário ou programa e que mudam de status, dependendo das áreas utilizadas por ele. Os cookies têm seis atributos,a saber: • Nome; • Valor ou conteúdo; • Data de validade; DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 17 SER_SER_ADS_DAI_UNID1.indd 17 21/10/2019 13:22:29 • O caminho (URL) para o qual é válido, ou seja, páginas da web fora desse caminho não podem usá-lo; • O domínio para o qual o cookie é válido, tornando-o acessível para páginas em qualquer um dos servidores de um site (o que é útil para quando um site usa vários servidores em um domínio); • A necessidade de uma conexão segura, logo, ele pode ser usado apenas em conexões que utilizam o protocolo HTTPS. Com a evolução da web, cada vez mais requisitos de segurança e privacidade têm sido demandados e, por isso, os navegadores estão mais rígidos em relação aos cookies, para proteger ao máximo o usuário e suas informações. Atualmen- te, os navegadores oferecem recursos de navegação anônima, que não regis- tram cookies, e em seu modo de navegação normal também executam várias checagens para evitar acessos indevidos aos cookies, de acordo com Ben Gal- braith e Justin Schuh, responsáveis da pela gestão e engenharia do Chrome no texto “Improving privacy and security on the web”, publicado em 2019 no Chro- mium Blog da Google. Introdução à linguagem HTML A Hypertext Markup Language (HTML) é uma linguagem de hipertexto para descrever e formar a estrutura de páginas web. A HTML fornece aos autores meios para: • Publicar documentos com títulos, texto, tabelas, listas, fotos etc.; • Recuperar informações, por meio de links (ligações) de hipertexto, com o clique de um botão; • Criar formulários para a realização de transações com serviços remotos, para utilização na busca de informações, reservas, pedidos de pro- dutos etc.; • Incluir planilhas, vídeos, arquivos de áudio e outros aplicativos diretamente em seus documentos. Com HTML, os autores descrevem a estrutura das páginas usando marcações. Os elementos da linguagem rotulam partes do conteúdo, como “pa- rágrafo”, “lista”, “tabela” e assim por diante. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 18 SER_SER_ADS_DAI_UNID1.indd 18 21/10/2019 13:22:29 Para realizar essa rotulagem, a HTML faz uso de tags, defi nindo sua abertura e fechamento. Por exemplo, <b> signifi ca início de negrito e </b> signifi ca fi m do negrito. Embora seja possível escrever páginas HTML com qualquer editor simples de texto, também é possível utilizar editores especiais de HTML (inclu- sive alguns on-line), que auxiliam bastante na geração e validação do código, de acordo com Andrew Tanenbaum em seu já referido livro de 2003. Versões da linguagem HTML Entre os anos de 1993 e 1995, a linguagem HTML passou pelas versões HTML+, HTML 2.0 e HTML 3.0, sendo experimentadas melhorias para enriquecer as pos- sibilidades da linguagem. Contudo, até então, a linguagem não era tratada como um padrão, o que difi cultava o desenvolvimento de documentos que pudessem funcionar de modo semelhante nos mais diversos clientes, de acordo com o ma- terial preparado pela própria W3C para seu curso de HTML 5. Como solução, em 1997, um grupo de trabalho do W3C produziu a versão 3.2 da linguagem, conseguindo fazer com que ela fosse tratada como padrão. A partir do desenvolvimento da versão 3.5 da linguagem HTML, em 1997, esse grupo de trabalho do W3C focou no desenvolvimento da XHTML, uma especi- fi cação de sintaxe mais rigorosa, tida como possível sucessora da HTML. Esse desenvolvimento continuou para dar origem à XHTML 2, cuja proposta principal era a modularização e otimização da XHTML. Em paralelo foi lançada a versão 4.01 da linguagem HTML, no fi nal de 1999, pelo W3C, mas que ainda não supria a demanda de melhor organização do extenso conteúdo já presente na web e a necessidade de melhorar a semântica (o signifi cado) do código. Essa versão tam- bém não estava bem preparada para garantir a devida manipulação ágil e fácil dos elementos via JavaScript e com folhas de estilos CSS, novamente de acordo com a W3C no já mencionado material. Em outubro de 2006, Tim Berners-Lee anunciou que trabalharia juntamen- te com um grupo de empresas que compunham o web Hypertext Application Technology Working Group (WHATWG), que estava focado em desenvolver a HTML principalmente nas questões de interatividade. A parceria com o WHATWG foi então reconhecida pelo W3C, culminando na produção da versão 5 da HTML em detrimento da XHTML 2, descontinuada em 2009. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 19 SER_SER_ADS_DAI_UNID1.indd 19 21/10/2019 13:22:29 A versão 5 da HTML, disponibilizada em 2014, é uma signifi cativa evolução do padrão, com novos elementos, atributos e comportamentos. Ela também foi desenvolvida para operar com um conjunto maior de tecnologias, permitindo o desenvolvimento de aplicações chamadas ricas, com melhor controle semântico, e websites mais diversos. Na Tabela 1 temos a sintetização da evolução da HTML. Versão Ano HTML 1991 HTML 2.0 1995 HTML 3.2 1997 HTML 4.01 1999 XHTML 2000 HTML 5 2014 HTML 5.1 2016 HTML 5.2 2017 HTMLHTML HTML 2.0HTML 2.0HTML 2.0 HTML 3.2HTML 3.2 HTML 4.01 HTML 3.2 HTML 4.01HTML 4.01 XHTML 1991 XHTML HTML 5 1991 HTML 5 1995 HTML 5 HTML 5.1 1995 1997 HTML 5.1 HTML 5.2 1997 HTML 5.1 HTML 5.2 1999 HTML 5.2 1999 20002000 20142014 20162016 20172017 TABELA 1. EVOLUÇÃO DA LINGUAGEM HTML A XHTML é uma variante da HTML que usa a sintaxe do XML, a EXtensib- le Markup Language. A XHTML possui os mesmos elementos da HTML, mas a sintaxe é um pouco diferente, mais rígi- da. Como a XHTML é um artefato XML, é possível ainda usar outras ferramen- tas XML (como a XSLT, uma linguagem para transformar o conteúdo XML). A rigidez na codifi cação exigida na XHTML difi culta o trabalho, sobretudo para desenvolvedores inexperientes, diferentemente da HTML, em que não há tanta exigência na escrita do código da linguagem. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 20 SER_SER_ADS_DAI_UNID1.indd 20 21/10/2019 13:22:30 Prática de edição básica de documentos HTML Partiremos, agora, para uma demonstração prática de como utilizar concre- tamente a linguagem HTML. Antes, faz-se necessário conhecer as marcações que a constituem e que dão origem às diferentes funcionalidades. Na Tabela 2, dispomos as principais marcações ou tags da HTML e suas fi nalidades: Marcação Categoria Finalidade <!--…--> básica Cria um comentário <a> link Cria um link para uma página ou outro documento <abbr> formatação Cria uma abreviação <area> imagem Defi ne uma área dentro de um mapa de imagem <b> formatação Formata um texto para negrito <base> metadados Defi ne a URL de base para todos os links da página <blockquote> formatação Cria uma citação longa <body> básica Indica o início do corpo da página <br> básica Insere uma quebra de linha <button> formulário Define um botão <caption> tabela Define o caption de uma tabela <cite> formatação Defi ne uma citação <code> formatação Defi ne o código-texto/fonte de computador <col> tabela Defi ne os atributos da coluna da tabela <colgroup> tabela Defi ne um grupo de colunas da tabela <dd> lista Defi ne a descrição de um item em uma lista de defi nições <div> estilo Define uma seção no documento <dl> lista Define uma lista de definição TABELA 2. PRINCIPAIS MARCAÇÕES OU TAGS DA HTML DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 21 SER_SER_ADS_DAI_UNID1.indd 21 21/10/2019 13:22:30 <dt> lista Define um termo de definição <em> formatação Define um texto em ênfase <fieldset> formulário Define um conjunto de campos <form> formulário Cria um formulário <h1> até <h6> básica Indica cabeçalhos por nível, do cabeçalho 1 até o 6 <head> metadados Indica o início de informações sobre o documento <hr> básica Cria uma divisão horizontal <html> básica Indica o início (raiz) de um documento HTML <i> formatação Formata um texto para itálico <iframe> frame Cria um quadro que pode incluir outro documento HTML <img>imagem Insere uma imagem <input> formulário Define um campo de entrada de dados <ins> formulário Define um texto inserido <label> formulário Cria uma etiqueta "label" em itens no formulário <legend> formulário Define um título para campos <li> lista Define um item da lista <link> link Cria uma referência (não confundir com a marcação <a>) <map> imagem Cria um mapa de imagens <meta> metadados Cria metadados na página <noscript> programação Define uma seção noscript <object> programação Incorpora um objeto <ol> lista Define uma lista ordenada <optgroup> formulário Define um grupo de opções <option> formulário Cria uma opção em uma lista (drop-down list) <p> básica Adiciona um parágrafo <param> programação Define um parâmetro para um objeto <pre> formatação Define um texto pré-formatado DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 22 SER_SER_ADS_DAI_UNID1.indd 22 21/10/2019 13:22:30 <q> formatação Define uma citação curta <samp> formatação Define um código de amostra <script> programação Inicia um script <select> formulário Cria uma lista selecionável <small> formatação Define um pequeno texto <span> estilo Define uma seção no documento <strong> formatação Define um texto forte (similar ao negrito) <style> estilo Define informações de estilo <sub> formatação Formata um texto para subscrito <sup> formatação Formata um texto para sobrescrito <table> tabela Cria uma tabela <tbody> tabela Cria o corpo da tabela <td> tabela Cria uma célula da tabela <textarea> formulário Define uma área de texto <tfoot> tabela Cria um rodapé da tabela <th> tabela Cria um cabeçalho da tabela <thead> tabela Define o cabeçalho da tabela <title> metadados Seta o título do documento <tr> tabela Cria uma linha da tabela <ul> lista Cria uma lista desordenada Para a edição básica de documentos HTML, além de conhecer tais tags, é necessário um editor de texto e um navegador, sendo este último para efetuar o teste de visualização do resultado. Ao final da edição, o desenvolvedor faz upload do arquivo para um servidor web que responde por uma determinada URL. Na Figura 1 é demonstrado, na parte (a), um código- -fonte de uma página simples desenvolvida em HTML, com as marcações destacadas em azul, e, na parte (b), sua visualização em um navegador. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 23 SER_SER_ADS_DAI_UNID1.indd 23 21/10/2019 13:22:30 Figura 1. Capturas de tela: (a) o código HTML de um exemplo de página da web; (b) a página formatada visualizada em um navegador. Como pode ser visualizado no código da Figura 1, logo no início há a declara- ção do idioma da página sob a forma de metadado e a abertura de seu cabeçalho com a defi nição do tipo de caracteres utilizados, o charset, que, nesse caso, é o utf-8. Para funcionar bem a leitura dos caracteres textuais, sobretudo no que se refere à acentuação, é importante que o charset corresponda ao mesmo que foi salvo pelo editor de texto utilizado (nas opções avançadas de salvamento, geral- mente é possível confi gurar o charset utilizado). DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 24 SER_SER_ADS_DAI_UNID1.indd 24 21/10/2019 13:22:32 Fechando o cabeçalho, na linha 5 do código, podemos ver a defi nição do títu- lo, delimitado por <title> e </title>. Essa informação será utilizada por navega- dores para defi nir o nome da página em suas abas. Mecanismos de busca como o Google também dão signifi cativo valor a essa informação. Já no corpo da página (linhas 7 a 16) encontra-se o conteúdo propriamente dito, elencando os elementos que são visíveis ao usuário. Nesse caso, há textos de destaque gerados pela tag <h n>, onde n é um número de hierarquia no in- tervalo 1 a 6 (sendo, portanto, <h1> o de maior importância). A página disposta como exemplo ainda faz uso da marcação <b> para texto em negrito, <i> para texto em itálico, <hr> para criar uma linha divisória horizontal e as tags <ul> e <li> para criar uma lista não numerada. Note que, no exemplo apresentado, não houve preocupação com refi namen- to estético, por não utilizar referência alguma a uma determinada folha de esti- los. Isso foi proposital, justamente para seguir a importante recomendação de separação de conteúdo e estilos, facilitando futuras manutenções. No início da tecnologia web, sem boas opções para gerenciamento de estilos dos elementos, era comum desenvolvedores utilizarem tabelas da HTML e marcações de forma- tação dos documentos para diagramarem as páginas. Tais práticas, apesar de ainda funcionarem, não são boas práticas de projeto. Geração dinâmica de documentos HTML No início da web, os servidores entregavam ao usuário apenas arquivos de páginas estáticas. Atualmente existem verdadeiros sistemas de informação, en- tregando páginas web processadas aos usuários a partir de conexão com bases de dados. Esse processamento aumentou signifi cativamente a importância da web na sociedade para a realização dos mais diversos serviços (cadastros, governo eletrônico, compras e serviços bancários são alguns dos exemplos mais conhecidos). Para processamento web no lado do servidor, geral- mente são utilizadas as seguintes tecnologias: Perl, Microsoft .Net, Node.js, PHP, Ruby on Rails e Java Servlets e JSP, sendo essa última a que aborda- remos adiante. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 25 SER_SER_ADS_DAI_UNID1.indd 25 21/10/2019 13:22:32 Também é possível realizar a geração dinâmica de documentos no lado do cliente via JavaScript, porém essa geração normalmente necessita de chamadas a um servidor para obter arquivos de dados, usando XML ou JSON – JavaScript Object Notation, isto é, notação de objetos JavaScript. Esse modo de construção de aplicativos tem a vantagem de diminuir a quantidade de dados transmitidos na comunicação cliente-servidor, pois, em vez de receber a página toda em no- vas interações, apenas os novos dados são transmitidos. Na prática, geralmente boas aplicações web usam ambos os tipos de programação (no cliente e no ser- vidor) para a geração dos documentos visualizados pelo usuário. A Figura 2 demonstra as etapas para geração de páginas dinâmicas, desde a entrada inicial de informações do usuário, via requisição no navegador, até a consulta nas bases de dados e retorno do servidor. Figura 2. Fluxo de processamento de páginas dinâmicas web. Fonte: TANENBAUM, 2003, p. 487. (Adaptado). 1 2 Navegador CLIENT-SIDE SERVER-SIDE Servidor web Base de dadosScripts 3 4 5678 1 – Usuário informa dados 2 – Dados enviados ao servidor 3 – Dados repassados para os scripts 4 – Consulta e/ou gravação na base de dados 5 – Retorno da base de dados 6 – Script gera a página ou dados em XML ou JSON 7 – Arquivo HTML, XML ou JSON retornado 8 – Página apresentada ao usuário Conforme relatado, frequentemente a aplicação web precisa apenas atua- lizar os dados apresentados ao usuário no navegador, por exemplo, quando se avisa que chegou um novo e-mail. Nesses casos, não faz sentido receber toda uma página novamente, mas apenas as novas informações (neste contexto, o novo e-mail recebido) e, para tanto, o navegador receberá do servidor apenas os dados adicionais, em XML ou JSON. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 26 SER_SER_ADS_DAI_UNID1.indd 26 21/10/2019 13:22:32 Objetos em JSON fazem parte de uma tecnologia própria JavaScript, ampla- mente utilizada em aplicações web modernas. Tais objetos estruturam informa- ções de modo compacto e simples e, por isso, o JSON tem sido adotado por em- presas como Google e Yahoo. A título de exemplifi cação e comparação, demonstramos, na Figura 3, dados fi ctícios de dois funcionários, armazenados em arquivos, respectivamente, na tecnologia JSON e em XML. Figura 3. Exemplo simples de comparação de arquivos em JSON e XML. Através da comparação apresentada na Figura 3, é possível perceber que a tecnologia JSON é mais leve (arquivo cerca de 50% menor, nesse caso) e apresen- ta a vantagemde alta interoperabilidade com os navegadores, que tradicional- mente já executam JavaScript, além de ser bem aceita no lado dos servidores. No entanto, as duas tecnologias têm seu espaço, sendo que o XML tem uma gama grande de ferramentas no mercado, incluindo aquelas de alta complexida- de, para transformações e buscas de informações, então cabe, ao desenvolver algo nesse sentido, decidir qual tecnologia mais deve agregar em sua pilha de desenvolvimento. CSS A Cascading Style Sheets (CSS) é a linguagem de estilo feita para descrever a apresentação dos elementos das páginas da web, incluindo cores, layout e fontes. Ela permite adaptar a apresentação a diferentes tipos de dispositivos, como telas grandes e pequenas ou impressoras. A CSS é independente da linguagem HTML e pode ser utilizada com qualquer linguagem de marcação baseada em XML. A separação entre HTML e CSS facilita a DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 27 SER_SER_ADS_DAI_UNID1.indd 27 21/10/2019 13:22:32 manutenção de aplicações web, o compartilhamento de folhas de estilo entre páginas e a adaptação das páginas para diferentes ambientes. Isso é chamado de separação da estrutura (ou conteúdo) da apresentação. É possível utilizar estilos CSS em uma página web de três modos distintos: adicionar o texto de comandos CSS internamente no arquivo HTML, usar CSS em linha para aplicar regras em elementos específi cos ou fazer um link para um arquivo .css externo. Este último modo é o mais aconselhado no desenvol- vimento de sites por separar os estilos dos documentos HTML que contêm os elementos visuais e fazer com que um arquivo de estilos possa ser aplicado em diferentes páginas, facilitando a manutenção e conferindo estilos padrões a todas as páginas de um site. A primeira versão do CSS foi lançada em dezembro de 1996 e defi niu proprie- dades básicas para especifi car cores, fontes, margens, bordas e outros estilos básicos. A segunda edição do padrão, CSS 2, foi adotada em maio de 1998, defi - nindo recursos mais avançados, como o suporte para posicionamento absoluto de elementos. Para a versão 3, a especifi cação CSS foi dividida em vários módu- los especializados, que estão passando pelo processo de padronização. DICA Dispomos aqui os validadores on-line do W3C, que são gratuitos e podem ser usados para efetuar verificações, res- pectivamente, de CSS e de HTML. Isso permite que, posteriormente, possíveis correções necessárias sejam realizadas. Webfonts Antes da versão 3 do CSS, os desenvolvedores estavam limitados a utilizar apenas elementos de tipografi a chamados de fontes, que são básicos dos dis- positivos clientes. Como modo de desenvolver sites com diferentes tipos de fontes, os designers chegavam a usar imagens para escreverem textos, o que deixa geralmente mais pesado o carregamento da página e prejudica os aplicativos de lei- tura de tela, utilizados por pessoas com defi ciência visual. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 28 SER_SER_ADS_DAI_UNID1.indd 28 21/10/2019 13:22:33 Responsividade A responsividade é um atributo de qualidade das interfaces das aplicações que as permite funcionar bem em diversos dispositivos clientes, o que se dá por meio da adaptação do conteúdo. O design responsivo para web evita que os desenvolvedores tenham que criar múltiplas versões do hipertexto para cada variação de tela ou de resoluções do mercado. Esse atributo está cada vez mais em evidência pelo crescimento expo- nencial do acesso à web por dispositivos móveis, cujas telas são menores do que de desktops e notebooks. Um site responsivo reage às necessidades dos usuários e seus dispositivos. Por exemplo, em um smartphone, os usuários visualizam o conteúdo em uma só coluna, enquanto em um notebook o mes- mo conteúdo pode ser visto em três colunas, pela largura maior de sua tela. Um design com responsividade inclui: • Adaptar o layout dos elementos web de acordo com a resolução do cliente; • Redimensionar imagens para que caibam na tela; • Simplifi car elementos da tela para dispositivos móveis; • Ocultar elementos desnecessários nos dispositivos com telas menores; • Adaptar o tamanho de botões e links para interfaces sensíveis ao toque (touch screen). Na Figura 4 é possível visualizar um projeto do tipo wireframe de um site considerando a responsividade, por prever a realocação dos elementos vi- suais em telas com a largura menor. Repare, portanto, que não só a fonte do título do site e a foto foram deixadas em menor tamanho, como as infor- mações abaixo dela, em vez de se distribuírem em duas colunas lado a lado, assumiram uma forma vertical. Para resolução da questão, foi desenvolvida então a regra de CSS @font-face, que é utilizada para indicar fontes fora do padrão do sistema nos sites, com o res- pectivo caminho para o arquivo da fonte. A sintaxe de utilização é simples e tem suporte à grande maioria dos navegadores atuais. Existem ferramentas on-line gratuitas, como o Google Fonts e o Font Squirrel, que oferecem fontes e auxiliam na escrita do código CSS para utilização facilitada nos desenvolvimentos web. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 29 SER_SER_ADS_DAI_UNID1.indd 29 21/10/2019 13:22:33 Figura 4. Projeto wireframe de site responsivo. Fonte: Shutterstock. Acesso em: 11 set. 2019. Projetos do tipo wireframe podem ser feitos manualmente em papel (com lápis ou caneta) ou em editores informatizados simples, e servem para represen- tar o futuro produto, como um esqueleto, um protótipo ou uma versão bastante primitiva do visual de um projeto. Assim, no wireframe há um auxílio ao designer na hora de prever a diagrama- ção dos conteúdos e aplicar a identidade visual, facilitando a futura codificação, e ainda ser uma ferramenta de alinhamento da expectativa do cliente quanto ao que será produzido no layout. Nesse contexto, considerando a grande proximidade atual das pessoas com seus smartphones, incluindo o aumento vertiginoso desses dispositivos, Luke Wroblewski, autor do livro Mobile First, de 2011, propôs uma técnica que está sendo bem aceita entre os desenvolvedores web: a mobile first ou, em tradução livre, dispositivo móvel primeiro. O conceito básico é o de criar um site pensando primeiro nos dispositivos móveis e só então ajustá-lo para o computador. O desenvolvimento com a técnica mobile first apresenta a vantagem de mais fácil adaptação do que o processo inverso, isto é, do computador para o mobile. O conteúdo textual, por exemplo, quando pensado para ser apresentado em uma tela menor, tem de ser resumido, indo direto ao ponto desejado, e isso tam- bém se torna útil nas telas maiores, segundo o próprio Luke Wroblewski em seu livro de 2011. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 30 SER_SER_ADS_DAI_UNID1.indd 30 21/10/2019 13:22:33 A pilha de desenvolvimento HTML, CSS e JavaScript e os frameworks de apoio Na área de Tecnologia da Informação, em geral, há uma característica técnica muito perceptível no desenvolvimento para a web, que é a necessidade de uma soma de recursos de diferentes linguagens de marcação e programação para pro- duzir o software fi nal. Essa característica é conhecida como pilha de desenvolvimento e tem de- safi ado os desenvolvedores a realizar uma integração transparente e adequa- da, dependendo de um estudo contínuo desses profi ssionais. Assim, no mercado de trabalho, na busca por esses profi ssionais, surgiu in- clusive um termo para defi ni-los: profi ssionais de pilha completa ou full-stack. No desenvolvimento web, na parte de interface de usuário, ou front-end, a pilha de desenvolvimento geralmente envolve: • HTML: para escrita do conteúdo sob a forma de hipertexto; • CSS: para formatação do conteúdo do hipertexto; • JavaScript: para execução das ações de validação do client-side e chama- das dinâmicas ao servidor de modo assíncrono, angariando maior interativida- de à aplicação web. O frameworkBootstrap Considerando que as aplicações comerciais têm necessidades em comum de integração da pilha de desenvolvimento, incluindo agregação plena de requisitos de acessibilidade, usabilidade e responsividade, surgiram frameworks para au- xiliar o desenvolvedor. Como exemplo de sucesso nessa área de frameworks para apoio ao desenvol- vedor web é possível citar o Bootstrap, um framework front-end de uso gratuito voltado para criação de sites responsivos, que permite ao desenvolvedor chegar a resultados rápidos e confi áveis a partir do uso de componentes (plugins) usando HTML, CSS e JavaScript. Os principais componentes básicos disponíveis são: • Alert: mostra um alerta ao usuário, podendo ter várias cores, de acordo com o signifi cado semântico, e ainda um botão de dispersão opcional; DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 31 SER_SER_ADS_DAI_UNID1.indd 31 21/10/2019 13:22:33 • Card: cria um container de conteúdo flexível e extensível, com opções para cabeçalhos e rodapés, cores de background contextuais e tipos diferentes de apresentação; • Carousel: apresenta slides de uma série de imagens, texto ou marcação personalizada. Também suporta controles e indicadores (anterior e próximo); • Modal: cria janelas internas (so- brepostas a outros elementos ou não) para exibição e/ou coleta de dados, otimizando o uso do espaço da página. Esse elemento pode ser utilizado para manter mensagens (de confirmação, por exemplo) e formulários ocultos, exibindo-os somente quando for ne- cessário. Note que esse componente é importante para evitar a necessidade de redirecionamento de usuário para outra página, otimizando a interação; • Navbar: introduz uma barra de navegação que apresenta links em forma de menu com opção de itens drop-down; • Progress: permite a criação de barras de progresso com diversas opções, como a inclusão de rótulos, indicação de nível de progresso em porcentagem, definição de preenchimento com cores, listras e animações; • Tooltip: apresenta uma dica de algo quando o ponteiro do mouse passa em cima de determinado elemento. No próprio portal do Bootstrap, é possível ter acesso a exemplos ilustrativos de tais componentes. Além de componentes básicos, existem exemplos de casos corriqueiros do mercado já implementados no framework Bootstrap. Isso vem ao encontro da necessidade de desenvolvedores produzirem conteúdo de qualidade, de acordo com padrões de interação de sucesso, em curto espaço de tempo. Dentre vários exemplos disponibilizados, destacam-se os seguintes: • Album: página para galerias de fotos, portfólios, dentre outros; • Blog: página em estilo de revista, com grande rolagem vertical, cabeçalho, navegação e conteúdo destacado; DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 32 SER_SER_ADS_DAI_UNID1.indd 32 21/10/2019 13:22:40 Biblioteca para JavaScript: o jQuery O jQuery é uma biblioteca de componentes JavaScript criada em 2006 por John Resig muito utilizada por desenvolvedores, sendo pequena, rica em recur- sos e bem integrada ao Bootstrap (geralmente são utilizados em conjunto). O uso do jQuery auxilia no processo de passagem e manipulação de docu- mentos HTML, manipulação de even- tos, animação e Ajax, com uma API que funciona em diversos navegadores. Para sua utilização, basta incorpo- rar seu código na página usando a tag <script> e depois utilizar seletores para acessar os objetos e realizar ações: • Pela sua identifi cação, única (cada elemento em HTML pode e deve ter um identifi cador chamado ID, nomeado pelo desenvolvedor na sua tag de abertura); • Por sua classe CSS. Essa seleção e ação é feita com a sintaxe $(“#ID”).acao();. • Checkout: página com formulário de checkout customizado para validar itens a serem comprados, mostrando componentes de formulário referentes a dados do cliente e informações para pagamento; • Dashboard: painel de controle administrativo básico, com barras laterais e de navegação; • Pricing: página de produtos e seus respectivos preços, feita com cards e incluindo cabeçalhos e rodapé personalizado; • Product: página de marketing focada em apresentar detalhes de um produ- to de modo bem trabalhado, com grid, textos e imagens; • Sign-in: página com layout e design de formulário customizado para um login em determinada área restrita. No próprio portal do Bootstrap é possível ter acesso a exemplos ilustrativos de tais componentes. No site do Bootstrap também é possível encontrar mais explicações sobre cada um deles, bem como respectivos códigos, exemplos (que podem ser reutilizados livremente) e demonstração de funcionamento. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 33 SER_SER_ADS_DAI_UNID1.indd 33 21/10/2019 13:22:49 Prática de layout com HTML e CSS Para esta seção é apresentada uma prática para orientar os alunos a de- senvolveram uma página web, utilizando HTML e CSS, em um padrão chamado landing page, ou página de aterrisagem em português. Esse padrão é bastante conhecido e amplamente utilizado atualmente para apresentação de uma em- presa e venda de produtos e serviços. A ideia é desenvolver uma página com grande rolagem vertical, permitindo fácil visualização das informações em dispositivos móveis. Isso se explica pelo fato de as pessoas estarem acostumadas a percorrer com rolagem vertical, em redes sociais, longos feeds, sendo uma experiência mais amigável do que fazer o usuário selecionar um link para ter de visualizar cada informação. Esse tipo de página conta ainda com a característica de se iniciar com um título curto e de boa expressividade, textos pequenos e um destaque, logo no início, para a conversão desejada (conhecer a marca, entrar em contato com uma empresa ou mesmo comprar determinado produto ou serviço). Fazem parte ainda desse padrão as seguintes características: • Uso de frases curtas e claras em todos os textos, que devem ser separados por temas e objetivos; • Destaque de termos relevantes em negrito; • Grande uso de imagens e vídeos ilustrativos; • Uso de mapas para indicar lugares (como o endereço do estabelecimento, do negócio etc.), geralmente no fi nal da página. Para desenvolvimento da página, o primeiro passo é obter o Bootstrap, que será responsável por oferecer os elementos de HTML, CSS e JavaScript ne- cessários para um site de qualidade, com ótima usabilidade e responsividade. Para tanto, para facilitar o aprendizado, basta copiar o código de template ini- cial que apresenta um “Hello World”, ou “Olá mundo”, para um novo arquivo com extensão HTML em seu computador. Com o texto “Olá mundo” aparecendo formatado em seu navega- dor, você pode ir incrementando-o com os elementos neces- sários para a landing page e testá-la aos poucos, até deixar o desenvolvimento melhor elaborado. Essa primeira versão da prática pode ser vista na Figura 5. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 34 SER_SER_ADS_DAI_UNID1.indd 34 21/10/2019 13:22:49 Figura 5. Captura de tela: (a) página simples com o código utilizando Bootstrap; (b) sua visualização no navegador. Para chegar mais rápido ao resultado final, você deve utilizar o código exemplo Product do Bootstrap e realizar alterações dos textos de conteúdo e imagens (todas as programações de CSS e JavaScript podem ser mantidas). No resultado exemplificado a seguir, os textos e imagens foram altera- dos para uma empresa fictícia chamada “Max CSS Limpeza”. É possível ob- servar que o uso do Bootstrap permitiu que o site funcionasse bem, com responsividade, tanto em dispositivos desktop, com tela maior, quanto em smartphones. É possível constatar ainda que a responsividade atingida vai além de uma simples organização dos elementos. Houve a alteração completa do menu no smartphone, mudando sua organização para o padrão menu san- duíche ou hambúrguer, em que um ícone, que lembra um sanduíche, serve como botão que, quando pressionado, abre uma caixa de opções, otimizan- do espaço na tela.DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 35 SER_SER_ADS_DAI_UNID1.indd 35 21/10/2019 13:22:50 Figura 6. Página responsiva landing page de uma empresa fi ctícia feita com uso do Bootstrap. Java EE e suas principais APIs O Java Enterprise Edition (EE) é a especifi cação de uma plataforma am- plamente utilizada para desenvolvimento de aplicações corporativas, incluindo as aplicações web, possuindo diversos recursos, como bibliotecas e funcionali- dades implementadas. Esses recursos coordenados têm a intenção de reduzir signifi cativamente o custo e a complexidade do desenvolvimento, implantação e gerenciamento de aplicações de várias camadas centradas no servidor, agre- gando maior padronização, portabilidade, robustez, escalabilidade, confi abili- dade e segurança nos produtos desenvolvidos , de acordo com Budi Kurniawan na já mencionada obra de 2002. CURIOSIDADE O Java EE, em suas versões antigas (até a 1.4), era conhecido pelo nome J2EE. Na Tabela 3 indicamos os marcos da evolução da especifi cação Java EE. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 36 SER_SER_ADS_DAI_UNID1.indd 36 21/10/2019 13:22:51 Versão Ano de lançamento Java EE 5 2006 Java EE 6 2009 Java EE 7 2013 Java EE 8 2017 Java EE 5Java EE 5 Java EE 6 Java EE 5 Java EE 6Java EE 6 Java EE 7Java EE 7 Java EE 8 Java EE 7 Java EE 8Java EE 8 20062006 20092009 20132013 20172017 TABELA 3. EVOLUÇÃO DA ESPECIFICAÇÃO JAVA EE Uma signifi cativa mudança apresentada na versão 8 foi o anúncio da Ora- cle, proprietária (após a compra da Sun Microsystems) dos direitos sobre a lin- guagem Java, de ceder o Java EE para a organização sem fi ns lucrativos Eclipse Foundation. Isso foi feito com o objetivo de aumentar a colaboração entre indi- víduos, pequenas empresas, empresas e os maiores fornecedores. Nesse processo de transição de tecnologias para a Eclipse Foundation, um novo projeto foi iniciado, o Eclipse Enterprise para Java (EE4J), que utiliza o Java EE 8 e também outro projeto, chamado Jakarta, como base para a criação de novos padrões. As principais APIs do Java EE, em sua versão 8, podem ser vistas na esque- matização por grupos de perfi s hierárquicos de distribuição (profi les) de acor- do com o apresentado na Figura 7. w eb p rofi le do Java EE Iten s opcio nais do Java EE Ite ns o brigatórios do Java EE w eb co ntainer do Java EEJav a SE Java EE Deployment, Entity Beans e JAX RPC EJB, JavaMail, Batch, JSP Debugging, JMS e Connector CDI, JTA, JSON binding e processing, JSF e Security API HTTP, HTTPS, Servlet, JSP, JNDI e WebSocket JDBC para conectar com bases de dados, objetos remotos RMI e Corba, JavaBeans e XML binding Figura 7. Esquema das APIs do Java de acordo com seus grupos de perfi s hierárquicos de distribuição. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 37 SER_SER_ADS_DAI_UNID1.indd 37 21/10/2019 13:22:52 É possível compreender que a base de todos os perfi s é o Java Standard Edition (SE), que possui apenas as funções e os recursos básicos da plataforma, como cria- ção e gerenciamento de objetos e a conexão com sistemas gerenciadores de banco de dados (SGBDs). Por outro lado, o conjunto completo da plataforma é disponibili- zado no Java EE com seus opcionais (visto na extremidade da Figura 7). Fica evidente que o Java EE é deveras extenso, não sendo o foco desse mate- rial ensiná-lo em sua totalidade. Um resumo das funções e objetivos das princi- pais APIs é apresentado a seguir: • Jave Server Pages (JSP), Java Servlets e Java Server Faces (JSF): para de- senvolvimento web, com geração dinâmica de páginas no servidor; • Enterprise JavaBeans Components (EJB) e Java Persistence API (JPA): para instanciação e persistência (gravação e recuperação, distribuída ou não, de seus dados em memória) de componentes de software. Por meio da JPA, é possível interagir com bases de dados relacionais encapsulando os códigos de consulta do tipo Structured Query Language (SQL); • Java API para XML Web Services (JAX-WS) e Java API para XML Binding (JAX-B): gerenciamento de arquivos do tipo XML e utilização de web services; • Java Autenthication and Authorization Service (JAAS): para controle de autenticação e acesso para segurança das aplicações; • Java Transaction API (JTA): objetiva o controle de transações em container; • Java Message Service (JMS): tem por fi nalidade gerenciar o intercâmbio de mensagens; • Java Naming and Directory Interface (JNDI): objetiva o gerenciamento de espaço de nomes e objetos. Servidores de aplicação e web containers Um servidor de aplicação Java EE é o conjunto de softwares responsáveis por prover a infraestrutura de programação e a utilização dos aplicativos seguindo a especifi cação da tecnologia. Várias empresas podem fornecer um servidor de aplicação, no entanto os mantenedores do Java EE defi nem uma implementação de referência completa, que é de código aberto (open source), chamada GlassFish Server Open Source Edition. Existem ainda implantações de referência parciais (para algum serviço específi co), como o Mojarra para a especifi cação do JSF. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 38 SER_SER_ADS_DAI_UNID1.indd 38 21/10/2019 13:22:52 Dentre servidores de aplicação desenvolvidos por outras empresas (não sendo a implementação de referência), é possível citar o JBoss, Wildfly, IBM WebSphere e Oracle WebLogic como implementações completas da platafor- ma Java EE. A implementação parcial do Java EE, que disponibiliza criação, processa- mento e entrega de conteúdo dinâmico na web, é chamada de web container, sendo indicado para desenvolvimento de sistemas que utilizam apenas a parte web do ambiente (geralmente para aplicações de pequeno e médio porte). O exemplo mais conhecido de web container é o Apache Tomcat, que implemen- ta as tecnologias Java Servlet e JavaServer Pages ( JSP) e não é um container Enterprise JavaBeans (EJB). Os web containers não são tão completos quanto os servidores de aplica- ção, porém já realizam o processamento de páginas que os chamados servido- res web não fazem. Essa última categoria tem como exemplo bem conhecido o Apache web Server, que, em sua versão simples (sem complementos), apenas entrega conteúdo estático (hipertexto, imagens e vídeo) aos clientes. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 39 SER_SER_ADS_DAI_UNID1.indd 39 21/10/2019 13:22:52 Sintetizando Essa unidade se iniciou com a apresentação de conceitos básicos de fun- cionamento das aplicações para internet na web, apresentando um pouco de sua história e da parte técnica do protocolo que rege toda a comunicação cliente-servidor, o HTTP. Foi visto ainda que a versão segura desse protocolo, o HTTPS, é a opção mais indicada para uso atual. A partir da base de conceitos, foram feitas a apresentação teórica e a de- monstração prática das linguagens e tecnologias para desenvolvimento de páginas web, do hipertexto simples à sua formatação com folhas de estilo e controles de ações utilizando JS. O conteúdo prosseguiu explorando detalhes de funcionamento da geração dinâmica das páginas nos servidores. Como parte final dessa unidade, foram vistos conceitos iniciais da platafor- ma Java EE e suas principais APIs, explicitando seus detalhes de distribuição, com uma visão geral de sua quantidade de recursos existentes. Nessa plataforma, considerando o foco em web da unidade, foram abor- dados também os detalhes e as diferenças entre servidores de aplicação para web containers. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 40 SER_SER_ADS_DAI_UNID1.indd 40 21/10/2019 13:22:52 Referências bibliográficas AMARAL, L. G. CSS – Cascading Style Sheets: guia de consulta rápida. 3. ed. São Paulo: Novatec. 2009. BAHAJJI, Z. A.; ILLYES, G. HTTPS as a ranking signal. Official Google Webmas- ter Central Blog, 6 ago. 2014. Disponível em: <https://webmasters.googleblog. com/2014/08/https-as-ranking-signal.html>. Acessoem: 11 set. 2019. GALBRAITH, B.; SCHUH, J. Improving privacy and security on the web. Chro- mium Blog, 7 mai. 2019. Disponível em: <https://blog.chromium.org/2019/05/ improving-privacy-and-security-on-web.html>. Acesso em: 12 set. 2019. KURNIAWAN, B. Java para a web com Servlets, JSP e EJB. Rio de Janeiro: Ciên- cia Moderna, 2002. LEINER, B. M. et al. A brief history of the internet. ACM SIGCOMM Computer Communicaton Review, v. 39, n. 5, 2009, p. 22-31. Disponível em: <http://www. sigcomm.org/sites/default/files/ccr/papers/2009/October/1629607-1629613. pdf>. Acesso em: 02 out. 2019. MARCOTTE, E. Responsive web Design. A List Apart, n. 306, 25 mai. 2010. Dis- ponível em: <https://alistapart.com/article/responsive-web-design/>. Acesso em: 13 set. 2019. ORACLE. Java™ Platform, Enterprise Edition (Java EE) Specification. v. 8. Re- dwood City: Oracle, 2017. PRESSMAN, R. S.; LOWE, D. Engenharia web. Rio de Janeiro: LTC, 2009. TANENBAUM, A. S. Redes de computadores. 4. ed. Rio de Janeiro: Campus-El- sevier, 2003. W3C. HTML 5 – Curso W3C Escritório Brasil. Disponível em: <https://www.w3c. br/pub/Cursos/CursoHTML5/html5-web.pdf>. Acesso em: 12 set. 2019. WROBLEWSKI, L. Mobile First. Nova Iorque: A book apart. 2011. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 41 SER_SER_ADS_DAI_UNID1.indd 41 21/10/2019 13:22:52 INTRODUÇÃO AO DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 2 UNIDADE SER_SER_ADS_DAI_UNID2.indd 42 21/10/2019 12:50:52 Objetivos da unidade Tópicos de estudo Apresentar ao aluno detalhes de funcionamento do ambiente de desenvolvimento com a ferramenta Eclipse e com o contêiner Web Apache Tomcat; Ampliar o conhecimento básico do aluno sobre Servlet API, que faz parte da plataforma Java EE, e de detalhes de como funciona a geração dinâmica das páginas no servidor ao utilizar essa tecnologia; Mostrar como funcionam as requisições GET e POST, incluindo detalhamento de sua parametrização. Ambiente de desenvolvimento Java Development Kit (JDK) e o Java EE Web Profile SDK Eclipse Apache Tomcat Servlet API Geração de conteúdo dinâmico com Servlets Parâmetros de requisição (GET e POST) DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 43 SER_SER_ADS_DAI_UNID2.indd 43 21/10/2019 12:50:52 Ambiente de desenvolvimento Para desenvolver aplicações Web é necessária a utilização de boas ferramen- tas e de um local para execução e teste dos artefatos produzidos. Assim, o de- senvolvedor tem apoio ferramental de softwares, que o ajudam na escrita do código e na visualização do resultado de pequenas porções de seu projeto no local de execução. Atualmente, já existem editores de código on-line (via Web) que permitem programação, tanto da parte do cliente quanto da parte do servidor, com testes também realizados por meio do navegador. No entanto, as ferramentas mais robustas e completas ainda são do tipo desktop, instaladas no computador do desenvolvedor, com servidor integrado a elas. CURIOSIDADE Para o desenvolvimento para Web usando Java, o desenvolvedor necessita de uma máquina com bom processador e memória RAM ideal de 4 GB ou superior, para utilização das ferramentas de edição e para manter um servidor local. Essa base de software necessária pode ser instalada nos mais comuns sistemas operacionais: Windows, Linux e MacOS. O servidor usado para testes de códigos em desenvolvimento, geralmente, fi ca na própria máquina do desenvolvedor ou, em outra, na rede local de empre- sas de desenvolvimento. Após o código testado em ambiente local, o software é validado e enviado para o servidor de produção, que é aquele acessado pelos clientes. Esse proces- so é chamado de deployment. Em sistemas críticos ou muito complexos, pode inclusive existir um servidor intermediário, chamado de staging server, ou servidor de estágio, que é um am- biente idêntico ao de produção ou muito parecido com ele (incluindo software, hardware e confi guração). No cotidiano das empresas de desenvolvimento de software, geralmente existe uma equipe de desenvolvedores trabalhando na mesma base de código, mas em ambientes de desenvolvimento diferentes. Nesse caso, são utilizadas ferramentas de gestão de confi guração como o GIT e o Subversion, que contro- lam confl itos em código e replicam as alterações. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 44 SER_SER_ADS_DAI_UNID2.indd 44 21/10/2019 12:50:52 Para minimizar e melhorar o trabalho dos desenvolvedores em montar o ambiente de desenvolvimento, surgiram os ambientes de desenvolvimento in- tegrado, do inglês Integrated Development Environment (IDE). Eles vão muito além de apoiar na edição de código fonte, também incluem a parte de realização de testes (unitários e de integração), o link com o compilador ou interpretador, a depuração de código para achar erros e o deployment. Existem vários softwares do tipo IDE no mercado, como o Visual Studio, o NetBeans, o BlueJ, o IntelliJ e o Eclipse. Neste conteúdo, abordaremos Java como linguagem de programação, Java EE como plataforma de recursos, Eclipse como o IDE e como contêiner Web, o Apache Tomcat. Como sistema operacional utili- zaremos o Windows, mas o desenvolvedor tem a liberdade de utilizar outro soft- ware IDE, um sistema operacional ou usar um misto de sistemas na utilização da tecnologia Java. De acordo com o site oficial do Java, em 2019, 3 bilhões de dispositivos execu- tam Java e existem 12 milhões de desenvolvedores pelo mundo. Além desse alto número de dispositivos e da grande comunidade de desen- volvimento, a utilização de Java agrega vantagens em relação ao uso de outras tecnologias no lado do servidor, como: • De código portável: a aplicação desenvolvida pode ser servida em di- versos sistemas operacionais, sem a necessidade de modificar códigos. Isso é possível, fundamentalmente, por todo código ser executado em uma máquina virtual Java; • Orientada a objetos: todos os elementos da linguagem são chamados de objetos, que interagem entre si de diferentes modos, como ocorre no mundo real. Por implementar bem o conceito de orientação a objetos, os códigos Java tendem a se tornar intuitivos e mais fáceis de se entender; • Segura: tem vários recursos de proteção das classes e de seu ambiente como um todo, com bom suporte ao tratamento de exceções. Essa característica foi considerada fundamental para sua boa adoção em instituições financeiras; • Multi-threaded: suporta processamentos múltiplos com gerenciamento de concorrência no comportamento de objetos; • Robusta: como os códigos são executados na máquina virtual, não é neces- sário que o desenvolvedor se preocupe com uso indevido de memória da apli- cação e com a chamada coleta de lixo, que é feita de modo automático em Java; DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 45 SER_SER_ADS_DAI_UNID2.indd 45 21/10/2019 12:50:52 • Com evolução contínua: novas versões de Java e de seus componentes são sempre lançadas, apresentando inovações para a comunidade; • De boa disponibilidade de IDEs: tem amplo suporte ferramental disponível no mercado (de modo gratuito e pago), auxiliando significativamente o trabalho dos desenvolvedores; • Gratuita: é “free”, assim como possui ambientes de desenvolvimento tam- bém gratuitos, tais como o Eclipse e o Netbeans. Apesar dessas vantagens, Java apre- senta alguns problemas que podem ser citados, como a significativa verbosida- de, que corresponde à necessidade de grande volume de escrita de código, e velocidade de processamento. Esse último ponto vem sendo melhorado constantemente, porém a comunidade ainda reclama de lentidão, sobretudo por lembrar do passado de má integração dos chamados Applets no sistema ope- racional Windows, em que o usuário sentia a demora na abertura das aplicações. Nessa questão de melhoria de desempenho, vale ressaltar que Java adotou um conceito de implementação Just in Time ( JIT), em que o código em linguagem de execução é geradoapenas quando o aplicativo chama o método correspon- dente ao código, guardando o resultado para chamadas subsequentes. Em relação à verbosidade, outras linguagens se aproveitaram desse fato para ganhar mercado. Esse é o caso que ocorreu na Kotlin, linguagem contemporânea que prega simplicidade e grande expressividade no código. Desse modo, Kotlin vem com a promessa de suprir a necessidade de desen- volvimento rápido, com pouco código, sobretudo em dispositivos móveis, funcio- nando com plena integração com Java, que anteriormente era a única linguagem oficial de desenvolvimento para Android. A título de curiosidade, é apresentado, no Diagrama 1, o modo de execução de uma aplicação em Java, desde a leitura de seu código-fonte até a geração dos bytecodes e interpretação usando a máquina virtual. É esse fluxo que também funciona quando se utiliza um contêiner Web, servindo uma página dinâmica ao usuário que é resultado de processamento na máquina virtual. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 46 SER_SER_ADS_DAI_UNID2.indd 46 21/10/2019 12:50:55 DIAGRAMA 1. MODO DE EXECUÇÃO DE APLICAÇÃO EM JAVA .class .class ... .jar .jar ... Compilador Java Interpretador Java (JVM) .java .java ... Java Código-fonte Compilação Java bytecode Interpretação Execução Fonte: SEBESTA, 2011. (Adaptado). Como pode ser visto no Diagrama 1, após a leitura dos arquivos de código- -fonte, são gerados arquivos em código de máquina, intermediários para exe- cução, que são chamados bytecodes. O interpretador Java lê os bytecodes e os junta aos arquivos do tipo Java ARchive ( JAR), que compactam bibliotecas de classes e metadados associados, constituindo assim o programa. Vale ressaltar que, uma vez gerados os arquivos de bytecodes com a exten- são .class, não há necessidade de criá-los novamente a cada nova interpreta- ção do código, pois essa nova criação por compilação deve ocorrer apenas se arquivos de código-fonte Java forem alterados. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 47 SER_SER_ADS_DAI_UNID2.indd 47 21/10/2019 12:50:55 Java Development Kit (JDK) e o Java EE Web Profile SDK Para criar uma aplicação Java, é necessário utilizar o seu kit de desenvolvi- mento que é chamado de JDK ( Java Development Kit – Kit de Desenvolvimento Java), que é encontrado no site ofi cial da linguagem Java. Esse kit também pode ser encontrado como Java SE Development Kit, pois faz parte do pacote Java Standard Edition (JSE). Vale ressaltar que esse kit é considerado o requisito mínimo essencial para o desenvolvimento em Java, já que é focado na compilação dos códigos e na execu- ção dos bytecodes da linguagem, não vindo com um contêiner para Servlets, por exemplo. Para a execução dos bytecodes, o JDK contém o chamado Java Runtime Environment (JRE). O JDK consiste, principalmente, de um compilador (javac), de uma ferramen- ta de execução (java), de um utilitário para auxílio na geração de documentação (javadoc) e de bibliotecas básicas. Para o download de todos os produtos da tecnologia Java, utilizamos o site ofi cial. Na Figura 1, apresentada a seguir, é possível ver a parte da página Web de distribuição do JDK, aqui chamado de Java SE Development Kit, em sua versão 13. Utilizaremos a versão executável de 64 bits para Windows, de arquivo nomeado como jdk-13_windows-x64_bin.exe. Figura 1. Captura de tela da caixa para seleção da distribuição desejada do Java SE Development Kit. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 48 SER_SER_ADS_DAI_UNID2.indd 48 21/10/2019 12:50:57 Conforme visto na Figura 1, existem várias opções do JDK, atendendo os mais conhecidos e utilizados sistemas operacionais do mercado. Isso é importante para permitir que o software desenvolvido funcione em ambientes diferentes. Se não fosse desse modo, o desenvolvedor teria que produzir software de modo específico para um sistema operacional. Após a tela inicial de apresentação, há a tela apresentada na Figura 2. Nela, é possível configurar em qual pasta ficarão os arquivos do JDK. Figura 2. Captura da tela de configuração da instalação do JDK. Você pode executar o JDK sem definir a variável de ambiente PATH (caminho) ou, opcionalmente, configurá-lo para poder executar os arquivos do JDK (javac. exe, java.exe, javadoc.exe e outros) de qualquer diretório, sem ter que digitar o caminho completo do comando. Assim, caso você opte por não definir a variável PATH, precisará especificar o caminho completo para o arquivo executável toda vez que executá-lo. Para definir a variável PATH permanentemente, inclua o caminho completo do diretório do JDK na variável PATH do sistema operacional utilizado. Normal- mente, no Windows, esse caminho completo é semelhante a C:\Program Files\ Java\jdk-13\bin. Defina a variável PATH do seguinte modo no Windows: 1. Clique em “Iniciar”, “Painel de controle” e “Sistema”. 2. Clique em “Avançado” e, em seguida, “Variáveis de ambiente”. 3. Adicione o local da pasta bin da instalação do JDK na variável PATH em “Variáveis do sistema”. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 49 SER_SER_ADS_DAI_UNID2.indd 49 21/10/2019 12:50:58 Na Figura 3, é apresentada a tela de configuração que adiciona o caminho do compilador e outros executáveis Java nas variáveis de ambiente do Windows. Figura 3. Captura de tela de como adicionar o caminho do compilador Java nas variáveis de ambiente do Windows. Conforme visto na Figura 3, é relativamente fácil inserir o caminho para os utilitários Java nas variáveis de ambiente do sistema Windows. Conforme dito anteriormente, essa é uma tarefa opcional, mas que pode ajudar o desenvol- vedor em seu trabalho diário, principalmente caso ele deseje testar códigos via linha de comando. DICA Tradicionalmente, os fornecedores da linguagem Java disponibilizam um tutorial básico a cada nova versão, que é chamado First Cup (primeiro copo). Esse nome faz uma alusão ao logo de Java, que é uma xícara de café, então representa uma metáfora ao primeiro copo de café tomado. Considerando o foco no desenvolvimento e na execução de aplicações Web, relatamos que existe um pacote específico chamado Java EE Web Profile SDK, que contém o servidor de aplicações chamado GlassFish Open Source Edition, que funciona também como servidor Web. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 50 SER_SER_ADS_DAI_UNID2.indd 50 21/10/2019 12:50:59 A título de ilustração, utilizamos o download do arquivo compactado do Java EE 8 Web Profile SDK, conforme tela de disponibilização do fornecedor oficial, que pode ser vista na Figura 4. Também utilizaremos o Apache Tomcat, dispensando o uso do GlassFish em nossos exemplos, já que o Tomcat é leve e mais utilizado atualmente em pequenos projetos. Figura 4. Captura de tela da página de download do SDK. Após realizar o download do arquivo, é necessário realizar sua descom- pactação. Em seguida, abra a pasta em que os arquivos foram descompac- tados e execute o arquivo glassfish5\glassfish\bin\startserv.bat. Com isso, será iniciado o funcionamento do servidor Glassfish, que responderá requi- sições Web. Então, para verificar seu funcionamento, basta acessar http://loca- lhost:8080 em seu navegador para visualizar a página exemplo do Glassfish. Sua área administrativa pode ser vista em http://localhost:4848, conforme apresentado na Figura 5. DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET 51 SER_SER_ADS_DAI_UNID2.indd 51 21/10/2019 12:51:00 Figura 5. Captura de tela de gerenciamento Web do Glassfi sh. A área administrativa Web do Glassfi sh pode ser considerada como um recurso importante que facilita o trabalho de quem administra o servidor, evitando a necessidade de conexão por terminal na máquina, que é menos intuitiva do que esse modo de interação gráfi ca, como o status e as con- fi gurações de servidor. Por padrão, o acesso a essa área não vem com a proteção por senha, então recomendamos que esse
Compartilhar