segunda-feira, 28 de janeiro de 2013

Exemplo de aplicação Web Java usando Struts 1 - 2

Neste artigo vamos criar a camada Model da nossa aplicação MVC usando Struts. Para isso vamos usar o Hibernate.

Vamos começar por criar um package Model, onde vamos criar as nossas classes POJO (Plain Old Java Objects) para posterior mapeamento com as tabelas da nossa base de dados (o Oracle XE 10g):





Depois, vamos criar o ficheiro de configuração do Hibernate, para o que podemos usar o Hibernate Configuration Wizard:

Exemplo de aplicação Web Java usando Struts 1 - 1

Struts é uma framework para aplicações Web que faz uso de Java Servlets, JavaBeans, ResourceBundles, XML, e alguns componentes Apache Commons.

O Apache Struts web framework é uma solução open-source para criar aplicações web em Java, usando uma arquitetura Model-View-Controller (MVC), oferecendo um ambiente extensível para desenvolvermos as nossas aplicações.

Model representa as entidades do domínio (ou da base de dados), a View representa o código de apresentação das páginas Web, e o Controller representa o código navegacional.

O Struts fornece o seu próprio componente de controlo (Controller) e pode ser integrado com diversas tecnologias para fornecer o Model e a View.

Para o Model, o Struts pode ser integrado com JDBC e EJB, ou com packages externos como o Hibernate, iBATIS, ou Object Relational Bridge.

Para a View, a framework funciona com JSPs, mas podem ser usados outros sistemas de apresentação.

O Controlador atua como uma ponte entre o Modelo da aplicação e a View (camada de apresentação Web).

Quando é recebido um pedido (request), o Controlador invoca uma classe de Ação (Action class), a qual consulta o Modelo para examinar ou atualizar o estado da aplicação.

quinta-feira, 24 de janeiro de 2013

O Padrão Arquitetural Model-View-Controller (MVC)

Model-View-Controller (MVC) é um padrão de design de nível arquitetural que teve origem numa framework para a linguagem SmallTalk.
Neste padrão, uma aplicação é vista como tendo três partes distintas:
    - o Modelo (Model), contem componentes correspondentes às entidades do domínio do problema.
    - a Apresentação (View), contem componentes de apresentação de resultados para o utilizador (user interface).
    - o Controlador (Controller), contem componentes de obtenção de input do utilizador, instanciação de objetos do Model e controlo de fluxo de informação.


Licença Creative Commons


Existem diversas frameworks que suportam o padrão arquitetural MVC, entre as quais podemos encontrar:



Nos próximos artigos voltaremos a este tema.

quarta-feira, 23 de janeiro de 2013

JSP - Melhorar o primeiro exemplo com Java Beans

No artigo anterior vimos um primeiro exemplo de utilização de JSP, onde era usado exclusivamente Java embebido no HTML para fazer toda a parte dinâmica.
Neste artigo, vamos melhorar a estrutura do exemplo anterior, usando um Bean. Esta estrutura melhora a legibilidade e separa o código da interface com o utilizador, do código para efetuar os cálculos.
No caso de uma aplicação mais complexa, a estrutura do primeiro exemplo conduziria a uma solução de difícil compreensão e de difícil manutenção. A estrutura que é dada à solução neste artigo, é mais legível e portanto mais fácil de manter e fazer evoluir.

Assim, devemos criar um projeto, tal como em  Primeiro Exemplo de JSP, e fazer as mesmas alterações a index.jsp.
Depois, criamos o novo ficheiro JSP (newjsp.jsp):


Contrariamente ao que vimos em Primeiro Exemplo de JSP, este ficheiro não tem embebido o código de obtenção dos parâmetros nem o de cálculo do resultado da operação. Tem, isso sim, a utilização de um componente JavaBean, que não é mais do que uma classe a quem são passados os parâmetros e efetua os cálculos pretendidos.

Primeiro exemplo de JSP

Java Server Pages (JSP) é uma tecnologia Java que permite criar páginas com um misto de HTML estático e HTML dinâmico. A parte dinâmica é gerada usando scripts, na linguagem Java, embebidos no HTML através de Tags especiais reconhecidas pelo servidor aplicacional.

