UFCD 10791
Desenvolvimento de aplicações Web em JAVA
Formador: Marco Lucas
Objetivos
Implementar e criar aplicações Java EE.
Gerir regras de negócio utilizando POJOs, EJBs, SOAP WebServices e JMS.
Administrar persistência utilizando JPA.
Garantir a segurança nas aplicações web.
Reflexão
O desenvolvimento web é o desenvolvimento de páginas e aplicações web, que requerem o design de frontend, a programação de backend e a gestão de bases de dados.
O frontend refere-se à parte construída a partir da qual o utilizador pode aceder à aplicação. Aqui os programadores utilizam frameworks web baseadas nos 3 pilares: a linguagem de marcação HTML, a linguagem de estilização Cascading Style Sheets (CSS) e a linguagem de programação JavaScript.
O backend refere-se às páginas que estão a ser acedidas pelo utilizador e que serão tratadas e controladas através do processo de backend que tem de ser desenvolvido. Também é conhecido como “lado do servidor”, onde são efetuados os registos de dados, a gestão dos dados e os controlos lógicos.
Tendo em conta o modelo cliente-servidor, existe esta divisão de responsabilidades no desenvolvimento web. Neste modelo, um cliente - geralmente, um navegador web - faz o pedido de um recurso a um servidor. Por sua vez, o servidor - geralmente um servidor web - recebe o pedido do cliente e fornece o recurso desejado, formalizado através de uma resposta.
O desenvolvimento web com Java envolve a criação de aplicações interativas que são renderizadas nos navegadores web. Uma aplicação Java web gera páginas web, que podem conter vários tipos de linguagem de marcação e conteúdo dinâmico, e podem ser compostas por componentes web, que são responsáveis pelo armazenamento temporário de dados que serão transitados a cada requisição / resposta numa página web.
As tecnologias para a web com Java, que foram abordadas durante esta UFCD, são:
Servlet API
Os Servlets, são os programas Java executados no servidor web ou no servidor de aplicações com suporte Java. São utilizados para tratar o pedido obtido do servidor web, processar o pedido, produzir a resposta e em seguida, enviar a resposta de volta para o servidor web. Embora seja uma classe Java, é necessária num projeto web. Se tivermos uma página web com campos de formulário, os dados introduzidos no campo serão acedidos por programação Java com a ajuda do Servlet.
JavaServer Pages
O JSP permite integrar o código Java em páginas HTML, criando páginas web dinâmicas.
JDBC Driver
O JDBC (Java Database Connectivity) Driver é um componente de software que permite que a aplicação Java interaja com a base de dados.
Java Persistence API
O Java Persistence API é utilizado para persistir dados entre objetos Java e as bases de dados relacionais. O JPA funciona como uma ponte entre os modelos de domínio orientados para objetos e os sistemas de bases de dados relacionais.
JavaServer Faces
O JSF é um framework MVC (Model-View-Controller) para o desenvolvimento de interfaces de utilizador (UI) web.
Enterprise Java Beans
É específico para o desenvolvimento de aplicações comerciais distribuídas e de grande escala na plataforma Java. É uma API Java utilizada para desenvolver software empresarial que inclui uma aplicação do lado do cliente. É uma arquitetura baseada no servidor que segue os requisitos e as especificações do ambiente empresarial. Para implantar a aplicação EJB, é necessário ter um contentor JavaEE, um contentor web e um contentor EJB.
Conclusão
O desenvolvimento web em Java oferece muitas ferramentas e estruturas que aumentam a produtividade, a escalabilidade e a capacidade de manutenção. Ao tirar partido destas ferramentas, o programador web Java pode criar aplicações eficientes e robustas. Java é uma das opções mais populares para o desenvolvimento de backend, visto que esta linguagem, é mais fiável, mais segura e consistente, no entanto mais lenta, menos flexível e inovadora.
Uma outra opção para o desenvolvimento de backend é o node.js. O node.js é um ambiente de execução JavaScript open-source e multiplataforma, que permite a execução de código JavaScript fora de um navegador web. Esta linguagem permite a programação de scripts do lado do servidor e do lado do cliente no desenvolvimento de aplicações web.