Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 17168|Resposta: 1

[Fonte] Ciclo de vida da Session

[Copiar link]
Publicado em 19/04/2015 19:44:59 | | |
Eu não prestava muita atenção quando estudava antes, mas hoje voltei e estudei cuidadosamente o ciclo de vida da sessão.
As sessões são armazenadas no lado do servidor e, geralmente, para evitar que fiquem na memória do servidor (para acesso de alta velocidade), o Sessinon cria a primeira vez que o usuário acessa o servidor.Note que apenas acessar JSP, Servlet e outros programas criará uma Sessão, e apenas acessar recursos estáticos como HTML e IMAGE não criará uma Sessão.
  Quando uma sessão expira?
1. O servidor limpará a sessão da memória do servidor que esteve inativa por muito tempo, e a sessão ficará inválida. O tempo padrão de expiração de uma sessão no Tomcat é de 20 minutos.
2. Chame o método de invalidação da Sessão.
  Requisitos de sessão para navegadores:
 Embora a sessão seja armazenada no servidor e transparente para o cliente, seu funcionamento normal ainda requer o suporte do navegador do cliente. Isso porque a Session precisa usar cookies como identificador. O protocolo HTTP é sem estado, e a sessão não pode ser julgada pela conexão HTTP para determinar se é o mesmo cliente, então o servidor envia um cookie chamado JSESSIONID para o navegador cliente, que tem o valor do id da sessão (ou seja, o valor de retorno de HttpSession.getId()). A sessão usa o cookie para identificar se é o mesmo usuário.

Esse cookie é gerado automaticamente pelo servidor, e seu atributo maxAge geralmente é -1, o que significa que ele só é válido no navegador atual, não é compartilhado entre janelas do navegador e não será válido quando o navegador estiver fechado. Portanto, quando duas janelas de navegador na mesma máquina acessam o servidor, duas sessões diferentes são geradas. Exceto para novas janelas abertas por links, scripts, etc. dentro da janela do navegador (ou seja, não janelas abertas com duplo clique em ícones do navegador da área de trabalho, etc.). Essas janelas filhas compartilham o cookie da janela pai e, portanto, uma sessão.

Nota: Novas Sessões são geradas em janelas recém-abertas do navegador, exceto nas sub-janelas. A janela filho compartilha a sessão da janela pai. Por exemplo, quando você clica com o botão direito em um link e seleciona "Abrir em nova janela" no menu de atalho que aparece, a janela filho pode acessar a Sessão da janela pai.

E se o navegador cliente desativar cookies ou não suportar cookies? Por exemplo, a grande maioria dos navegadores móveis não suporta cookies. O Java Web oferece outra solução: reescrita de endereços de URL.
Reescrever endereços de URL é uma solução para clientes que não suportam cookies. O princípio da reescrita de endereços URL é reescrever as informações de id da sessão do usuário para o endereço URL. O servidor pode analisar a URL reescrita para obter o ID da Sessão. Dessa forma, mesmo que o cliente não suporte cookies, a sessão pode ser usada para registrar o estado do usuário. A classe HttpServletResponse fornece encodeURL (URL de string) para implementar a reescrita de endereços de URL, que determina automaticamente se o cliente suporta cookies. Se o cliente suportar cookies, a URL será gerada como está. Se o cliente não suportar cookies, o id da sessão do usuário é reescrito para a URL.
Nota: O TOMCAT determina se um navegador cliente suporta cookies com base em que um cookie está incluído na solicitação. Embora o cliente possa suportar cookies, já que nenhum cookie é transportado na primeira solicitação (porque não há cookies que possam), o endereço URL reescrito ainda terá jsessionid no endereço. O servidor já escreveu um cookie no navegador na segunda visita, então o endereço URL reescrito não terá jsessionid no endereço.





Anterior:Truque em HTML para mudar a borda da tabela para uma linha fina
Próximo:Construa um cache de arquivos personalizado ASP.NET otimização de desempenho
Publicado em 18/03/2017 16:52:21 |
É muito bem escrito, aprenda!
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com