Mostrando postagens com marcador Java Framework. Mostrar todas as postagens
Mostrando postagens com marcador Java Framework. Mostrar todas as postagens

terça-feira, 9 de agosto de 2016

Ciclo de vida de uma requisição JSF

O ciclo de vida de uma requisição JSF compreende um conjunto de etapas realizadas pelo Framework para a criação/restauração e exibição das páginas ao usuário. Essas etapas são responsáveis por capturar os dados enviados pela UI, verificar a validade dos mesmos, aplicar esses dados às regras de negócio e exibir o resultado do processamento. Assim, o entendimento deste ciclo é de extrema importância para o desenvolvedor que precisa lidar com este Framework. A Figura abaixo representa as etapas de uma requisição JSF.

Baseando-se no fluxo mostrado, podemos descrever as ações realizadas em cada fase da seguinte maneira:
  • RESTORE_VIEW (Criar ou Restaurar a view): é a primeira fase do JSF e visa criar ou restaurar (no caso de uma página já requisitada) a árvore de componentes de uma página. Caso seja a primeira requisição à página, o framework cria uma nova árvore de componentes e associa a ela e caso não seja a primeira requisição, o framework restaura a árvore de componente já existente.
  • APPLY_REQUEST_VALUES (Aplica valores do usuário): nesta fase são atribuídos os valores que foram enviados na requisição para seus respectivos componentes da árvore de componentes. Como os dados coletados no formulário HTML são transferidos na requisição como String, o JSF também armazena essas informações na árvore de componentes como String;
  • PROCESS_VALIDATIONS (Certifica que os valores estão corretos): depois de completada a fase anterior, é iniciada a fase de processar conversões e validações como, por exemplo, validar uma formatação de uma data ou até mesmo verificar se determinado campo está sendo informado. Assim, caso ocorra algum erro, as informações são armazenadas no FacesContext e o fluxo é direcionado para a fase Renderiza a view para construir a resposta. Caso contrário, o fluxo segue para a próxima fase.
  • UPDATE_MODEL_VALUES (Atualiza o modelo com valores válidos): se tudo ocorreu bem na fase anterior, o JSF já tem certeza que pode atualizar os valores dos atributos do bean gerenciado com os valores contidos na árvore de componentes através da utilização dos métodos get e set;
  • INVOKE_APPLICATION (Busca uma nova view se necessário): depois de passar por todas as fases anteriores, é nesta fase que serão tratados as ações e os eventos da lógica de negócio da aplicação. É aqui que o desenvolvedor vai determinar o que será feito com o que foi aplicado ao modelo. Assim, podemos determinar nesta fase qual será a próxima página que será exibida para o usuário;
  • RENDER_RESPONSE (Renderiza a view): finalmente o ciclo de vida chega ao fim. Nesta fase será feita a codificação da árvore de componentes, transformando-a em HTML (+ CSS e JS) e exibindo-a no navegador do cliente.

segunda-feira, 8 de agosto de 2016

O que é o JavaServer Faces ?

O JSF é um Framework MVC para sistemas web baseado em componentes que auxilia bastante a construção de aplicações desse tipo com a tecnologia Java. Esses componentes são colocados em formulários de páginas e ligados a objetos Java de forma a prover suporte a várias características presentes no Framework, tais como: mecanismos de manipulação de eventos, validações de informações enviadas pelos clientes, navegação entre páginas, entre outras. Assim, com essa tecnologia torna-se mais fácil a construção de interfaces com o usuário pelo fato de o desenvolvedor poder implementar as aplicações simplesmente utilizando componentes visuais reusáveis.

Devido à existência destes componentes na interface, toda página JSF é um documento XML com namespaces, recurso utilizado para importar e possibilitar o uso de componentes HTML do JSF. Alguns exemplos de namespaces são: xmlns:h, xmlns:f e xmlns:ui.

A partir da declaração destes os componentes são utilizados na interface com o usuário e ligados a objetos Java – conhecidos como JavaBeans – através da utilização da tag <h:form/> e dos métodos get e set das classes. Dessa forma, os componentes de UI que serão vinculados às propriedades de um JavaBean devem, necessariamente, fazer parte de um formulário JSF, pois é através dele que o JSF envia e recebe dados do servidor. A seguir é apresentada a declaração da tag <h:form/>:

   <h:form id="form1">
       <!-- componentes JSF de interface com o usuário devem ser colocados aqui -->
  </h:form> 

No lado do servidor, cada JavaBean que tenha atributo vinculado a alguma página deve possuir a anotação @ManagedBean sobre o nome da classe, para que seja gerenciado pelo framework JSF e permita a ligação entre as regras de negócio da aplicação e a camada de visualização. Essa anotação possui ainda um atributo chamado name, não obrigatório, que representa o nome dado ao bean gerenciado. Ademais, para definir o ciclo de vida de cada um dos beans conforme a necessidade do projeto, é possível especificar o seu escopo fazendo uso de uma das anotações analisadas a seguir:

@ApplicationScoped: especifica que existirá somente uma instância da classe em toda a aplicação, ou seja, todos os usuários terão acesso à mesma instância;

@SessionScoped: garante a existência de uma instância para cada usuário que utiliza a aplicação;

@ViewScoped: relaciona a instância do bean gerenciado à página. Assim, enquanto essa página estiver sendo manipulada pelo usuário, o bean estará disponível;

@RequestScoped: garante que existirá uma instância pelo tempo de duração da requisição feita pelo usuário;

@NoneScoped: cada vez que houver uma chamada a uma propriedade ou método da classe bean, será criada uma nova instância. Neste caso a instância não terá ligação com qualquer escopo da aplicação;

@CustomScoped: essa anotação permite a criação de escopos personalizados. Para isso, a instância de uma classe bean é armazenada em uma interface do tipo java.util.Map <K,V> e disponibilizada para uma página ou um conjunto de páginas da aplicação.

segunda-feira, 21 de dezembro de 2015

O que é o Spring Framework?

O Spring é um framework open source para a plataforma Java criado por Rod Johnson e descrito em seu livro "Expert One-on-One: JEE Design e Development". Trata-se de um framework não intrusivo, baseado nos padrões de projeto Inversão de controle (IoC) e injeção de dependência.

No Spring o container se encarrega de "instanciar" classes de uma aplicação Java e definir as dependências entre elas através de um arquivo de configuração em formato XML, inferências do framework, o que é chamado de auto-wiring ou ainda anotações nas classes, métodos e propriedades. Dessa forma o Spring permite o baixo acoplamento entre classes de uma aplicação orientada a objetos.

O Spring possui uma arquitetura baseada em interfaces e POJOs (Plain Old Java Objects), oferecendo aos POJOs características como mecanismos de segurança e controle de transações. Também facilita testes unitários e surge como uma alternativa à complexidade existente no uso de EJBs. Com Spring, pode-se ter um alto desempenho da aplicacao.

Esse framework oferece diversos módulos que podem ser utilizados de acordo com as necessidades do projeto, como módulos voltados para desenvolvimento Web, persistência, acesso remoto e programação orientada a aspectos.

quinta-feira, 18 de dezembro de 2014

O que é o Dojo?

Dojo é um Framework JavaScript open source, uma coleção gratuita de funções e Widgets de cross-browser compatível, lançado pela primeira vez em 2006. Cada arquivo JavaScript é um objeto com vários atributos e funções, referido como um módulo Dojo. Por exemplo, dijit.form.TextBox é um módulo Dojo que converte um tag HTML de entrada para uma caixa de texto Dojo de estilo. Os módulos podem também estender outros módulos Dojo, então dijit.form.ValidationTextBox e dijit.form.NumberTextBox tanto estender dijit.form.TextBox . Isto permite aos desenvolvedores adicionar funcionalidade, criando suas próprias extensões sem a necessidade de modificar os arquivos pré-instalados. Um dos pontos fortes destes módulos Dojo é que eles são projetados especificamente para apoiar os desenvolvedores a lidar com requisitos de acessibilidade.

Melissa Lobo.

segunda-feira, 1 de dezembro de 2014

Soluções Web

Hoje vou disponibilizar para vocês uma lista com opções de framework para o desenvolvimento de soluções web:

RIA*

Full Stack Gerador

*RIA - Rich Internet Application: São Aplicações Web que tem características e funcionalidades de softwares tradicionais do tipo Desktop. RIA típicos transferem todo o processamento da interface para o navegador da internet, porém mantém a maior parte dos dados (como por exemplo, o estado do programa, dados do banco) no servidor de aplicação.

Melissa Lobo.



sexta-feira, 28 de novembro de 2014

Java Server Faces

Hoje vou disponibilizar para vocês uma lista com opções para framework de componentes visuais para o desenvolvimento de soluções web com JSF, futuramente, estarei disponibilizando outras dicas/listas de Java Frameworks, para que vocês possam baixar e conhecer um pouco mais de cada um deles.

Provedores de JSF
Componentes JSF
Extensões JSF
Melissa Lobo.