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. The version that takes a boolean is useful when you know that you don’t want a new session, or when the decision of whether to make a new session happens at runtime (and you’re passing a variable into the getSession(someBoolean) method).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset