Java servlet - Session cleanup (HttpServletRequest)

If you dont want Session behavior i.e, having state between multiple requests. Why do you want to create/use session at all. Do not create session or do not store anything in the session.

To make sure that your code is not using session, write a request wrapper which will override getSession() methods.


Try with

session = request.getSession(false); // so if no session is active no session is created
if (session != null)
  session.setMaxInactiveInterval(1); // so it expires immediatly

HttpSession session = request.getSession(false);
if (session != null) {
    session.invalidate();
}

is the proper way to go as suggested by the documentation. A new session will be created once the client sends a new request.

You mentioned that your sessions still take up memory. Do you have any other references to those objects on the session?

You also might want to have a look at: Servlet Session behavior and Session.invalidate


you can remove an attribute from a session using

session.removeAttribute("attribute name");