O'Reilly logo

Head First Servlets and JSP, 2nd Edition by Bert Bates, Bryan Basham, Kathy Sierra

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required