HttpSession no java

Pessoal,

Estou desenvolvendo um aplicativo para web com flex4.5. Ambiente: (Flex 4.5 + Blazeds + Tomcat + JEE + MySql) Estou utilizando o RemoteObject.

Gostaria de saber com posso manipular no Java e se é possível criar variáveis de sessões onde possa deixar armazenadas informações do tipo nome do usuário, entre outras que são criadas no momento do login. Porque isso? No meu aplitivo tenho informações que se ficar armazenada na memoria do lado do servidor ira evitar que toda vez que o back-end necessite desta infomações faça nova requisão no banco.

Vi que existe o HttpSession, procurei um monte pelo google mais não tem muita coisa. Se alguem tiver algum doc, pdf, ou algum exemplo fico grato.

desde ja agradeço.

Bom,

A documentação do TOMCAT ajuda demais com isso. Segue o link:

http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpSession.html

Mas, basicamente, vc não precisa “criar variáveis” na sessão. Basta apenas inserir o valor na sessão e um nome para esse atributo.
Falando a grosso modo, seria como criar uma variável do tipo String (na verdade, estaria mais voltada a um Object) e colocasse o valor nela.
Exemplo:

HttpSession sessao = request.getSession(); sessao.setAttribute("idusuario", bd.getIdUsuario(usuario)); sessao.setAttribute("nomeusuario", bd.getNomeUsuario(usuario));

Uma coisa importante é sempre usar o request.getSession(), para que possa pegar os valores corretos da sessão em aberto.

Para buscar os valores, basta fazer a chamada do nome do atributo e manipulá-lo a vontade. Lembrando que aqui, ele seria como se fosse um Object, ou seja, vc terá que fazer as suas conversões adequadas.
Exemplo:

HttpSession ses = request.getSession(); String usuario = ""; // É bom iniciar a variável ANTES de pegar o valor da sessão usuario = (String)sessao.getAttribute("usuario") //Aqui pode aparecer erro de NULLPOINTEXCEPTION, se o valor do atributo da sessão não existir. Cuidado.

Se quiser “apagar” o atributo da sessão, ou você o sobrescreve, ou remove. Para remover, basta mandar remover o atributo:

sessao.removeAttribute("usuario");

E, para finalizar a sessão, basta mandar invalidar a sessão. Assim:

sessao.invalidate();

Com isso, acho que já consegue ter um pouco de noção para mexer com HTTPSession.

Vlw!!!
DZR JavaBaby. Material 1000º Ajudou perfeitamente.

Para usar

request.getSession();

Preciso estar dentro de uma servlet,

Como fazer se estou dentro de uma Classe comum?

A idéia é

<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<jsp:useBean id="validaAdmin" class="dao.admin.TestaLoginAdmin" />
<c:set var="admin"  value="${validaAdmin.testaLogin()}" />
<c:set var="redireciona" value="${validaAdmin.redireciona()}" />

<c:choose>
<c:when test="${admin != null}">          
             ${admin.nome};
    </c:when>
<c:otherwise>
             ${redireciona};
    </c:otherwise>
</c:choose>