Ola todos,

estou desenvolvendo uma aplica��o centrada em servlets. Utilizo JSp
apenas para Apresenta��o e um Servlet que faz o controle de fluxo. � uma
aplica��o nos moldes da aplica��o de Faqs do livro "Desenvolvendo na WEb
com JavaServer Pages".

Estou tendo um problema com objetos que estou colocando na sess�o.

Na p�gina index.jsp eu verifico se determinado objeto est� na sess�o,
se n�o estiver, quer dizer que o usu�rio est� chegando pela primeira
vez, ent�o redireciono para o servlet que instancia os objetos, coloca
na sessao e atrav�s de um requestdispatcher retorna para a p�gina JSP.
Sendo que que ao voltar para index.jsp, uma nova sess�o � criada, mesmo
que meu browser esteja aceitando cookies.
O pior que tem hora que funciona.

eis o codigo relevante da minha index.jsp:

------------------
<%
  session = request.getSession();
  System.out.println("em Index.jsp - sessao = " + session.getId());

  if((session.getAttribute("destaques")==null)||
(session.getAttribute("menuSecoes")==null))
   {
   System.err.println("destaques e menuSecoes nulos, enviando para o
servlet");
   %>
   <jsp:forward page="proxy?pagina=index.jsp" />
   <%
   }

  detran.MenuSecaoBean[] menuSecoes = (pkg.MenuSecaoBean[])
sessao.getAttribute("menuSecoes");
  %>
<jsp:useBean id="menuSecao" class="pkg.MenuSecaoBean" >
<jsp:useBean id="time" class="pkg.TimeBean" />
<jsp:useBean id="banners" class="pkg.BannersBean"/>
<html>
<head>
--------------


o meu Servlet:
----------------
package pkg;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class proxy extends HttpServlet {

  //Initialize global variables
// private String jspdir ="/";
 private String error = "/error.jsp";
private boolean DEBUG = true;


 public void service (HttpServletRequest req, HttpServletResponse res)
   throws ServletException, IOException{

   String proxPagina;
   //int codSecao;
   Command cmd;

       try {
   proxPagina = "/" + req.getParameter("pagina");
   if (proxPagina == "/")
        throw new CommandException("pagina nao especificada");

    if (( req.getParameter("secao") ==
null)&&(req.getParameter("divisao")==null)&&(proxPagina.equals("/index.jsp"))){

        cmd = new GetIndexCommand(proxPagina);
         proxPagina = cmd.execute(req);
         if (DEBUG){
                System.out.println("no servlet passou por
GetIndexCommand");
                System.out.println("Servlet id Sessao : " +
req.getSession().getId());
                }
      }
      else if ((req.getParameter("divisao")==null)&&(
req.getParameter("secao") != null)){
        cmd = new GetSecaoCommand(proxPagina);
         proxPagina = cmd.execute(req);
             if (DEBUG)
                System.out.println("no servlet passou por
GetDivisoesCommand");
         }
          else if ((req.getParameter("divisao")!=null)&&(
req.getParameter("secao") == null))
          {
           cmd = new GetDivisaoCommand(proxPagina);
           proxPagina = cmd.execute(req);
              if (DEBUG)
                System.out.println("no servlet passou por
GetDivisoesCommand");
              }
            else
                 throw new CommandException("Parametros estao fora do
padrao");
           /*
             if ( req.getParameter("secao") == null){
        throw new CommandException("secao nao especificada");
      }
      else if (req.getParameter("divisao")==null){
        cmd = new GetDivisoesCommand(proxPagina);
         proxPagina = cmd.execute(req);
         }
          else{
           cmd = new GetDivisaoCommand(proxPagina);
           proxPagina = cmd.execute(req);


           */

   }//fim try
   catch (CommandException ex) {
        req.setAttribute("javax.servlet.jsp.jspException", ex);
        proxPagina = error;
   }//fim catch



   RequestDispatcher rd;
   ServletContext sc = getServletContext();
   rd = sc.getRequestDispatcher( proxPagina );

   if ( DEBUG ) {
  System.out.println( "System.out, next = " + proxPagina);
  System.out.println( "System.out, rd = " + rd );
  System.err.println( "System.err, rd = " + rd );
  System.out.println( "System.out, sc = " + sc );

 }



   try {
   rd.forward( req, res );
 }
 catch ( IOException e ) {
  System.out.println( "IOException em Servlet" );
       }




   }

}
--------------


o meu getIndexComman
-----------------------------
package pkg;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public class GetIndexCommand implements Command {

  private String proxPagina;
  private boolean DEBUG = true;

  public GetIndexCommand(String proxPagina){
  this.proxPagina=proxPagina;
  }

  public String execute(HttpServletRequest req) throws CommandException
{

      HttpSession sessao = req.getSession();
   try {

  if
((sessao.getAttribute("destaques")==null)||(sessao.getAttribute("menuSecoes")==null))
{



 pkgRepositorio repositorio = pkgRepositorio.getInstancia();

  DestaqueBean[] destaques = repositorio.getDestaques();

   if (DEBUG)
          System.out.println("em GetIndexCommand: destaque 0 ->" +
destaques[0].getMensagem());



    if (DEBUG)
          System.out.println("em GetIndexCommand: ID Sessao ->" +
sessao.getId());


   sessao.setAttribute("destaques", destaques);



  MenuSecaoBean[] menuSecoes = repositorio.getMenuSecaoAll();
  sessao.setAttribute("menuSecoes", menuSecoes );


   BannersBean banners = repositorio.getBanners();

   if (DEBUG){
          System.out.println("em GetIndexCommand: banners -> " +
banners.getBanner());
           System.out.println("em GetIndexCommand: ID Sessao ->" +
sessao.getId());

          }
  //sessao.setAttribute("banners", banners);

  }//fim if


   return this.proxPagina;
    }
  catch (RepositorioException e) {
    throw new CommandException("GetDestaquesCommand: "+e.getMessage());
  }catch(UnknownSecaoException ex){
  throw new CommandException("GetDestaquesCommand: "+ex.getMessage());
  }

  }
}


------------
est� tuod ocorrendo como planejado, exceto que uma nova sesao � criada
ao retornar a index.jsp.

espero que alguem possa me ajudar.


[]�s


Daniel A.


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a