<< Chapter < Page Chapter >> Page >

The isNew method

An implementation of HttpSession represents the server's view of the session. The server considers a session to be new until the client has joined it. Until the client joins the session, the isNew method returns true.

A value of true can indicate one of the following three cases:

  • The client does not yet know about the session
  • The session has not yet begun
  • The client chooses not to join the session.

The third case will occur if the server supports only cookies and the client chooses to reject cookies sent by the server (the client has disabled cookies on the browser) .

URL rewriting

According to the some books, the third case will not commonly occur, if the server supports URL rewriting. However, according to one of my books, even if theserver supports URL rewriting, that capability is not freely available. The programmer must provide special programming constructs to take advantage of URLrewriting.

In any event, it is the responsibility of the programmer to design the application to account for situations where a client has not joined a session.

Discussion and sample code

Now that you have the background information under your belt, let's take a look at a sample program.

The name of the servlet that I will explain in this module is Java4580a . As mentioned earlier, I will explain this program in fragments. A completelisting is provided in Listing 10 .

Beginning of the servlet program

The program begins in the typical manner shown earlier in Listing 1 . Then the program gets a valid HttpSession object for the current request from the client as shown by the call to the getSession method in Listing 2 .

What does Oracle have to say?

Here is some of what Oracle has to say about the getSession method, where create is the name of the boolean parameter passed to the method:

"Returns the current HttpSession associated with this request or, if there is no current session and create is true, returns a new session. If create is false and the request has no valid HttpSession , this method returns null. To make sure the session is properly maintained, you must call this method before the response is committed."

Apparently the server identifies the first request of the session by the fact that the browser doesn't send a cookie (or the URL hasn't been rewritten) , but that is just speculation on my part.

Get an output stream

An output stream is needed in order for the servlet to send content to the client browser. An output stream object is created and saved in the sessionobject, thus making it available for as long as the session is active.

You are already familiar with the first statement in Listing 3 , so nothing more needs to be said about that statement.

Retrieve the stream object from the session object

Beyond that, the code in Listing 3 begins by attempting to retrieve an output stream object from the session object.

If the call to the getValue method on the session object returns null, this indicates that an output stream has not yet been created and saved in the session object. Inthat case, an output stream object is created and put into the session object where it will be available on subsequent requests to the servlet.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask