Olá desenvolvedores, o tutorial de hoje traz o padrão Open Session In View para controle de transações em aplicações web. Trata-se de um padrão utilizado em frameworks de Mapeamento Objeto-Relacional, que permite o carregamento de páginas apesar das transações originais já terem sido concluídas.

Em uma aplicação, uma entidade ou um objeto pode se relacionar com outra entidade, ou outro objeto respectivamente. A questão é que os dados dessas entidades que se relacionam somente são recuperados após a execução do método responsável por recuperar este valor. Dessa forma se a chamada para a execução do método for realizada após o encerramento da sessão, incorreria em erro.

Assim, é neste cenário que o padrão Open Session In View se insere, isto é, a sessão permanecerá aberta até o final do processamento da requisição. Desse modo os dados poderão ser recuperados a qualquer momento. Entenda abaixo como isso funciona na prática.

FILTER DE AUTENTICAÇÃO

No contexto da aplicação que iremos desenvolver, este padrão Open Session In View é a classe filter de autenticação, onde as sessões ou entradas no sistema serão liberadas a partir de um filtro.

Um sistema, como sabemos é composto de várias telas, entretanto, você concordará que o usuário só deverá ter acesso ao sistema como um todo se tiver o seu acesso autenticado. A partir da validação do acesso ele poderá navegar livremente pelo sistema, ou mesmo abandonar uma dada sessão. É partindo deste contexto de autenticação e validação de login que o Filtro, em nossa aplicação está contido.

Assim, de um lado temos um formulário de login de acesso a um dado sistema. E, sempre que o usuário interage com uma página web por meio de uma ação concreta, isto é, quando ele clica em enviar, por exemplo, uma requisição é enviada para o servidor. O servidor por sua vez irá processar e validar ou não esta requisição e enviará para tela uma resposta a solicitação do usuário.

Então, no nosso caso o servidor implementa a classe Open Session In View, que irá responder pela validação da ação do usuário. Imagine que o usuário tente por meio da URL acessar uma tela do sistema, sem passar pela autenticação do login. Logo, se este usuário não está logado no sistema podemos entender que ele não tem permissão de acesso para o recurso ou página que está tentando acessar.

Dessa forma, se este usuário não tem permissão de acesso o filter irá redirecioná-lo para a tela de login. Mas se o usuário tiver permissão, a sessão permanecerá aberta e ele conseguirá acessar a página em questão por meio da URL. E desse mesmo modo toda requisição que vier da tela será interceptada pelo filter.

EM POUCAS PALAVRAS

E com uso do padrão Open Session In View , enquanto a sessão não tiver sido encerrada, mesmo que a transação tenha sido concluída o usuário interagirá com o sistema livremente.

Este tutorial trabalhou com o conceito do padrão Open Session In View, uma classe que atua do lado do servidor validando ou não transações a partir de uma requisição da tela. Nos próximos tutoriais colocaremos a mão na massa e implementaremos o filter. Então, eu fico por aqui e nos vemos nos próximos tutoriais.