terça-feira, 29 de janeiro de 2013

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

Continuando o nosso exemplo, vamos neste artigo criar as camadas View e Controller da nossa aplicação MVC usando Struts, para listar os livros da BD fazendo uso das classes Model desenvolvidas anteriormente.


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


Numa aplicação Struts 1, o ficheiro web.xml, já referido num artigo anterior, especifica que os pedidos (requests) que satisfaçam o padrão '*.do' são encaminhados para o Struts ActionServlet
O ActionServlet procura, no ficheiro de configuração struts-config.xml, qual a Ação que está mapeada no pedido que recebeu. O ActionServlet e os objetos de Ação (Actioncompõem a parte de Controlador (Controller) da arquitetura MVC de uma aplicação Struts.

Para transferir dados entre Ações e a View, tipicamente implementada em JSPs, o Struts usa objetos ActionForm.
Quando um utilizador submete um form, o ActionForm, juntamente com os dados do form, é passado para o método execute da Ação.

A Ação pode validar os dados, e depois invocar a lógica necessária, idealmente encapsulada numa camada Model, da qual o Struts não tem qualquer conhecimento.

Quando a lógica de negócio é executada, a Ação transfere o controlo para a View especificada num ou mais objetos ActionForward objects, os quais são também configurados no struts-config.xml.
As entradas ActionForward representam os possíveis outputs de uma Ação.
Podem ser definidas entradas ActioForward por Ação, ou pode ser definida uma entrada ActionForward globalmente, para se aplicar a todas as Ações.

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: