I come back with the same question but this time more documented. i have a web application with many servlets and JSPs. The application has a LogIn option. In the LogIn servlet i start a new session, and after placing some informations in the session i go forward to a JSP.

LogIn.java relevant code:

HttpSession sess = request.getSession(true);
sess.setAttribute("GLN", user);
rd.forward(request, response);
After I forward, I get a Jsp page called Insert.jsp where I get the sessions attributes.

Insert.jsp relevant code:

HttpSession sess = request.getSession(false);
if (sess != null){
After this i have a form that directs me to a servlet Adaugare.java. Here i do the same thing:

Adaugare.java code:

HttpSession sess = request.getSession(false);
Here comes the problem. This returns null, as no session exists. Then i forward to same Insert.jsp file and there, even if i have HttpSession sess = request.getSession(false);, a new session with a new session ID is created different from the first one. So obviously out.println(sess.getAttribute("GLN")); returns null.

This is the long story. The short version:

When i go from a servlet to a jsp, session is ok, when i go from a jsp to a servlet, session is nowhere to be found . Then a new session is created when i forward to a JSP. Practically it creates a new cookie. If i print the contextPath from JSP and serlet, it's the same.

But here is the strange thing. This happens when i run the application on a apache with a mod_jk. When i run the app from a tomcat, it works fine.......

Please help, i've been stuck for 2 weeks on this problem.