Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 GERENCIAMENTO DE SESSÃO E LOGIN O monitoramento de sessão é a identificação de usuários individuais à medida que eles navegam pelo site. HTTP é o protocolo que permite que os servidores Web e browsers troquem dados pela Web. Trata-se de um protocolo de solicitação e resposta. As conexões HTTP são iniciadas por um browser cliente que envia uma solicitação HTTP. Então, o servidor Web responde com uma resposta HTTP, num comportamento simplificado. Portanto, se um cliente solicitar outro recurso do servidor, ele precisará abrir outra conexão HTTP para o servidor. Observe a situação abaixo: Imagine que um usuário está comprando em uma loja on-line. O processo inicia com o usuário buscando por um produto. Se o produto for encontrado, então o usuário entrará com a quantidade daquele produto no formulário do carrinho de compras e submeterá ao servidor. Mas, o usuário ainda não encerrou sua busca por produtos, ele ainda quer comprar algo mais. Portanto, ele busca no catálogo um segundo produto. Entretanto, o primeiro pedido de produto está perdido porque a conexão anterior foi fechada e o servidor Web não se lembra de nada sobre a conexão anterior. [6] Para o exemplo acima é que entra o gerenciamento de sessão, que possui basicamente 4 (quatro) técnicas: 1. Reescrita de URL; 2. Campos ocultos; 3. Cookies; e 4. Objetos de sessão. Dessas 4 (quatro) técnicas de gerenciamento de sessão, o objeto Session, representado pela interface javax.servlet.http.HttpSession, é o mais fácil de ser utilizado. 2 Figura 24 – Sessão Fonte:[9] Objeto Session: É do tipo javax.servlet.http.HttpSession. O contêiner implementa essa interface, e a cada usuário dentro de um site pode ser atribuído um objeto session no servidor. O objeto session tem dois papéis-chave: • Armazena as informações sobre a data e a hora de criação e de último acesso para uma sessão particular, junto com um ID de sessão único (ID Session); e • Permite que outros objetos sejam “amarrados” à sessão, como carrinhos de compras e outros exemplos. O objeto session age como uma Hashtable, onde se pode armazenar qualquer quantidade de pares chave /objeto. O objeto HttpSession é acessível a partir de outros servlets no mesmo aplicativo. Para recuperar um objeto previamente armazenado, é necessário apenas passar a chave. O ID session é simplesmente um número único, chamado de session identifier. Esse identificador de sessão é usado para associar um usuário a um objeto session no servidor. Ou seja, se houver 10 (dez) usuários simultâneos, 10 (dez) objetos session serão criados no servidor e cada usuário poderá acessar seu próprio objeto HttpSession. O método getSession da interface javax.servlet.http.HttpServletRequest tem 2 (duas) sobrecargas: • HttpSession getSession() - retorna a sessão atual associada a essa solicitação ou, se a solicitação não tiver um identificador de sessão, ela cria um novo. • HttpSession getSession(boolean create) - retorna um HttpSession corrente associado com o request, ou se não existir uma session corrente e create for igual a true, retorna uma nova session A Interface javax.servlet.http.HttpSession: getAttribute: Retorna o objeto vinculado à sessão com esse nome específico. Retorna null se nenhum objeto estiver vinculado a esse nome. getAttributeNames: Retorna todos os nomes de atributos vinculados como um array de Strings. getCreationTime: Retorna em milissegundos a data/hora em que a sessão foi criada desde meia noite de 1º de janeiro de 1970 GMT . 3 getID: Retorna o identificador de sessão como uma String. getlastAccessedTime: Retorna em milissegundos a data/hora em que a sessão foi acessada pela última vez desde meia noite de 1º de janeiro de 1970 GMT. getMaxInactiveInterval: Retorna quantos segundos a sessão permanecerá ativa enquanto o usuário permanecer inativo. getgetServletContext: Retorna o ServletContext atual para essa sessão. invalidate: Encerra a sessão e desvincula quaisquer objetos que estão vinculados a ela. isNew: Retorna true se a sessão atual não estiver sendo utilizada pelo cliente. removeAttribute: Desvincula um objeto do objeto session. setAttribute: Vincula a sessão o objeto passado como um parâmetro com o nome definido pelo parâmetro String. setMaxInactiveInterval: Configura o tempo em segundos que essa sessão permanecerá ativa enquanto o usuário permanecer inativo Segue, abaixo, um exemplo de uso de alguns métodos: [6] <%@ page import="java.util.*" %> <html> <head> <title>Exemplo do Objeto Session</title> </head> <body> <h1>O Objeto Session</h1> Exemplo de uso de alguns métodos da interface javax.servlet.http.HttpSession <br><br>A sessão foi criada em: <%= session.getCreationTime() %> <br>A sessão ficará inativa em um intervalo de: <%= session.getMaxInactiveInterval() %> 4 <br>O ID Session é: <%= session.getId() %> <br>A sessão atual está sendo usada? <%= session.isNew() %> <br>A sessão foi acessada pela última vez em: <%= session.getLastAccessedTime() %> <br>A sessão foi criada em: <%= session.getCreationTime() %> </body> </html>
Compartilhar