What if I want ONLY a pre-existing session?

You might have a scenario in which a servlet wants to use only a previously-created session. It might not make sense for the checkout servlet, for example, to start a new session.

So there’s an overloaded getSession(boolean) method just for that purpose. If you don’t want to create a new session, call getSession(false), and you’ll get either null, or a pre-existing HttpSession.

The code below calls getSession(false), then tests whether the return value was null. If it was null, the code outputs a message and then creates a new session.

image with no caption

Q:

Q: Isn’t the code above just a stupid, inefficient way to do the same thing as the opposite page? In the end, you still created a new session.

A:

A: You’re right. The code above is just for testing how the two different versions of getSession() work. In the real world, the only time you’d want to use getSession(false) is if you do NOT want to create a new session. If your goal is to create a new session, but still respond differently if you know this is a new (versus pre-existing) session, then use the no-arg getSession() method, and simply ask the session if it’s new using the HttpSession isNew() method.

Q:

Q: So it looks like getSession(true) is exactly the same as getSession()...

A:

A: Right again. The no-arg version is a convenience for those times when you know that you always want a session, new or existing. ...

Get Head First Servlets and JSP, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.