Artigo da WebMobile 11 - Construindo uma aplicação Web com JEE

Artigo Originalmente publicado na WebMobile 11.

Clique aqui para ler todos os artigos desta edição

Construindo uma aplicação Web com JEE

Autores: Peter Peret Lupo e Cristina Teles Cerdeiral

Esta matéria objetiva a construção de um exemplo de aplicação web utilizando duas tecnologias muito populares atualmente: Hibernate e Struts. Como banco de dados, o Hypersonic, um banco de dados inteiramente escrito em Java será utilizado.

Uma aplicação web simples em JEE é contida em um Web Archive (war, para simplificar), que é um arquivo compactado no formato zip cujo nome é o nome da aplicação e a extensão é “war”.

De acordo com a especificação, este arquivo deve ter a seguinte estrutura:

· Na raiz, os arquivos jsp, html, imagens ou outros arquivos que podem ficar disponíveis, podendo estar organizados em diretórios;

· Em um diretório chamado WEB-INF encontram-se arquivos de configuração (como o arquivo web.xml, responsável pelas configurações da aplicação em si) e os diretórios “classes” contendo os arquivos .class do Java e “lib”, que contêm bibliotecas utilizadas pela aplicação, como driver JDBC do banco e as bibliotecas do struts e do hibernate.

· Em um diretório META-INF, um arquivo chamado manifest.mf pode trazer informações sobre a aplicação e um arquivo “context.xml” pode trazer informações de configuração da aplicação destinadas ao Tomcat.

Modelo de negócio

A aplicação a ser construída será uma agenda de contatos bem simples. As classes de negócio, neste modelo, são apresentadas na Figura 1.

Figura 1. Modelo de negocio.

Neste diagrama de classes simplificado, estão retratados apenas os atributos. No código, estes atributos serão acompanhados de métodos de acesso.

Mapeamento objeto-relacional com Hibernate Annotations

As classes do modelo são objetos na camada de negócio. Os dados contidos nestas classes precisam ser persistidos em um banco de dados relacional, ou seja, um banco de dados que guarda dados em registros organizados em tabelas e não em objetos.

Para que isto seja feito, é necessário mapear as classes da aplicação para tabelas e campos, ou seja, descrever um mapeamento objeto-relacional.

O Hibernate é um framework que oferece uma forma de fazer este mapeamento. Atualmente, o Hibernate permite que este mapeamento seja descrito através de arquivos XML ou utilizando o mecanismo de Annotations do Java.

Isso significa que as classes de modelo terão anotações que descrevem como são mapeados os relacionamentos entre si. Como exemplo, o mapeamento da classe Pessoa pode ser visto na Listagem 1.

Listagem 1. Mapeamento da classe Pessoa.

@Entity @Table(uniqueConstraints = {@UniqueConstraint(columnNames={“nome”, “sobrenome”})}) public class Pessoa implements Comparable { private Long id; @Id @GeneratedValue public Long getId() { return id; } @SuppressWarnings(“unused”) private void setId(Long id){ this.id = id; }" [...] continue lendo...

Artigos relacionados