Request.getSession( false )

1 resposta
M

pessoal, to com uma dúvida aqui, vejam só:

se eu usar request.getSession( false ) pra pegar a sessão, ele vai me retornar a sessão somente se ela ja existir, ou seja, se for a primeira requisição, retorna-rá null, certo!? Bem, testei isso no BEA Weblogic e ele não retornou null, segue o código de exemplo:

<%
	HttpSession s = request.getSession( false );

	if ( s == null ) {

		out.println( "no session was available<br/>" );
		out.println( "making one...<br/>" );

		s = request.getSession();

		out.println( "JSESSIONID: " + s.getId() );

	} else {

		out.println( "the session already exists" );
		out.println( "JSESSIONID: " + s.getId() );
	}
%>

bom, eu faço deploy disso, faço a primeira requisição e… ele cai no else!!! Fiquei curioso… ai coloquei o mesmo código no Tomcat pra ver se isso não era erro do Weblogic, e… caiu no else tb!!! :roll: Explicações???

1 Resposta

M

pessoal, deixa pra lá… ja me liguei huaehueauheauh, bem, a explicação é a seguinte, esse código eu to fazendo de dentro de um Jsp, então, todo jsp já possui um objeto session implícito! Ou seja, antes de processar esse meu código o jsp ja instanciou esse session implícito chamando getSession()! Logo, a sessão ja existe qnd eu chamo getSession( false ) … mas, se fizer o mesmo código de um servlet, onde não existe objeto session implicito, o resultado de getSession( false ) será null sim. :slight_smile:

Criado 26 de abril de 2005
Ultima resposta 26 de abr. de 2005
Respostas 1
Participantes 1