Neste artigo vamos fazer um pequeno exemplo que servirá para introduzir algumas das tags JSP e ajudar a compreender como funciona o Java no meio de tudo isto.
O exemplo será feito usando o NetBeans IDE 7.2.1, e consiste numa pequena calculadora que permitirá efetuar as quatro operações aritméticas sobre dois operandos inteiros.

Vamos começar por criar um novo projeto no NetBeans, do tipo Web Application:


Como servidor aplicacional, vamos usar o GlassFish:

 (não selecionamos qualquer framework, no passo 4 da criação do novo projeto)

O NetBeans cria uma estrutura de projeto com um ficheiro index.jsp, que irá gerar a página inicial do projeto:



Conteúdo inicial do ficheiro index.jsp:



sexta-feira, 17 de agosto de 2012

Computação Móvel - evolução e estado atual

Quando falamos em dispositivos móveis, lembramo-nos principalmente, do telemóvel. O telemóvel apareceu numa sequência de cerca de 100 anos de invenções cujo objetivo era a comunicação à distância.
A primeira transmissão telefónica com sucesso foi feita por Alexander Graham Bell em 1876. Ele e Thomas Edisson disputaram a corrida que levou à invenção do primeiro telefone.
Logo, em 1877, entrou em operação a primeira linha telefónica comercial.

O telemóvel apareceu apenas quase 100 anos depois do primeiro telefone, acrescentando a mobilidade ao objetivo inicial de falar à distância.
O primeiro telemóvel, analógico, apareceu em 1960. Era grande demais para ser transportado pessoalmente, pelo que tinha que ser instalado em veículos.
Em 1973 apareceu o primeiro telemóvel de mão (analógico).

Apenas em 1977 apareceram as primeiras redes celulares digitais.

Atualmente, os dispositivos móveis, incluindo a maior parte dos telemóveis, dispõe de capacidade de processamento, tendo adicionado o objetivo de computação móvel aos anteriores objetivos de comunicação à distância e de mobilidade.

Atualmente, numa confluência de diversas linhas e diferentes objetivos de investigação, temos telefones IP (VoIP), redes celulares de comutação de pacotes (3G, 4G), dispositivos móveis de diversos tamanhos, fabricantes, e com diferentes sistemas operativos, incorporando sensores, GPS, bússolas eletrónicas, acelerómetro, etc.

O número de subscrições de redes móveis passou de pouco mais de 1000 milhões em 2002, para quase 5000 milhões em 2008.
Temos atualmente 6,8 mil milhões de pessoas no mundo, e mais de 5 mil milhões de assinaturas de redes móveis, 50% dos quais pré-pagos.

segunda-feira, 7 de maio de 2012

Primeira Aplicação para o Windows Phone

Neste artigo fazemos uma primeira abordagem ao desenvolvimento de aplicações para Windows Phone.

Para começar, precisamos de instalar o Windows Phone SDK 7.1, o qual vem com um IDE gratuito (Visual Studio Express) e um emulador de Windows Phone, o qual nos permite testar as nossas aplicações antes de as instalar num dispositivo móvel baseado em Windows Phone.

Neste exemplo foi usado o Visual Studio 2010 para o desenvolvimento, mas, claro, o Windows Phone SDK 7.1 precisa na mesma de ser instalado.

Modelo de Execução do Windows Phone

Antes de começar o desenvolvimento da nossa primeira app, apenas algumas palavras sobre o modelo de execução do Windows Phone:
  • Apenas uma App pode correr num dado momento em foreground;
  • Outras Apps em execução são colocadas pelo sistema operativo (SO) num estado dormente (dormant state);
  • Quando a memória do dispositivo não é suficiente, o SO começa a terminar aplicações que estejam no estado dormente.
  • Através da sua framework de programação, as aplicações podem gerir o seu estado quando são ativadas ou desativadas. Isto pode ser usado para dar ao utilizador a impressão de que uma aplicação esteve sempre a correr, mesmo quando ela é parada e mais tarde reativada.

Criar um novo Projeto Windows Phone

No Visual Studio (ou Visual Studio Express), criar um novo projeto com o template para "Silverlight for Windows Phone", a tipo Windows Phone Application: